LCOV - code coverage report
Current view: top level - obj-x86_64-pc-linux-gnu/dom/bindings - CSS2PropertiesBinding.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 153 19182 0.8 %
Date: 2017-07-14 16:53:18 Functions: 13 1914 0.7 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* THIS FILE IS AUTOGENERATED FROM CSS2Properties.webidl BY Codegen.py - DO NOT EDIT */
       2             : 
       3             : #include "CSS2PropertiesBinding.h"
       4             : #include "CSSStyleDeclarationBinding.h"
       5             : #include "WrapperFactory.h"
       6             : #include "mozilla/OwningNonNull.h"
       7             : #include "mozilla/Preferences.h"
       8             : #include "mozilla/dom/BindingUtils.h"
       9             : #include "mozilla/dom/DOMJSClass.h"
      10             : #include "mozilla/dom/DOMJSProxyHandler.h"
      11             : #include "mozilla/dom/NonRefcountedDOMObject.h"
      12             : #include "mozilla/dom/XrayExpandoClass.h"
      13             : #include "nsDOMCSSDeclaration.h"
      14             : 
      15             : namespace mozilla {
      16             : namespace dom {
      17             : 
      18             : namespace CSS2PropertiesBinding {
      19             : 
      20             : static_assert(IsRefcounted<NativeType>::value == IsRefcounted<CSSStyleDeclarationBinding::NativeType>::value,
      21             :               "Can't inherit from an interface with a different ownership model.");
      22             : 
      23             : static bool
      24           0 : get_alignContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
      25             : {
      26           0 :   binding_detail::FastErrorResult rv;
      27           0 :   DOMString result;
      28           0 :   self->GetAlignContent(result, rv);
      29           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
      30           0 :     return false;
      31             :   }
      32           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
      33           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
      34           0 :     return false;
      35             :   }
      36           0 :   return true;
      37             : }
      38             : 
      39             : static bool
      40           0 : set_alignContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
      41             : {
      42           0 :   binding_detail::FakeString arg0;
      43           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
      44           0 :     return false;
      45             :   }
      46           0 :   binding_detail::FastErrorResult rv;
      47           0 :   self->SetAlignContent(NonNullHelper(Constify(arg0)), rv);
      48           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
      49           0 :     return false;
      50             :   }
      51           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
      52             : 
      53           0 :   return true;
      54             : }
      55             : 
      56             : static const JSJitInfo alignContent_getterinfo = {
      57             :   { (JSJitGetterOp)get_alignContent },
      58             :   { prototypes::id::CSS2Properties },
      59             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
      60             :   JSJitInfo::Getter,
      61             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
      62             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
      63             :   false,  /* isInfallible. False in setters. */
      64             :   false,  /* isMovable.  Not relevant for setters. */
      65             :   false, /* isEliminatable.  Not relevant for setters. */
      66             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
      67             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
      68             :   false,  /* isTypedMethod.  Only relevant for methods. */
      69             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
      70             : };
      71             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
      72             : static_assert(0 < 1, "There is no slot for us");
      73             : static const JSJitInfo alignContent_setterinfo = {
      74             :   { (JSJitGetterOp)set_alignContent },
      75             :   { prototypes::id::CSS2Properties },
      76             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
      77             :   JSJitInfo::Setter,
      78             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
      79             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
      80             :   false,  /* isInfallible. False in setters. */
      81             :   false,  /* isMovable.  Not relevant for setters. */
      82             :   false, /* isEliminatable.  Not relevant for setters. */
      83             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
      84             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
      85             :   false,  /* isTypedMethod.  Only relevant for methods. */
      86             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
      87             : };
      88             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
      89             : static_assert(0 < 1, "There is no slot for us");
      90             : 
      91             : static bool
      92           0 : get_align_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
      93             : {
      94           0 :   binding_detail::FastErrorResult rv;
      95           0 :   DOMString result;
      96           0 :   self->GetAlignContent(result, rv);
      97           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
      98           0 :     return false;
      99             :   }
     100           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     101           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     102           0 :     return false;
     103             :   }
     104           0 :   return true;
     105             : }
     106             : 
     107             : static bool
     108           0 : set_align_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     109             : {
     110           0 :   binding_detail::FakeString arg0;
     111           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     112           0 :     return false;
     113             :   }
     114           0 :   binding_detail::FastErrorResult rv;
     115           0 :   self->SetAlignContent(NonNullHelper(Constify(arg0)), rv);
     116           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     117           0 :     return false;
     118             :   }
     119           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     120             : 
     121           0 :   return true;
     122             : }
     123             : 
     124             : static const JSJitInfo align_content_getterinfo = {
     125             :   { (JSJitGetterOp)get_align_content },
     126             :   { prototypes::id::CSS2Properties },
     127             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     128             :   JSJitInfo::Getter,
     129             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     130             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     131             :   false,  /* isInfallible. False in setters. */
     132             :   false,  /* isMovable.  Not relevant for setters. */
     133             :   false, /* isEliminatable.  Not relevant for setters. */
     134             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     135             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     136             :   false,  /* isTypedMethod.  Only relevant for methods. */
     137             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     138             : };
     139             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     140             : static_assert(0 < 1, "There is no slot for us");
     141             : static const JSJitInfo align_content_setterinfo = {
     142             :   { (JSJitGetterOp)set_align_content },
     143             :   { prototypes::id::CSS2Properties },
     144             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     145             :   JSJitInfo::Setter,
     146             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     147             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     148             :   false,  /* isInfallible. False in setters. */
     149             :   false,  /* isMovable.  Not relevant for setters. */
     150             :   false, /* isEliminatable.  Not relevant for setters. */
     151             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     152             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     153             :   false,  /* isTypedMethod.  Only relevant for methods. */
     154             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     155             : };
     156             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     157             : static_assert(0 < 1, "There is no slot for us");
     158             : 
     159             : static bool
     160           0 : get_alignItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     161             : {
     162           0 :   binding_detail::FastErrorResult rv;
     163           0 :   DOMString result;
     164           0 :   self->GetAlignItems(result, rv);
     165           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     166           0 :     return false;
     167             :   }
     168           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     169           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     170           0 :     return false;
     171             :   }
     172           0 :   return true;
     173             : }
     174             : 
     175             : static bool
     176           0 : set_alignItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     177             : {
     178           0 :   binding_detail::FakeString arg0;
     179           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     180           0 :     return false;
     181             :   }
     182           0 :   binding_detail::FastErrorResult rv;
     183           0 :   self->SetAlignItems(NonNullHelper(Constify(arg0)), rv);
     184           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     185           0 :     return false;
     186             :   }
     187           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     188             : 
     189           0 :   return true;
     190             : }
     191             : 
     192             : static const JSJitInfo alignItems_getterinfo = {
     193             :   { (JSJitGetterOp)get_alignItems },
     194             :   { prototypes::id::CSS2Properties },
     195             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     196             :   JSJitInfo::Getter,
     197             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     198             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     199             :   false,  /* isInfallible. False in setters. */
     200             :   false,  /* isMovable.  Not relevant for setters. */
     201             :   false, /* isEliminatable.  Not relevant for setters. */
     202             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     203             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     204             :   false,  /* isTypedMethod.  Only relevant for methods. */
     205             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     206             : };
     207             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     208             : static_assert(0 < 1, "There is no slot for us");
     209             : static const JSJitInfo alignItems_setterinfo = {
     210             :   { (JSJitGetterOp)set_alignItems },
     211             :   { prototypes::id::CSS2Properties },
     212             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     213             :   JSJitInfo::Setter,
     214             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     215             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     216             :   false,  /* isInfallible. False in setters. */
     217             :   false,  /* isMovable.  Not relevant for setters. */
     218             :   false, /* isEliminatable.  Not relevant for setters. */
     219             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     220             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     221             :   false,  /* isTypedMethod.  Only relevant for methods. */
     222             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     223             : };
     224             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     225             : static_assert(0 < 1, "There is no slot for us");
     226             : 
     227             : static bool
     228           0 : get_align_items(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     229             : {
     230           0 :   binding_detail::FastErrorResult rv;
     231           0 :   DOMString result;
     232           0 :   self->GetAlignItems(result, rv);
     233           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     234           0 :     return false;
     235             :   }
     236           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     237           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     238           0 :     return false;
     239             :   }
     240           0 :   return true;
     241             : }
     242             : 
     243             : static bool
     244           0 : set_align_items(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     245             : {
     246           0 :   binding_detail::FakeString arg0;
     247           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     248           0 :     return false;
     249             :   }
     250           0 :   binding_detail::FastErrorResult rv;
     251           0 :   self->SetAlignItems(NonNullHelper(Constify(arg0)), rv);
     252           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     253           0 :     return false;
     254             :   }
     255           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     256             : 
     257           0 :   return true;
     258             : }
     259             : 
     260             : static const JSJitInfo align_items_getterinfo = {
     261             :   { (JSJitGetterOp)get_align_items },
     262             :   { prototypes::id::CSS2Properties },
     263             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     264             :   JSJitInfo::Getter,
     265             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     266             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     267             :   false,  /* isInfallible. False in setters. */
     268             :   false,  /* isMovable.  Not relevant for setters. */
     269             :   false, /* isEliminatable.  Not relevant for setters. */
     270             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     271             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     272             :   false,  /* isTypedMethod.  Only relevant for methods. */
     273             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     274             : };
     275             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     276             : static_assert(0 < 1, "There is no slot for us");
     277             : static const JSJitInfo align_items_setterinfo = {
     278             :   { (JSJitGetterOp)set_align_items },
     279             :   { prototypes::id::CSS2Properties },
     280             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     281             :   JSJitInfo::Setter,
     282             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     283             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     284             :   false,  /* isInfallible. False in setters. */
     285             :   false,  /* isMovable.  Not relevant for setters. */
     286             :   false, /* isEliminatable.  Not relevant for setters. */
     287             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     288             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     289             :   false,  /* isTypedMethod.  Only relevant for methods. */
     290             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     291             : };
     292             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     293             : static_assert(0 < 1, "There is no slot for us");
     294             : 
     295             : static bool
     296           0 : get_alignSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     297             : {
     298           0 :   binding_detail::FastErrorResult rv;
     299           0 :   DOMString result;
     300           0 :   self->GetAlignSelf(result, rv);
     301           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     302           0 :     return false;
     303             :   }
     304           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     305           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     306           0 :     return false;
     307             :   }
     308           0 :   return true;
     309             : }
     310             : 
     311             : static bool
     312           0 : set_alignSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     313             : {
     314           0 :   binding_detail::FakeString arg0;
     315           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     316           0 :     return false;
     317             :   }
     318           0 :   binding_detail::FastErrorResult rv;
     319           0 :   self->SetAlignSelf(NonNullHelper(Constify(arg0)), rv);
     320           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     321           0 :     return false;
     322             :   }
     323           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     324             : 
     325           0 :   return true;
     326             : }
     327             : 
     328             : static const JSJitInfo alignSelf_getterinfo = {
     329             :   { (JSJitGetterOp)get_alignSelf },
     330             :   { prototypes::id::CSS2Properties },
     331             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     332             :   JSJitInfo::Getter,
     333             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     334             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     335             :   false,  /* isInfallible. False in setters. */
     336             :   false,  /* isMovable.  Not relevant for setters. */
     337             :   false, /* isEliminatable.  Not relevant for setters. */
     338             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     339             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     340             :   false,  /* isTypedMethod.  Only relevant for methods. */
     341             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     342             : };
     343             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     344             : static_assert(0 < 1, "There is no slot for us");
     345             : static const JSJitInfo alignSelf_setterinfo = {
     346             :   { (JSJitGetterOp)set_alignSelf },
     347             :   { prototypes::id::CSS2Properties },
     348             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     349             :   JSJitInfo::Setter,
     350             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     351             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     352             :   false,  /* isInfallible. False in setters. */
     353             :   false,  /* isMovable.  Not relevant for setters. */
     354             :   false, /* isEliminatable.  Not relevant for setters. */
     355             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     356             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     357             :   false,  /* isTypedMethod.  Only relevant for methods. */
     358             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     359             : };
     360             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     361             : static_assert(0 < 1, "There is no slot for us");
     362             : 
     363             : static bool
     364           0 : get_align_self(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     365             : {
     366           0 :   binding_detail::FastErrorResult rv;
     367           0 :   DOMString result;
     368           0 :   self->GetAlignSelf(result, rv);
     369           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     370           0 :     return false;
     371             :   }
     372           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     373           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     374           0 :     return false;
     375             :   }
     376           0 :   return true;
     377             : }
     378             : 
     379             : static bool
     380           0 : set_align_self(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     381             : {
     382           0 :   binding_detail::FakeString arg0;
     383           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     384           0 :     return false;
     385             :   }
     386           0 :   binding_detail::FastErrorResult rv;
     387           0 :   self->SetAlignSelf(NonNullHelper(Constify(arg0)), rv);
     388           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     389           0 :     return false;
     390             :   }
     391           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     392             : 
     393           0 :   return true;
     394             : }
     395             : 
     396             : static const JSJitInfo align_self_getterinfo = {
     397             :   { (JSJitGetterOp)get_align_self },
     398             :   { prototypes::id::CSS2Properties },
     399             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     400             :   JSJitInfo::Getter,
     401             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     402             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     403             :   false,  /* isInfallible. False in setters. */
     404             :   false,  /* isMovable.  Not relevant for setters. */
     405             :   false, /* isEliminatable.  Not relevant for setters. */
     406             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     407             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     408             :   false,  /* isTypedMethod.  Only relevant for methods. */
     409             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     410             : };
     411             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     412             : static_assert(0 < 1, "There is no slot for us");
     413             : static const JSJitInfo align_self_setterinfo = {
     414             :   { (JSJitGetterOp)set_align_self },
     415             :   { prototypes::id::CSS2Properties },
     416             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     417             :   JSJitInfo::Setter,
     418             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     419             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     420             :   false,  /* isInfallible. False in setters. */
     421             :   false,  /* isMovable.  Not relevant for setters. */
     422             :   false, /* isEliminatable.  Not relevant for setters. */
     423             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     424             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     425             :   false,  /* isTypedMethod.  Only relevant for methods. */
     426             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     427             : };
     428             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     429             : static_assert(0 < 1, "There is no slot for us");
     430             : 
     431             : static bool
     432           0 : get_all(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     433             : {
     434           0 :   binding_detail::FastErrorResult rv;
     435           0 :   DOMString result;
     436           0 :   self->GetAll(result, rv);
     437           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     438           0 :     return false;
     439             :   }
     440           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     441           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     442           0 :     return false;
     443             :   }
     444           0 :   return true;
     445             : }
     446             : 
     447             : static bool
     448           0 : set_all(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     449             : {
     450           0 :   binding_detail::FakeString arg0;
     451           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     452           0 :     return false;
     453             :   }
     454           0 :   binding_detail::FastErrorResult rv;
     455           0 :   self->SetAll(NonNullHelper(Constify(arg0)), rv);
     456           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     457           0 :     return false;
     458             :   }
     459           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     460             : 
     461           0 :   return true;
     462             : }
     463             : 
     464             : static const JSJitInfo all_getterinfo = {
     465             :   { (JSJitGetterOp)get_all },
     466             :   { prototypes::id::CSS2Properties },
     467             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     468             :   JSJitInfo::Getter,
     469             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     470             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     471             :   false,  /* isInfallible. False in setters. */
     472             :   false,  /* isMovable.  Not relevant for setters. */
     473             :   false, /* isEliminatable.  Not relevant for setters. */
     474             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     475             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     476             :   false,  /* isTypedMethod.  Only relevant for methods. */
     477             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     478             : };
     479             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     480             : static_assert(0 < 1, "There is no slot for us");
     481             : static const JSJitInfo all_setterinfo = {
     482             :   { (JSJitGetterOp)set_all },
     483             :   { prototypes::id::CSS2Properties },
     484             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     485             :   JSJitInfo::Setter,
     486             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     487             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     488             :   false,  /* isInfallible. False in setters. */
     489             :   false,  /* isMovable.  Not relevant for setters. */
     490             :   false, /* isEliminatable.  Not relevant for setters. */
     491             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     492             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     493             :   false,  /* isTypedMethod.  Only relevant for methods. */
     494             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     495             : };
     496             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     497             : static_assert(0 < 1, "There is no slot for us");
     498             : 
     499             : static bool
     500           0 : get_animation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     501             : {
     502           0 :   binding_detail::FastErrorResult rv;
     503           0 :   DOMString result;
     504           0 :   self->GetAnimation(result, rv);
     505           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     506           0 :     return false;
     507             :   }
     508           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     509           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     510           0 :     return false;
     511             :   }
     512           0 :   return true;
     513             : }
     514             : 
     515             : static bool
     516           0 : set_animation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     517             : {
     518           0 :   binding_detail::FakeString arg0;
     519           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     520           0 :     return false;
     521             :   }
     522           0 :   binding_detail::FastErrorResult rv;
     523           0 :   self->SetAnimation(NonNullHelper(Constify(arg0)), rv);
     524           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     525           0 :     return false;
     526             :   }
     527           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     528             : 
     529           0 :   return true;
     530             : }
     531             : 
     532             : static const JSJitInfo animation_getterinfo = {
     533             :   { (JSJitGetterOp)get_animation },
     534             :   { prototypes::id::CSS2Properties },
     535             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     536             :   JSJitInfo::Getter,
     537             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     538             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     539             :   false,  /* isInfallible. False in setters. */
     540             :   false,  /* isMovable.  Not relevant for setters. */
     541             :   false, /* isEliminatable.  Not relevant for setters. */
     542             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     543             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     544             :   false,  /* isTypedMethod.  Only relevant for methods. */
     545             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     546             : };
     547             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     548             : static_assert(0 < 1, "There is no slot for us");
     549             : static const JSJitInfo animation_setterinfo = {
     550             :   { (JSJitGetterOp)set_animation },
     551             :   { prototypes::id::CSS2Properties },
     552             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     553             :   JSJitInfo::Setter,
     554             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     555             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     556             :   false,  /* isInfallible. False in setters. */
     557             :   false,  /* isMovable.  Not relevant for setters. */
     558             :   false, /* isEliminatable.  Not relevant for setters. */
     559             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     560             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     561             :   false,  /* isTypedMethod.  Only relevant for methods. */
     562             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     563             : };
     564             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     565             : static_assert(0 < 1, "There is no slot for us");
     566             : 
     567             : static bool
     568           0 : get_animationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     569             : {
     570           0 :   binding_detail::FastErrorResult rv;
     571           0 :   DOMString result;
     572           0 :   self->GetAnimationDelay(result, rv);
     573           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     574           0 :     return false;
     575             :   }
     576           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     577           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     578           0 :     return false;
     579             :   }
     580           0 :   return true;
     581             : }
     582             : 
     583             : static bool
     584           0 : set_animationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     585             : {
     586           0 :   binding_detail::FakeString arg0;
     587           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     588           0 :     return false;
     589             :   }
     590           0 :   binding_detail::FastErrorResult rv;
     591           0 :   self->SetAnimationDelay(NonNullHelper(Constify(arg0)), rv);
     592           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     593           0 :     return false;
     594             :   }
     595           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     596             : 
     597           0 :   return true;
     598             : }
     599             : 
     600             : static const JSJitInfo animationDelay_getterinfo = {
     601             :   { (JSJitGetterOp)get_animationDelay },
     602             :   { prototypes::id::CSS2Properties },
     603             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     604             :   JSJitInfo::Getter,
     605             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     606             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     607             :   false,  /* isInfallible. False in setters. */
     608             :   false,  /* isMovable.  Not relevant for setters. */
     609             :   false, /* isEliminatable.  Not relevant for setters. */
     610             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     611             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     612             :   false,  /* isTypedMethod.  Only relevant for methods. */
     613             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     614             : };
     615             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     616             : static_assert(0 < 1, "There is no slot for us");
     617             : static const JSJitInfo animationDelay_setterinfo = {
     618             :   { (JSJitGetterOp)set_animationDelay },
     619             :   { prototypes::id::CSS2Properties },
     620             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     621             :   JSJitInfo::Setter,
     622             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     623             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     624             :   false,  /* isInfallible. False in setters. */
     625             :   false,  /* isMovable.  Not relevant for setters. */
     626             :   false, /* isEliminatable.  Not relevant for setters. */
     627             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     628             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     629             :   false,  /* isTypedMethod.  Only relevant for methods. */
     630             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     631             : };
     632             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     633             : static_assert(0 < 1, "There is no slot for us");
     634             : 
     635             : static bool
     636           0 : get_animation_delay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     637             : {
     638           0 :   binding_detail::FastErrorResult rv;
     639           0 :   DOMString result;
     640           0 :   self->GetAnimationDelay(result, rv);
     641           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     642           0 :     return false;
     643             :   }
     644           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     645           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     646           0 :     return false;
     647             :   }
     648           0 :   return true;
     649             : }
     650             : 
     651             : static bool
     652           0 : set_animation_delay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     653             : {
     654           0 :   binding_detail::FakeString arg0;
     655           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     656           0 :     return false;
     657             :   }
     658           0 :   binding_detail::FastErrorResult rv;
     659           0 :   self->SetAnimationDelay(NonNullHelper(Constify(arg0)), rv);
     660           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     661           0 :     return false;
     662             :   }
     663           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     664             : 
     665           0 :   return true;
     666             : }
     667             : 
     668             : static const JSJitInfo animation_delay_getterinfo = {
     669             :   { (JSJitGetterOp)get_animation_delay },
     670             :   { prototypes::id::CSS2Properties },
     671             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     672             :   JSJitInfo::Getter,
     673             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     674             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     675             :   false,  /* isInfallible. False in setters. */
     676             :   false,  /* isMovable.  Not relevant for setters. */
     677             :   false, /* isEliminatable.  Not relevant for setters. */
     678             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     679             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     680             :   false,  /* isTypedMethod.  Only relevant for methods. */
     681             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     682             : };
     683             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     684             : static_assert(0 < 1, "There is no slot for us");
     685             : static const JSJitInfo animation_delay_setterinfo = {
     686             :   { (JSJitGetterOp)set_animation_delay },
     687             :   { prototypes::id::CSS2Properties },
     688             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     689             :   JSJitInfo::Setter,
     690             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     691             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     692             :   false,  /* isInfallible. False in setters. */
     693             :   false,  /* isMovable.  Not relevant for setters. */
     694             :   false, /* isEliminatable.  Not relevant for setters. */
     695             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     696             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     697             :   false,  /* isTypedMethod.  Only relevant for methods. */
     698             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     699             : };
     700             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     701             : static_assert(0 < 1, "There is no slot for us");
     702             : 
     703             : static bool
     704           0 : get_animationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     705             : {
     706           0 :   binding_detail::FastErrorResult rv;
     707           0 :   DOMString result;
     708           0 :   self->GetAnimationDirection(result, rv);
     709           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     710           0 :     return false;
     711             :   }
     712           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     713           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     714           0 :     return false;
     715             :   }
     716           0 :   return true;
     717             : }
     718             : 
     719             : static bool
     720           0 : set_animationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     721             : {
     722           0 :   binding_detail::FakeString arg0;
     723           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     724           0 :     return false;
     725             :   }
     726           0 :   binding_detail::FastErrorResult rv;
     727           0 :   self->SetAnimationDirection(NonNullHelper(Constify(arg0)), rv);
     728           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     729           0 :     return false;
     730             :   }
     731           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     732             : 
     733           0 :   return true;
     734             : }
     735             : 
     736             : static const JSJitInfo animationDirection_getterinfo = {
     737             :   { (JSJitGetterOp)get_animationDirection },
     738             :   { prototypes::id::CSS2Properties },
     739             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     740             :   JSJitInfo::Getter,
     741             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     742             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     743             :   false,  /* isInfallible. False in setters. */
     744             :   false,  /* isMovable.  Not relevant for setters. */
     745             :   false, /* isEliminatable.  Not relevant for setters. */
     746             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     747             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     748             :   false,  /* isTypedMethod.  Only relevant for methods. */
     749             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     750             : };
     751             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     752             : static_assert(0 < 1, "There is no slot for us");
     753             : static const JSJitInfo animationDirection_setterinfo = {
     754             :   { (JSJitGetterOp)set_animationDirection },
     755             :   { prototypes::id::CSS2Properties },
     756             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     757             :   JSJitInfo::Setter,
     758             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     759             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     760             :   false,  /* isInfallible. False in setters. */
     761             :   false,  /* isMovable.  Not relevant for setters. */
     762             :   false, /* isEliminatable.  Not relevant for setters. */
     763             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     764             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     765             :   false,  /* isTypedMethod.  Only relevant for methods. */
     766             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     767             : };
     768             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     769             : static_assert(0 < 1, "There is no slot for us");
     770             : 
     771             : static bool
     772           0 : get_animation_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     773             : {
     774           0 :   binding_detail::FastErrorResult rv;
     775           0 :   DOMString result;
     776           0 :   self->GetAnimationDirection(result, rv);
     777           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     778           0 :     return false;
     779             :   }
     780           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     781           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     782           0 :     return false;
     783             :   }
     784           0 :   return true;
     785             : }
     786             : 
     787             : static bool
     788           0 : set_animation_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     789             : {
     790           0 :   binding_detail::FakeString arg0;
     791           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     792           0 :     return false;
     793             :   }
     794           0 :   binding_detail::FastErrorResult rv;
     795           0 :   self->SetAnimationDirection(NonNullHelper(Constify(arg0)), rv);
     796           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     797           0 :     return false;
     798             :   }
     799           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     800             : 
     801           0 :   return true;
     802             : }
     803             : 
     804             : static const JSJitInfo animation_direction_getterinfo = {
     805             :   { (JSJitGetterOp)get_animation_direction },
     806             :   { prototypes::id::CSS2Properties },
     807             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     808             :   JSJitInfo::Getter,
     809             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     810             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     811             :   false,  /* isInfallible. False in setters. */
     812             :   false,  /* isMovable.  Not relevant for setters. */
     813             :   false, /* isEliminatable.  Not relevant for setters. */
     814             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     815             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     816             :   false,  /* isTypedMethod.  Only relevant for methods. */
     817             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     818             : };
     819             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     820             : static_assert(0 < 1, "There is no slot for us");
     821             : static const JSJitInfo animation_direction_setterinfo = {
     822             :   { (JSJitGetterOp)set_animation_direction },
     823             :   { prototypes::id::CSS2Properties },
     824             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     825             :   JSJitInfo::Setter,
     826             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     827             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     828             :   false,  /* isInfallible. False in setters. */
     829             :   false,  /* isMovable.  Not relevant for setters. */
     830             :   false, /* isEliminatable.  Not relevant for setters. */
     831             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     832             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     833             :   false,  /* isTypedMethod.  Only relevant for methods. */
     834             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     835             : };
     836             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     837             : static_assert(0 < 1, "There is no slot for us");
     838             : 
     839             : static bool
     840           0 : get_animationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     841             : {
     842           0 :   binding_detail::FastErrorResult rv;
     843           0 :   DOMString result;
     844           0 :   self->GetAnimationDuration(result, rv);
     845           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     846           0 :     return false;
     847             :   }
     848           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     849           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     850           0 :     return false;
     851             :   }
     852           0 :   return true;
     853             : }
     854             : 
     855             : static bool
     856           0 : set_animationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     857             : {
     858           0 :   binding_detail::FakeString arg0;
     859           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     860           0 :     return false;
     861             :   }
     862           0 :   binding_detail::FastErrorResult rv;
     863           0 :   self->SetAnimationDuration(NonNullHelper(Constify(arg0)), rv);
     864           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     865           0 :     return false;
     866             :   }
     867           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     868             : 
     869           0 :   return true;
     870             : }
     871             : 
     872             : static const JSJitInfo animationDuration_getterinfo = {
     873             :   { (JSJitGetterOp)get_animationDuration },
     874             :   { prototypes::id::CSS2Properties },
     875             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     876             :   JSJitInfo::Getter,
     877             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     878             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     879             :   false,  /* isInfallible. False in setters. */
     880             :   false,  /* isMovable.  Not relevant for setters. */
     881             :   false, /* isEliminatable.  Not relevant for setters. */
     882             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     883             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     884             :   false,  /* isTypedMethod.  Only relevant for methods. */
     885             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     886             : };
     887             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     888             : static_assert(0 < 1, "There is no slot for us");
     889             : static const JSJitInfo animationDuration_setterinfo = {
     890             :   { (JSJitGetterOp)set_animationDuration },
     891             :   { prototypes::id::CSS2Properties },
     892             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     893             :   JSJitInfo::Setter,
     894             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     895             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     896             :   false,  /* isInfallible. False in setters. */
     897             :   false,  /* isMovable.  Not relevant for setters. */
     898             :   false, /* isEliminatable.  Not relevant for setters. */
     899             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     900             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     901             :   false,  /* isTypedMethod.  Only relevant for methods. */
     902             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     903             : };
     904             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     905             : static_assert(0 < 1, "There is no slot for us");
     906             : 
     907             : static bool
     908           0 : get_animation_duration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     909             : {
     910           0 :   binding_detail::FastErrorResult rv;
     911           0 :   DOMString result;
     912           0 :   self->GetAnimationDuration(result, rv);
     913           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     914           0 :     return false;
     915             :   }
     916           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     917           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     918           0 :     return false;
     919             :   }
     920           0 :   return true;
     921             : }
     922             : 
     923             : static bool
     924           0 : set_animation_duration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     925             : {
     926           0 :   binding_detail::FakeString arg0;
     927           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     928           0 :     return false;
     929             :   }
     930           0 :   binding_detail::FastErrorResult rv;
     931           0 :   self->SetAnimationDuration(NonNullHelper(Constify(arg0)), rv);
     932           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     933           0 :     return false;
     934             :   }
     935           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     936             : 
     937           0 :   return true;
     938             : }
     939             : 
     940             : static const JSJitInfo animation_duration_getterinfo = {
     941             :   { (JSJitGetterOp)get_animation_duration },
     942             :   { prototypes::id::CSS2Properties },
     943             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     944             :   JSJitInfo::Getter,
     945             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     946             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
     947             :   false,  /* isInfallible. False in setters. */
     948             :   false,  /* isMovable.  Not relevant for setters. */
     949             :   false, /* isEliminatable.  Not relevant for setters. */
     950             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     951             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     952             :   false,  /* isTypedMethod.  Only relevant for methods. */
     953             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     954             : };
     955             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     956             : static_assert(0 < 1, "There is no slot for us");
     957             : static const JSJitInfo animation_duration_setterinfo = {
     958             :   { (JSJitGetterOp)set_animation_duration },
     959             :   { prototypes::id::CSS2Properties },
     960             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
     961             :   JSJitInfo::Setter,
     962             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
     963             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
     964             :   false,  /* isInfallible. False in setters. */
     965             :   false,  /* isMovable.  Not relevant for setters. */
     966             :   false, /* isEliminatable.  Not relevant for setters. */
     967             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
     968             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
     969             :   false,  /* isTypedMethod.  Only relevant for methods. */
     970             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
     971             : };
     972             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
     973             : static_assert(0 < 1, "There is no slot for us");
     974             : 
     975             : static bool
     976           0 : get_animationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
     977             : {
     978           0 :   binding_detail::FastErrorResult rv;
     979           0 :   DOMString result;
     980           0 :   self->GetAnimationFillMode(result, rv);
     981           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
     982           0 :     return false;
     983             :   }
     984           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
     985           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
     986           0 :     return false;
     987             :   }
     988           0 :   return true;
     989             : }
     990             : 
     991             : static bool
     992           0 : set_animationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
     993             : {
     994           0 :   binding_detail::FakeString arg0;
     995           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
     996           0 :     return false;
     997             :   }
     998           0 :   binding_detail::FastErrorResult rv;
     999           0 :   self->SetAnimationFillMode(NonNullHelper(Constify(arg0)), rv);
    1000           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1001           0 :     return false;
    1002             :   }
    1003           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1004             : 
    1005           0 :   return true;
    1006             : }
    1007             : 
    1008             : static const JSJitInfo animationFillMode_getterinfo = {
    1009             :   { (JSJitGetterOp)get_animationFillMode },
    1010             :   { prototypes::id::CSS2Properties },
    1011             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1012             :   JSJitInfo::Getter,
    1013             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1014             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1015             :   false,  /* isInfallible. False in setters. */
    1016             :   false,  /* isMovable.  Not relevant for setters. */
    1017             :   false, /* isEliminatable.  Not relevant for setters. */
    1018             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1019             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1020             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1021             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1022             : };
    1023             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1024             : static_assert(0 < 1, "There is no slot for us");
    1025             : static const JSJitInfo animationFillMode_setterinfo = {
    1026             :   { (JSJitGetterOp)set_animationFillMode },
    1027             :   { prototypes::id::CSS2Properties },
    1028             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1029             :   JSJitInfo::Setter,
    1030             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1031             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1032             :   false,  /* isInfallible. False in setters. */
    1033             :   false,  /* isMovable.  Not relevant for setters. */
    1034             :   false, /* isEliminatable.  Not relevant for setters. */
    1035             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1036             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1037             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1038             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1039             : };
    1040             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1041             : static_assert(0 < 1, "There is no slot for us");
    1042             : 
    1043             : static bool
    1044           0 : get_animation_fill_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1045             : {
    1046           0 :   binding_detail::FastErrorResult rv;
    1047           0 :   DOMString result;
    1048           0 :   self->GetAnimationFillMode(result, rv);
    1049           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1050           0 :     return false;
    1051             :   }
    1052           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1053           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1054           0 :     return false;
    1055             :   }
    1056           0 :   return true;
    1057             : }
    1058             : 
    1059             : static bool
    1060           0 : set_animation_fill_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1061             : {
    1062           0 :   binding_detail::FakeString arg0;
    1063           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1064           0 :     return false;
    1065             :   }
    1066           0 :   binding_detail::FastErrorResult rv;
    1067           0 :   self->SetAnimationFillMode(NonNullHelper(Constify(arg0)), rv);
    1068           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1069           0 :     return false;
    1070             :   }
    1071           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1072             : 
    1073           0 :   return true;
    1074             : }
    1075             : 
    1076             : static const JSJitInfo animation_fill_mode_getterinfo = {
    1077             :   { (JSJitGetterOp)get_animation_fill_mode },
    1078             :   { prototypes::id::CSS2Properties },
    1079             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1080             :   JSJitInfo::Getter,
    1081             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1082             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1083             :   false,  /* isInfallible. False in setters. */
    1084             :   false,  /* isMovable.  Not relevant for setters. */
    1085             :   false, /* isEliminatable.  Not relevant for setters. */
    1086             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1087             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1088             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1089             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1090             : };
    1091             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1092             : static_assert(0 < 1, "There is no slot for us");
    1093             : static const JSJitInfo animation_fill_mode_setterinfo = {
    1094             :   { (JSJitGetterOp)set_animation_fill_mode },
    1095             :   { prototypes::id::CSS2Properties },
    1096             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1097             :   JSJitInfo::Setter,
    1098             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1099             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1100             :   false,  /* isInfallible. False in setters. */
    1101             :   false,  /* isMovable.  Not relevant for setters. */
    1102             :   false, /* isEliminatable.  Not relevant for setters. */
    1103             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1104             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1105             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1106             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1107             : };
    1108             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1109             : static_assert(0 < 1, "There is no slot for us");
    1110             : 
    1111             : static bool
    1112           0 : get_animationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1113             : {
    1114           0 :   binding_detail::FastErrorResult rv;
    1115           0 :   DOMString result;
    1116           0 :   self->GetAnimationIterationCount(result, rv);
    1117           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1118           0 :     return false;
    1119             :   }
    1120           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1121           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1122           0 :     return false;
    1123             :   }
    1124           0 :   return true;
    1125             : }
    1126             : 
    1127             : static bool
    1128           0 : set_animationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1129             : {
    1130           0 :   binding_detail::FakeString arg0;
    1131           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1132           0 :     return false;
    1133             :   }
    1134           0 :   binding_detail::FastErrorResult rv;
    1135           0 :   self->SetAnimationIterationCount(NonNullHelper(Constify(arg0)), rv);
    1136           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1137           0 :     return false;
    1138             :   }
    1139           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1140             : 
    1141           0 :   return true;
    1142             : }
    1143             : 
    1144             : static const JSJitInfo animationIterationCount_getterinfo = {
    1145             :   { (JSJitGetterOp)get_animationIterationCount },
    1146             :   { prototypes::id::CSS2Properties },
    1147             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1148             :   JSJitInfo::Getter,
    1149             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1150             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1151             :   false,  /* isInfallible. False in setters. */
    1152             :   false,  /* isMovable.  Not relevant for setters. */
    1153             :   false, /* isEliminatable.  Not relevant for setters. */
    1154             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1155             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1156             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1157             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1158             : };
    1159             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1160             : static_assert(0 < 1, "There is no slot for us");
    1161             : static const JSJitInfo animationIterationCount_setterinfo = {
    1162             :   { (JSJitGetterOp)set_animationIterationCount },
    1163             :   { prototypes::id::CSS2Properties },
    1164             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1165             :   JSJitInfo::Setter,
    1166             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1167             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1168             :   false,  /* isInfallible. False in setters. */
    1169             :   false,  /* isMovable.  Not relevant for setters. */
    1170             :   false, /* isEliminatable.  Not relevant for setters. */
    1171             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1172             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1173             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1174             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1175             : };
    1176             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1177             : static_assert(0 < 1, "There is no slot for us");
    1178             : 
    1179             : static bool
    1180           0 : get_animation_iteration_count(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1181             : {
    1182           0 :   binding_detail::FastErrorResult rv;
    1183           0 :   DOMString result;
    1184           0 :   self->GetAnimationIterationCount(result, rv);
    1185           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1186           0 :     return false;
    1187             :   }
    1188           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1189           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1190           0 :     return false;
    1191             :   }
    1192           0 :   return true;
    1193             : }
    1194             : 
    1195             : static bool
    1196           0 : set_animation_iteration_count(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1197             : {
    1198           0 :   binding_detail::FakeString arg0;
    1199           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1200           0 :     return false;
    1201             :   }
    1202           0 :   binding_detail::FastErrorResult rv;
    1203           0 :   self->SetAnimationIterationCount(NonNullHelper(Constify(arg0)), rv);
    1204           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1205           0 :     return false;
    1206             :   }
    1207           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1208             : 
    1209           0 :   return true;
    1210             : }
    1211             : 
    1212             : static const JSJitInfo animation_iteration_count_getterinfo = {
    1213             :   { (JSJitGetterOp)get_animation_iteration_count },
    1214             :   { prototypes::id::CSS2Properties },
    1215             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1216             :   JSJitInfo::Getter,
    1217             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1218             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1219             :   false,  /* isInfallible. False in setters. */
    1220             :   false,  /* isMovable.  Not relevant for setters. */
    1221             :   false, /* isEliminatable.  Not relevant for setters. */
    1222             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1223             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1224             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1225             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1226             : };
    1227             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1228             : static_assert(0 < 1, "There is no slot for us");
    1229             : static const JSJitInfo animation_iteration_count_setterinfo = {
    1230             :   { (JSJitGetterOp)set_animation_iteration_count },
    1231             :   { prototypes::id::CSS2Properties },
    1232             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1233             :   JSJitInfo::Setter,
    1234             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1235             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1236             :   false,  /* isInfallible. False in setters. */
    1237             :   false,  /* isMovable.  Not relevant for setters. */
    1238             :   false, /* isEliminatable.  Not relevant for setters. */
    1239             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1240             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1241             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1242             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1243             : };
    1244             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1245             : static_assert(0 < 1, "There is no slot for us");
    1246             : 
    1247             : static bool
    1248           0 : get_animationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1249             : {
    1250           0 :   binding_detail::FastErrorResult rv;
    1251           0 :   DOMString result;
    1252           0 :   self->GetAnimationName(result, rv);
    1253           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1254           0 :     return false;
    1255             :   }
    1256           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1257           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1258           0 :     return false;
    1259             :   }
    1260           0 :   return true;
    1261             : }
    1262             : 
    1263             : static bool
    1264           0 : set_animationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1265             : {
    1266           0 :   binding_detail::FakeString arg0;
    1267           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1268           0 :     return false;
    1269             :   }
    1270           0 :   binding_detail::FastErrorResult rv;
    1271           0 :   self->SetAnimationName(NonNullHelper(Constify(arg0)), rv);
    1272           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1273           0 :     return false;
    1274             :   }
    1275           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1276             : 
    1277           0 :   return true;
    1278             : }
    1279             : 
    1280             : static const JSJitInfo animationName_getterinfo = {
    1281             :   { (JSJitGetterOp)get_animationName },
    1282             :   { prototypes::id::CSS2Properties },
    1283             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1284             :   JSJitInfo::Getter,
    1285             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1286             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1287             :   false,  /* isInfallible. False in setters. */
    1288             :   false,  /* isMovable.  Not relevant for setters. */
    1289             :   false, /* isEliminatable.  Not relevant for setters. */
    1290             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1291             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1292             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1293             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1294             : };
    1295             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1296             : static_assert(0 < 1, "There is no slot for us");
    1297             : static const JSJitInfo animationName_setterinfo = {
    1298             :   { (JSJitGetterOp)set_animationName },
    1299             :   { prototypes::id::CSS2Properties },
    1300             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1301             :   JSJitInfo::Setter,
    1302             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1303             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1304             :   false,  /* isInfallible. False in setters. */
    1305             :   false,  /* isMovable.  Not relevant for setters. */
    1306             :   false, /* isEliminatable.  Not relevant for setters. */
    1307             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1308             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1309             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1310             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1311             : };
    1312             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1313             : static_assert(0 < 1, "There is no slot for us");
    1314             : 
    1315             : static bool
    1316           0 : get_animation_name(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1317             : {
    1318           0 :   binding_detail::FastErrorResult rv;
    1319           0 :   DOMString result;
    1320           0 :   self->GetAnimationName(result, rv);
    1321           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1322           0 :     return false;
    1323             :   }
    1324           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1325           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1326           0 :     return false;
    1327             :   }
    1328           0 :   return true;
    1329             : }
    1330             : 
    1331             : static bool
    1332           0 : set_animation_name(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1333             : {
    1334           0 :   binding_detail::FakeString arg0;
    1335           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1336           0 :     return false;
    1337             :   }
    1338           0 :   binding_detail::FastErrorResult rv;
    1339           0 :   self->SetAnimationName(NonNullHelper(Constify(arg0)), rv);
    1340           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1341           0 :     return false;
    1342             :   }
    1343           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1344             : 
    1345           0 :   return true;
    1346             : }
    1347             : 
    1348             : static const JSJitInfo animation_name_getterinfo = {
    1349             :   { (JSJitGetterOp)get_animation_name },
    1350             :   { prototypes::id::CSS2Properties },
    1351             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1352             :   JSJitInfo::Getter,
    1353             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1354             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1355             :   false,  /* isInfallible. False in setters. */
    1356             :   false,  /* isMovable.  Not relevant for setters. */
    1357             :   false, /* isEliminatable.  Not relevant for setters. */
    1358             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1359             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1360             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1361             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1362             : };
    1363             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1364             : static_assert(0 < 1, "There is no slot for us");
    1365             : static const JSJitInfo animation_name_setterinfo = {
    1366             :   { (JSJitGetterOp)set_animation_name },
    1367             :   { prototypes::id::CSS2Properties },
    1368             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1369             :   JSJitInfo::Setter,
    1370             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1371             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1372             :   false,  /* isInfallible. False in setters. */
    1373             :   false,  /* isMovable.  Not relevant for setters. */
    1374             :   false, /* isEliminatable.  Not relevant for setters. */
    1375             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1376             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1377             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1378             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1379             : };
    1380             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1381             : static_assert(0 < 1, "There is no slot for us");
    1382             : 
    1383             : static bool
    1384           0 : get_animationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1385             : {
    1386           0 :   binding_detail::FastErrorResult rv;
    1387           0 :   DOMString result;
    1388           0 :   self->GetAnimationPlayState(result, rv);
    1389           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1390           0 :     return false;
    1391             :   }
    1392           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1393           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1394           0 :     return false;
    1395             :   }
    1396           0 :   return true;
    1397             : }
    1398             : 
    1399             : static bool
    1400           0 : set_animationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1401             : {
    1402           0 :   binding_detail::FakeString arg0;
    1403           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1404           0 :     return false;
    1405             :   }
    1406           0 :   binding_detail::FastErrorResult rv;
    1407           0 :   self->SetAnimationPlayState(NonNullHelper(Constify(arg0)), rv);
    1408           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1409           0 :     return false;
    1410             :   }
    1411           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1412             : 
    1413           0 :   return true;
    1414             : }
    1415             : 
    1416             : static const JSJitInfo animationPlayState_getterinfo = {
    1417             :   { (JSJitGetterOp)get_animationPlayState },
    1418             :   { prototypes::id::CSS2Properties },
    1419             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1420             :   JSJitInfo::Getter,
    1421             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1422             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1423             :   false,  /* isInfallible. False in setters. */
    1424             :   false,  /* isMovable.  Not relevant for setters. */
    1425             :   false, /* isEliminatable.  Not relevant for setters. */
    1426             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1427             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1428             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1429             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1430             : };
    1431             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1432             : static_assert(0 < 1, "There is no slot for us");
    1433             : static const JSJitInfo animationPlayState_setterinfo = {
    1434             :   { (JSJitGetterOp)set_animationPlayState },
    1435             :   { prototypes::id::CSS2Properties },
    1436             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1437             :   JSJitInfo::Setter,
    1438             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1439             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1440             :   false,  /* isInfallible. False in setters. */
    1441             :   false,  /* isMovable.  Not relevant for setters. */
    1442             :   false, /* isEliminatable.  Not relevant for setters. */
    1443             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1444             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1445             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1446             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1447             : };
    1448             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1449             : static_assert(0 < 1, "There is no slot for us");
    1450             : 
    1451             : static bool
    1452           0 : get_animation_play_state(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1453             : {
    1454           0 :   binding_detail::FastErrorResult rv;
    1455           0 :   DOMString result;
    1456           0 :   self->GetAnimationPlayState(result, rv);
    1457           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1458           0 :     return false;
    1459             :   }
    1460           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1461           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1462           0 :     return false;
    1463             :   }
    1464           0 :   return true;
    1465             : }
    1466             : 
    1467             : static bool
    1468           0 : set_animation_play_state(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1469             : {
    1470           0 :   binding_detail::FakeString arg0;
    1471           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1472           0 :     return false;
    1473             :   }
    1474           0 :   binding_detail::FastErrorResult rv;
    1475           0 :   self->SetAnimationPlayState(NonNullHelper(Constify(arg0)), rv);
    1476           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1477           0 :     return false;
    1478             :   }
    1479           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1480             : 
    1481           0 :   return true;
    1482             : }
    1483             : 
    1484             : static const JSJitInfo animation_play_state_getterinfo = {
    1485             :   { (JSJitGetterOp)get_animation_play_state },
    1486             :   { prototypes::id::CSS2Properties },
    1487             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1488             :   JSJitInfo::Getter,
    1489             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1490             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1491             :   false,  /* isInfallible. False in setters. */
    1492             :   false,  /* isMovable.  Not relevant for setters. */
    1493             :   false, /* isEliminatable.  Not relevant for setters. */
    1494             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1495             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1496             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1497             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1498             : };
    1499             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1500             : static_assert(0 < 1, "There is no slot for us");
    1501             : static const JSJitInfo animation_play_state_setterinfo = {
    1502             :   { (JSJitGetterOp)set_animation_play_state },
    1503             :   { prototypes::id::CSS2Properties },
    1504             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1505             :   JSJitInfo::Setter,
    1506             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1507             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1508             :   false,  /* isInfallible. False in setters. */
    1509             :   false,  /* isMovable.  Not relevant for setters. */
    1510             :   false, /* isEliminatable.  Not relevant for setters. */
    1511             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1512             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1513             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1514             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1515             : };
    1516             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1517             : static_assert(0 < 1, "There is no slot for us");
    1518             : 
    1519             : static bool
    1520           0 : get_animationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1521             : {
    1522           0 :   binding_detail::FastErrorResult rv;
    1523           0 :   DOMString result;
    1524           0 :   self->GetAnimationTimingFunction(result, rv);
    1525           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1526           0 :     return false;
    1527             :   }
    1528           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1529           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1530           0 :     return false;
    1531             :   }
    1532           0 :   return true;
    1533             : }
    1534             : 
    1535             : static bool
    1536           0 : set_animationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1537             : {
    1538           0 :   binding_detail::FakeString arg0;
    1539           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1540           0 :     return false;
    1541             :   }
    1542           0 :   binding_detail::FastErrorResult rv;
    1543           0 :   self->SetAnimationTimingFunction(NonNullHelper(Constify(arg0)), rv);
    1544           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1545           0 :     return false;
    1546             :   }
    1547           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1548             : 
    1549           0 :   return true;
    1550             : }
    1551             : 
    1552             : static const JSJitInfo animationTimingFunction_getterinfo = {
    1553             :   { (JSJitGetterOp)get_animationTimingFunction },
    1554             :   { prototypes::id::CSS2Properties },
    1555             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1556             :   JSJitInfo::Getter,
    1557             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1558             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1559             :   false,  /* isInfallible. False in setters. */
    1560             :   false,  /* isMovable.  Not relevant for setters. */
    1561             :   false, /* isEliminatable.  Not relevant for setters. */
    1562             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1563             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1564             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1565             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1566             : };
    1567             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1568             : static_assert(0 < 1, "There is no slot for us");
    1569             : static const JSJitInfo animationTimingFunction_setterinfo = {
    1570             :   { (JSJitGetterOp)set_animationTimingFunction },
    1571             :   { prototypes::id::CSS2Properties },
    1572             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1573             :   JSJitInfo::Setter,
    1574             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1575             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1576             :   false,  /* isInfallible. False in setters. */
    1577             :   false,  /* isMovable.  Not relevant for setters. */
    1578             :   false, /* isEliminatable.  Not relevant for setters. */
    1579             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1580             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1581             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1582             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1583             : };
    1584             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1585             : static_assert(0 < 1, "There is no slot for us");
    1586             : 
    1587             : static bool
    1588           0 : get_animation_timing_function(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1589             : {
    1590           0 :   binding_detail::FastErrorResult rv;
    1591           0 :   DOMString result;
    1592           0 :   self->GetAnimationTimingFunction(result, rv);
    1593           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1594           0 :     return false;
    1595             :   }
    1596           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1597           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1598           0 :     return false;
    1599             :   }
    1600           0 :   return true;
    1601             : }
    1602             : 
    1603             : static bool
    1604           0 : set_animation_timing_function(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1605             : {
    1606           0 :   binding_detail::FakeString arg0;
    1607           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1608           0 :     return false;
    1609             :   }
    1610           0 :   binding_detail::FastErrorResult rv;
    1611           0 :   self->SetAnimationTimingFunction(NonNullHelper(Constify(arg0)), rv);
    1612           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1613           0 :     return false;
    1614             :   }
    1615           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1616             : 
    1617           0 :   return true;
    1618             : }
    1619             : 
    1620             : static const JSJitInfo animation_timing_function_getterinfo = {
    1621             :   { (JSJitGetterOp)get_animation_timing_function },
    1622             :   { prototypes::id::CSS2Properties },
    1623             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1624             :   JSJitInfo::Getter,
    1625             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1626             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1627             :   false,  /* isInfallible. False in setters. */
    1628             :   false,  /* isMovable.  Not relevant for setters. */
    1629             :   false, /* isEliminatable.  Not relevant for setters. */
    1630             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1631             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1632             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1633             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1634             : };
    1635             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1636             : static_assert(0 < 1, "There is no slot for us");
    1637             : static const JSJitInfo animation_timing_function_setterinfo = {
    1638             :   { (JSJitGetterOp)set_animation_timing_function },
    1639             :   { prototypes::id::CSS2Properties },
    1640             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1641             :   JSJitInfo::Setter,
    1642             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1643             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1644             :   false,  /* isInfallible. False in setters. */
    1645             :   false,  /* isMovable.  Not relevant for setters. */
    1646             :   false, /* isEliminatable.  Not relevant for setters. */
    1647             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1648             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1649             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1650             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1651             : };
    1652             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1653             : static_assert(0 < 1, "There is no slot for us");
    1654             : 
    1655             : static bool
    1656           0 : get_MozAppearance(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1657             : {
    1658           0 :   binding_detail::FastErrorResult rv;
    1659           0 :   DOMString result;
    1660           0 :   self->GetMozAppearance(result, rv);
    1661           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1662           0 :     return false;
    1663             :   }
    1664           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1665           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1666           0 :     return false;
    1667             :   }
    1668           0 :   return true;
    1669             : }
    1670             : 
    1671             : static bool
    1672           0 : set_MozAppearance(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1673             : {
    1674           0 :   binding_detail::FakeString arg0;
    1675           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1676           0 :     return false;
    1677             :   }
    1678           0 :   binding_detail::FastErrorResult rv;
    1679           0 :   self->SetMozAppearance(NonNullHelper(Constify(arg0)), rv);
    1680           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1681           0 :     return false;
    1682             :   }
    1683           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1684             : 
    1685           0 :   return true;
    1686             : }
    1687             : 
    1688             : static const JSJitInfo MozAppearance_getterinfo = {
    1689             :   { (JSJitGetterOp)get_MozAppearance },
    1690             :   { prototypes::id::CSS2Properties },
    1691             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1692             :   JSJitInfo::Getter,
    1693             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1694             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1695             :   false,  /* isInfallible. False in setters. */
    1696             :   false,  /* isMovable.  Not relevant for setters. */
    1697             :   false, /* isEliminatable.  Not relevant for setters. */
    1698             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1699             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1700             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1701             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1702             : };
    1703             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1704             : static_assert(0 < 1, "There is no slot for us");
    1705             : static const JSJitInfo MozAppearance_setterinfo = {
    1706             :   { (JSJitGetterOp)set_MozAppearance },
    1707             :   { prototypes::id::CSS2Properties },
    1708             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1709             :   JSJitInfo::Setter,
    1710             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1711             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1712             :   false,  /* isInfallible. False in setters. */
    1713             :   false,  /* isMovable.  Not relevant for setters. */
    1714             :   false, /* isEliminatable.  Not relevant for setters. */
    1715             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1716             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1717             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1718             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1719             : };
    1720             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1721             : static_assert(0 < 1, "There is no slot for us");
    1722             : 
    1723             : static bool
    1724           0 : get__moz_appearance(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1725             : {
    1726           0 :   binding_detail::FastErrorResult rv;
    1727           0 :   DOMString result;
    1728           0 :   self->GetMozAppearance(result, rv);
    1729           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1730           0 :     return false;
    1731             :   }
    1732           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1733           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1734           0 :     return false;
    1735             :   }
    1736           0 :   return true;
    1737             : }
    1738             : 
    1739             : static bool
    1740           0 : set__moz_appearance(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1741             : {
    1742           0 :   binding_detail::FakeString arg0;
    1743           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1744           0 :     return false;
    1745             :   }
    1746           0 :   binding_detail::FastErrorResult rv;
    1747           0 :   self->SetMozAppearance(NonNullHelper(Constify(arg0)), rv);
    1748           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1749           0 :     return false;
    1750             :   }
    1751           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1752             : 
    1753           0 :   return true;
    1754             : }
    1755             : 
    1756             : static const JSJitInfo _moz_appearance_getterinfo = {
    1757             :   { (JSJitGetterOp)get__moz_appearance },
    1758             :   { prototypes::id::CSS2Properties },
    1759             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1760             :   JSJitInfo::Getter,
    1761             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1762             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1763             :   false,  /* isInfallible. False in setters. */
    1764             :   false,  /* isMovable.  Not relevant for setters. */
    1765             :   false, /* isEliminatable.  Not relevant for setters. */
    1766             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1767             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1768             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1769             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1770             : };
    1771             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1772             : static_assert(0 < 1, "There is no slot for us");
    1773             : static const JSJitInfo _moz_appearance_setterinfo = {
    1774             :   { (JSJitGetterOp)set__moz_appearance },
    1775             :   { prototypes::id::CSS2Properties },
    1776             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1777             :   JSJitInfo::Setter,
    1778             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1779             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1780             :   false,  /* isInfallible. False in setters. */
    1781             :   false,  /* isMovable.  Not relevant for setters. */
    1782             :   false, /* isEliminatable.  Not relevant for setters. */
    1783             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1784             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1785             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1786             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1787             : };
    1788             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1789             : static_assert(0 < 1, "There is no slot for us");
    1790             : 
    1791             : static bool
    1792           0 : get_backfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1793             : {
    1794           0 :   binding_detail::FastErrorResult rv;
    1795           0 :   DOMString result;
    1796           0 :   self->GetBackfaceVisibility(result, rv);
    1797           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1798           0 :     return false;
    1799             :   }
    1800           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1801           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1802           0 :     return false;
    1803             :   }
    1804           0 :   return true;
    1805             : }
    1806             : 
    1807             : static bool
    1808           0 : set_backfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1809             : {
    1810           0 :   binding_detail::FakeString arg0;
    1811           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1812           0 :     return false;
    1813             :   }
    1814           0 :   binding_detail::FastErrorResult rv;
    1815           0 :   self->SetBackfaceVisibility(NonNullHelper(Constify(arg0)), rv);
    1816           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1817           0 :     return false;
    1818             :   }
    1819           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1820             : 
    1821           0 :   return true;
    1822             : }
    1823             : 
    1824             : static const JSJitInfo backfaceVisibility_getterinfo = {
    1825             :   { (JSJitGetterOp)get_backfaceVisibility },
    1826             :   { prototypes::id::CSS2Properties },
    1827             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1828             :   JSJitInfo::Getter,
    1829             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1830             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1831             :   false,  /* isInfallible. False in setters. */
    1832             :   false,  /* isMovable.  Not relevant for setters. */
    1833             :   false, /* isEliminatable.  Not relevant for setters. */
    1834             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1835             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1836             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1837             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1838             : };
    1839             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1840             : static_assert(0 < 1, "There is no slot for us");
    1841             : static const JSJitInfo backfaceVisibility_setterinfo = {
    1842             :   { (JSJitGetterOp)set_backfaceVisibility },
    1843             :   { prototypes::id::CSS2Properties },
    1844             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1845             :   JSJitInfo::Setter,
    1846             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1847             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1848             :   false,  /* isInfallible. False in setters. */
    1849             :   false,  /* isMovable.  Not relevant for setters. */
    1850             :   false, /* isEliminatable.  Not relevant for setters. */
    1851             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1852             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1853             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1854             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1855             : };
    1856             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1857             : static_assert(0 < 1, "There is no slot for us");
    1858             : 
    1859             : static bool
    1860           0 : get_backface_visibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1861             : {
    1862           0 :   binding_detail::FastErrorResult rv;
    1863           0 :   DOMString result;
    1864           0 :   self->GetBackfaceVisibility(result, rv);
    1865           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1866           0 :     return false;
    1867             :   }
    1868           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1869           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1870           0 :     return false;
    1871             :   }
    1872           0 :   return true;
    1873             : }
    1874             : 
    1875             : static bool
    1876           0 : set_backface_visibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1877             : {
    1878           0 :   binding_detail::FakeString arg0;
    1879           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1880           0 :     return false;
    1881             :   }
    1882           0 :   binding_detail::FastErrorResult rv;
    1883           0 :   self->SetBackfaceVisibility(NonNullHelper(Constify(arg0)), rv);
    1884           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1885           0 :     return false;
    1886             :   }
    1887           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1888             : 
    1889           0 :   return true;
    1890             : }
    1891             : 
    1892             : static const JSJitInfo backface_visibility_getterinfo = {
    1893             :   { (JSJitGetterOp)get_backface_visibility },
    1894             :   { prototypes::id::CSS2Properties },
    1895             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1896             :   JSJitInfo::Getter,
    1897             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1898             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1899             :   false,  /* isInfallible. False in setters. */
    1900             :   false,  /* isMovable.  Not relevant for setters. */
    1901             :   false, /* isEliminatable.  Not relevant for setters. */
    1902             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1903             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1904             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1905             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1906             : };
    1907             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1908             : static_assert(0 < 1, "There is no slot for us");
    1909             : static const JSJitInfo backface_visibility_setterinfo = {
    1910             :   { (JSJitGetterOp)set_backface_visibility },
    1911             :   { prototypes::id::CSS2Properties },
    1912             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1913             :   JSJitInfo::Setter,
    1914             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1915             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1916             :   false,  /* isInfallible. False in setters. */
    1917             :   false,  /* isMovable.  Not relevant for setters. */
    1918             :   false, /* isEliminatable.  Not relevant for setters. */
    1919             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1920             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1921             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1922             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1923             : };
    1924             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1925             : static_assert(0 < 1, "There is no slot for us");
    1926             : 
    1927             : static bool
    1928           0 : get_background(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1929             : {
    1930           0 :   binding_detail::FastErrorResult rv;
    1931           0 :   DOMString result;
    1932           0 :   self->GetBackground(result, rv);
    1933           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1934           0 :     return false;
    1935             :   }
    1936           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1937           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    1938           0 :     return false;
    1939             :   }
    1940           0 :   return true;
    1941             : }
    1942             : 
    1943             : static bool
    1944           0 : set_background(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    1945             : {
    1946           0 :   binding_detail::FakeString arg0;
    1947           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    1948           0 :     return false;
    1949             :   }
    1950           0 :   binding_detail::FastErrorResult rv;
    1951           0 :   self->SetBackground(NonNullHelper(Constify(arg0)), rv);
    1952           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    1953           0 :     return false;
    1954             :   }
    1955           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    1956             : 
    1957           0 :   return true;
    1958             : }
    1959             : 
    1960             : static const JSJitInfo background_getterinfo = {
    1961             :   { (JSJitGetterOp)get_background },
    1962             :   { prototypes::id::CSS2Properties },
    1963             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1964             :   JSJitInfo::Getter,
    1965             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1966             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    1967             :   false,  /* isInfallible. False in setters. */
    1968             :   false,  /* isMovable.  Not relevant for setters. */
    1969             :   false, /* isEliminatable.  Not relevant for setters. */
    1970             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1971             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1972             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1973             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1974             : };
    1975             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1976             : static_assert(0 < 1, "There is no slot for us");
    1977             : static const JSJitInfo background_setterinfo = {
    1978             :   { (JSJitGetterOp)set_background },
    1979             :   { prototypes::id::CSS2Properties },
    1980             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    1981             :   JSJitInfo::Setter,
    1982             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    1983             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    1984             :   false,  /* isInfallible. False in setters. */
    1985             :   false,  /* isMovable.  Not relevant for setters. */
    1986             :   false, /* isEliminatable.  Not relevant for setters. */
    1987             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    1988             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    1989             :   false,  /* isTypedMethod.  Only relevant for methods. */
    1990             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    1991             : };
    1992             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    1993             : static_assert(0 < 1, "There is no slot for us");
    1994             : 
    1995             : static bool
    1996           0 : get_backgroundAttachment(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    1997             : {
    1998           0 :   binding_detail::FastErrorResult rv;
    1999           0 :   DOMString result;
    2000           0 :   self->GetBackgroundAttachment(result, rv);
    2001           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2002           0 :     return false;
    2003             :   }
    2004           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2005           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2006           0 :     return false;
    2007             :   }
    2008           0 :   return true;
    2009             : }
    2010             : 
    2011             : static bool
    2012           0 : set_backgroundAttachment(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2013             : {
    2014           0 :   binding_detail::FakeString arg0;
    2015           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2016           0 :     return false;
    2017             :   }
    2018           0 :   binding_detail::FastErrorResult rv;
    2019           0 :   self->SetBackgroundAttachment(NonNullHelper(Constify(arg0)), rv);
    2020           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2021           0 :     return false;
    2022             :   }
    2023           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2024             : 
    2025           0 :   return true;
    2026             : }
    2027             : 
    2028             : static const JSJitInfo backgroundAttachment_getterinfo = {
    2029             :   { (JSJitGetterOp)get_backgroundAttachment },
    2030             :   { prototypes::id::CSS2Properties },
    2031             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2032             :   JSJitInfo::Getter,
    2033             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2034             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2035             :   false,  /* isInfallible. False in setters. */
    2036             :   false,  /* isMovable.  Not relevant for setters. */
    2037             :   false, /* isEliminatable.  Not relevant for setters. */
    2038             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2039             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2040             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2041             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2042             : };
    2043             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2044             : static_assert(0 < 1, "There is no slot for us");
    2045             : static const JSJitInfo backgroundAttachment_setterinfo = {
    2046             :   { (JSJitGetterOp)set_backgroundAttachment },
    2047             :   { prototypes::id::CSS2Properties },
    2048             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2049             :   JSJitInfo::Setter,
    2050             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2051             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2052             :   false,  /* isInfallible. False in setters. */
    2053             :   false,  /* isMovable.  Not relevant for setters. */
    2054             :   false, /* isEliminatable.  Not relevant for setters. */
    2055             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2056             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2057             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2058             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2059             : };
    2060             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2061             : static_assert(0 < 1, "There is no slot for us");
    2062             : 
    2063             : static bool
    2064           0 : get_background_attachment(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2065             : {
    2066           0 :   binding_detail::FastErrorResult rv;
    2067           0 :   DOMString result;
    2068           0 :   self->GetBackgroundAttachment(result, rv);
    2069           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2070           0 :     return false;
    2071             :   }
    2072           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2073           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2074           0 :     return false;
    2075             :   }
    2076           0 :   return true;
    2077             : }
    2078             : 
    2079             : static bool
    2080           0 : set_background_attachment(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2081             : {
    2082           0 :   binding_detail::FakeString arg0;
    2083           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2084           0 :     return false;
    2085             :   }
    2086           0 :   binding_detail::FastErrorResult rv;
    2087           0 :   self->SetBackgroundAttachment(NonNullHelper(Constify(arg0)), rv);
    2088           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2089           0 :     return false;
    2090             :   }
    2091           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2092             : 
    2093           0 :   return true;
    2094             : }
    2095             : 
    2096             : static const JSJitInfo background_attachment_getterinfo = {
    2097             :   { (JSJitGetterOp)get_background_attachment },
    2098             :   { prototypes::id::CSS2Properties },
    2099             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2100             :   JSJitInfo::Getter,
    2101             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2102             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2103             :   false,  /* isInfallible. False in setters. */
    2104             :   false,  /* isMovable.  Not relevant for setters. */
    2105             :   false, /* isEliminatable.  Not relevant for setters. */
    2106             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2107             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2108             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2109             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2110             : };
    2111             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2112             : static_assert(0 < 1, "There is no slot for us");
    2113             : static const JSJitInfo background_attachment_setterinfo = {
    2114             :   { (JSJitGetterOp)set_background_attachment },
    2115             :   { prototypes::id::CSS2Properties },
    2116             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2117             :   JSJitInfo::Setter,
    2118             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2119             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2120             :   false,  /* isInfallible. False in setters. */
    2121             :   false,  /* isMovable.  Not relevant for setters. */
    2122             :   false, /* isEliminatable.  Not relevant for setters. */
    2123             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2124             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2125             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2126             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2127             : };
    2128             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2129             : static_assert(0 < 1, "There is no slot for us");
    2130             : 
    2131             : static bool
    2132           0 : get_backgroundBlendMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2133             : {
    2134           0 :   binding_detail::FastErrorResult rv;
    2135           0 :   DOMString result;
    2136           0 :   self->GetBackgroundBlendMode(result, rv);
    2137           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2138           0 :     return false;
    2139             :   }
    2140           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2141           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2142           0 :     return false;
    2143             :   }
    2144           0 :   return true;
    2145             : }
    2146             : 
    2147             : static bool
    2148           0 : set_backgroundBlendMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2149             : {
    2150           0 :   binding_detail::FakeString arg0;
    2151           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2152           0 :     return false;
    2153             :   }
    2154           0 :   binding_detail::FastErrorResult rv;
    2155           0 :   self->SetBackgroundBlendMode(NonNullHelper(Constify(arg0)), rv);
    2156           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2157           0 :     return false;
    2158             :   }
    2159           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2160             : 
    2161           0 :   return true;
    2162             : }
    2163             : 
    2164             : static const JSJitInfo backgroundBlendMode_getterinfo = {
    2165             :   { (JSJitGetterOp)get_backgroundBlendMode },
    2166             :   { prototypes::id::CSS2Properties },
    2167             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2168             :   JSJitInfo::Getter,
    2169             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2170             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2171             :   false,  /* isInfallible. False in setters. */
    2172             :   false,  /* isMovable.  Not relevant for setters. */
    2173             :   false, /* isEliminatable.  Not relevant for setters. */
    2174             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2175             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2176             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2177             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2178             : };
    2179             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2180             : static_assert(0 < 1, "There is no slot for us");
    2181             : static const JSJitInfo backgroundBlendMode_setterinfo = {
    2182             :   { (JSJitGetterOp)set_backgroundBlendMode },
    2183             :   { prototypes::id::CSS2Properties },
    2184             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2185             :   JSJitInfo::Setter,
    2186             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2187             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2188             :   false,  /* isInfallible. False in setters. */
    2189             :   false,  /* isMovable.  Not relevant for setters. */
    2190             :   false, /* isEliminatable.  Not relevant for setters. */
    2191             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2192             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2193             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2194             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2195             : };
    2196             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2197             : static_assert(0 < 1, "There is no slot for us");
    2198             : 
    2199             : static bool
    2200           0 : get_background_blend_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2201             : {
    2202           0 :   binding_detail::FastErrorResult rv;
    2203           0 :   DOMString result;
    2204           0 :   self->GetBackgroundBlendMode(result, rv);
    2205           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2206           0 :     return false;
    2207             :   }
    2208           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2209           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2210           0 :     return false;
    2211             :   }
    2212           0 :   return true;
    2213             : }
    2214             : 
    2215             : static bool
    2216           0 : set_background_blend_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2217             : {
    2218           0 :   binding_detail::FakeString arg0;
    2219           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2220           0 :     return false;
    2221             :   }
    2222           0 :   binding_detail::FastErrorResult rv;
    2223           0 :   self->SetBackgroundBlendMode(NonNullHelper(Constify(arg0)), rv);
    2224           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2225           0 :     return false;
    2226             :   }
    2227           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2228             : 
    2229           0 :   return true;
    2230             : }
    2231             : 
    2232             : static const JSJitInfo background_blend_mode_getterinfo = {
    2233             :   { (JSJitGetterOp)get_background_blend_mode },
    2234             :   { prototypes::id::CSS2Properties },
    2235             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2236             :   JSJitInfo::Getter,
    2237             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2238             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2239             :   false,  /* isInfallible. False in setters. */
    2240             :   false,  /* isMovable.  Not relevant for setters. */
    2241             :   false, /* isEliminatable.  Not relevant for setters. */
    2242             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2243             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2244             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2245             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2246             : };
    2247             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2248             : static_assert(0 < 1, "There is no slot for us");
    2249             : static const JSJitInfo background_blend_mode_setterinfo = {
    2250             :   { (JSJitGetterOp)set_background_blend_mode },
    2251             :   { prototypes::id::CSS2Properties },
    2252             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2253             :   JSJitInfo::Setter,
    2254             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2255             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2256             :   false,  /* isInfallible. False in setters. */
    2257             :   false,  /* isMovable.  Not relevant for setters. */
    2258             :   false, /* isEliminatable.  Not relevant for setters. */
    2259             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2260             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2261             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2262             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2263             : };
    2264             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2265             : static_assert(0 < 1, "There is no slot for us");
    2266             : 
    2267             : static bool
    2268           0 : get_backgroundClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2269             : {
    2270           0 :   binding_detail::FastErrorResult rv;
    2271           0 :   DOMString result;
    2272           0 :   self->GetBackgroundClip(result, rv);
    2273           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2274           0 :     return false;
    2275             :   }
    2276           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2277           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2278           0 :     return false;
    2279             :   }
    2280           0 :   return true;
    2281             : }
    2282             : 
    2283             : static bool
    2284           0 : set_backgroundClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2285             : {
    2286           0 :   binding_detail::FakeString arg0;
    2287           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2288           0 :     return false;
    2289             :   }
    2290           0 :   binding_detail::FastErrorResult rv;
    2291           0 :   self->SetBackgroundClip(NonNullHelper(Constify(arg0)), rv);
    2292           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2293           0 :     return false;
    2294             :   }
    2295           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2296             : 
    2297           0 :   return true;
    2298             : }
    2299             : 
    2300             : static const JSJitInfo backgroundClip_getterinfo = {
    2301             :   { (JSJitGetterOp)get_backgroundClip },
    2302             :   { prototypes::id::CSS2Properties },
    2303             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2304             :   JSJitInfo::Getter,
    2305             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2306             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2307             :   false,  /* isInfallible. False in setters. */
    2308             :   false,  /* isMovable.  Not relevant for setters. */
    2309             :   false, /* isEliminatable.  Not relevant for setters. */
    2310             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2311             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2312             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2313             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2314             : };
    2315             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2316             : static_assert(0 < 1, "There is no slot for us");
    2317             : static const JSJitInfo backgroundClip_setterinfo = {
    2318             :   { (JSJitGetterOp)set_backgroundClip },
    2319             :   { prototypes::id::CSS2Properties },
    2320             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2321             :   JSJitInfo::Setter,
    2322             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2323             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2324             :   false,  /* isInfallible. False in setters. */
    2325             :   false,  /* isMovable.  Not relevant for setters. */
    2326             :   false, /* isEliminatable.  Not relevant for setters. */
    2327             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2328             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2329             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2330             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2331             : };
    2332             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2333             : static_assert(0 < 1, "There is no slot for us");
    2334             : 
    2335             : static bool
    2336           0 : get_background_clip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2337             : {
    2338           0 :   binding_detail::FastErrorResult rv;
    2339           0 :   DOMString result;
    2340           0 :   self->GetBackgroundClip(result, rv);
    2341           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2342           0 :     return false;
    2343             :   }
    2344           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2345           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2346           0 :     return false;
    2347             :   }
    2348           0 :   return true;
    2349             : }
    2350             : 
    2351             : static bool
    2352           0 : set_background_clip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2353             : {
    2354           0 :   binding_detail::FakeString arg0;
    2355           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2356           0 :     return false;
    2357             :   }
    2358           0 :   binding_detail::FastErrorResult rv;
    2359           0 :   self->SetBackgroundClip(NonNullHelper(Constify(arg0)), rv);
    2360           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2361           0 :     return false;
    2362             :   }
    2363           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2364             : 
    2365           0 :   return true;
    2366             : }
    2367             : 
    2368             : static const JSJitInfo background_clip_getterinfo = {
    2369             :   { (JSJitGetterOp)get_background_clip },
    2370             :   { prototypes::id::CSS2Properties },
    2371             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2372             :   JSJitInfo::Getter,
    2373             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2374             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2375             :   false,  /* isInfallible. False in setters. */
    2376             :   false,  /* isMovable.  Not relevant for setters. */
    2377             :   false, /* isEliminatable.  Not relevant for setters. */
    2378             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2379             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2380             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2381             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2382             : };
    2383             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2384             : static_assert(0 < 1, "There is no slot for us");
    2385             : static const JSJitInfo background_clip_setterinfo = {
    2386             :   { (JSJitGetterOp)set_background_clip },
    2387             :   { prototypes::id::CSS2Properties },
    2388             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2389             :   JSJitInfo::Setter,
    2390             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2391             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2392             :   false,  /* isInfallible. False in setters. */
    2393             :   false,  /* isMovable.  Not relevant for setters. */
    2394             :   false, /* isEliminatable.  Not relevant for setters. */
    2395             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2396             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2397             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2398             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2399             : };
    2400             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2401             : static_assert(0 < 1, "There is no slot for us");
    2402             : 
    2403             : static bool
    2404           0 : get_backgroundColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2405             : {
    2406           0 :   binding_detail::FastErrorResult rv;
    2407           0 :   DOMString result;
    2408           0 :   self->GetBackgroundColor(result, rv);
    2409           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2410           0 :     return false;
    2411             :   }
    2412           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2413           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2414           0 :     return false;
    2415             :   }
    2416           0 :   return true;
    2417             : }
    2418             : 
    2419             : static bool
    2420           1 : set_backgroundColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2421             : {
    2422           2 :   binding_detail::FakeString arg0;
    2423           1 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2424           0 :     return false;
    2425             :   }
    2426           2 :   binding_detail::FastErrorResult rv;
    2427           1 :   self->SetBackgroundColor(NonNullHelper(Constify(arg0)), rv);
    2428           1 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2429           0 :     return false;
    2430             :   }
    2431           1 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2432             : 
    2433           1 :   return true;
    2434             : }
    2435             : 
    2436             : static const JSJitInfo backgroundColor_getterinfo = {
    2437             :   { (JSJitGetterOp)get_backgroundColor },
    2438             :   { prototypes::id::CSS2Properties },
    2439             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2440             :   JSJitInfo::Getter,
    2441             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2442             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2443             :   false,  /* isInfallible. False in setters. */
    2444             :   false,  /* isMovable.  Not relevant for setters. */
    2445             :   false, /* isEliminatable.  Not relevant for setters. */
    2446             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2447             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2448             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2449             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2450             : };
    2451             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2452             : static_assert(0 < 1, "There is no slot for us");
    2453             : static const JSJitInfo backgroundColor_setterinfo = {
    2454             :   { (JSJitGetterOp)set_backgroundColor },
    2455             :   { prototypes::id::CSS2Properties },
    2456             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2457             :   JSJitInfo::Setter,
    2458             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2459             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2460             :   false,  /* isInfallible. False in setters. */
    2461             :   false,  /* isMovable.  Not relevant for setters. */
    2462             :   false, /* isEliminatable.  Not relevant for setters. */
    2463             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2464             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2465             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2466             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2467             : };
    2468             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2469             : static_assert(0 < 1, "There is no slot for us");
    2470             : 
    2471             : static bool
    2472           0 : get_background_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2473             : {
    2474           0 :   binding_detail::FastErrorResult rv;
    2475           0 :   DOMString result;
    2476           0 :   self->GetBackgroundColor(result, rv);
    2477           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2478           0 :     return false;
    2479             :   }
    2480           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2481           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2482           0 :     return false;
    2483             :   }
    2484           0 :   return true;
    2485             : }
    2486             : 
    2487             : static bool
    2488           0 : set_background_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2489             : {
    2490           0 :   binding_detail::FakeString arg0;
    2491           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2492           0 :     return false;
    2493             :   }
    2494           0 :   binding_detail::FastErrorResult rv;
    2495           0 :   self->SetBackgroundColor(NonNullHelper(Constify(arg0)), rv);
    2496           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2497           0 :     return false;
    2498             :   }
    2499           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2500             : 
    2501           0 :   return true;
    2502             : }
    2503             : 
    2504             : static const JSJitInfo background_color_getterinfo = {
    2505             :   { (JSJitGetterOp)get_background_color },
    2506             :   { prototypes::id::CSS2Properties },
    2507             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2508             :   JSJitInfo::Getter,
    2509             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2510             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2511             :   false,  /* isInfallible. False in setters. */
    2512             :   false,  /* isMovable.  Not relevant for setters. */
    2513             :   false, /* isEliminatable.  Not relevant for setters. */
    2514             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2515             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2516             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2517             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2518             : };
    2519             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2520             : static_assert(0 < 1, "There is no slot for us");
    2521             : static const JSJitInfo background_color_setterinfo = {
    2522             :   { (JSJitGetterOp)set_background_color },
    2523             :   { prototypes::id::CSS2Properties },
    2524             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2525             :   JSJitInfo::Setter,
    2526             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2527             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2528             :   false,  /* isInfallible. False in setters. */
    2529             :   false,  /* isMovable.  Not relevant for setters. */
    2530             :   false, /* isEliminatable.  Not relevant for setters. */
    2531             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2532             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2533             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2534             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2535             : };
    2536             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2537             : static_assert(0 < 1, "There is no slot for us");
    2538             : 
    2539             : static bool
    2540           0 : get_backgroundImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2541             : {
    2542           0 :   binding_detail::FastErrorResult rv;
    2543           0 :   DOMString result;
    2544           0 :   self->GetBackgroundImage(result, rv);
    2545           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2546           0 :     return false;
    2547             :   }
    2548           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2549           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2550           0 :     return false;
    2551             :   }
    2552           0 :   return true;
    2553             : }
    2554             : 
    2555             : static bool
    2556           0 : set_backgroundImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2557             : {
    2558           0 :   binding_detail::FakeString arg0;
    2559           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2560           0 :     return false;
    2561             :   }
    2562           0 :   binding_detail::FastErrorResult rv;
    2563           0 :   self->SetBackgroundImage(NonNullHelper(Constify(arg0)), rv);
    2564           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2565           0 :     return false;
    2566             :   }
    2567           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2568             : 
    2569           0 :   return true;
    2570             : }
    2571             : 
    2572             : static const JSJitInfo backgroundImage_getterinfo = {
    2573             :   { (JSJitGetterOp)get_backgroundImage },
    2574             :   { prototypes::id::CSS2Properties },
    2575             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2576             :   JSJitInfo::Getter,
    2577             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2578             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2579             :   false,  /* isInfallible. False in setters. */
    2580             :   false,  /* isMovable.  Not relevant for setters. */
    2581             :   false, /* isEliminatable.  Not relevant for setters. */
    2582             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2583             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2584             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2585             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2586             : };
    2587             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2588             : static_assert(0 < 1, "There is no slot for us");
    2589             : static const JSJitInfo backgroundImage_setterinfo = {
    2590             :   { (JSJitGetterOp)set_backgroundImage },
    2591             :   { prototypes::id::CSS2Properties },
    2592             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2593             :   JSJitInfo::Setter,
    2594             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2595             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2596             :   false,  /* isInfallible. False in setters. */
    2597             :   false,  /* isMovable.  Not relevant for setters. */
    2598             :   false, /* isEliminatable.  Not relevant for setters. */
    2599             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2600             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2601             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2602             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2603             : };
    2604             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2605             : static_assert(0 < 1, "There is no slot for us");
    2606             : 
    2607             : static bool
    2608           0 : get_background_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2609             : {
    2610           0 :   binding_detail::FastErrorResult rv;
    2611           0 :   DOMString result;
    2612           0 :   self->GetBackgroundImage(result, rv);
    2613           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2614           0 :     return false;
    2615             :   }
    2616           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2617           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2618           0 :     return false;
    2619             :   }
    2620           0 :   return true;
    2621             : }
    2622             : 
    2623             : static bool
    2624           0 : set_background_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2625             : {
    2626           0 :   binding_detail::FakeString arg0;
    2627           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2628           0 :     return false;
    2629             :   }
    2630           0 :   binding_detail::FastErrorResult rv;
    2631           0 :   self->SetBackgroundImage(NonNullHelper(Constify(arg0)), rv);
    2632           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2633           0 :     return false;
    2634             :   }
    2635           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2636             : 
    2637           0 :   return true;
    2638             : }
    2639             : 
    2640             : static const JSJitInfo background_image_getterinfo = {
    2641             :   { (JSJitGetterOp)get_background_image },
    2642             :   { prototypes::id::CSS2Properties },
    2643             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2644             :   JSJitInfo::Getter,
    2645             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2646             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2647             :   false,  /* isInfallible. False in setters. */
    2648             :   false,  /* isMovable.  Not relevant for setters. */
    2649             :   false, /* isEliminatable.  Not relevant for setters. */
    2650             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2651             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2652             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2653             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2654             : };
    2655             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2656             : static_assert(0 < 1, "There is no slot for us");
    2657             : static const JSJitInfo background_image_setterinfo = {
    2658             :   { (JSJitGetterOp)set_background_image },
    2659             :   { prototypes::id::CSS2Properties },
    2660             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2661             :   JSJitInfo::Setter,
    2662             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2663             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2664             :   false,  /* isInfallible. False in setters. */
    2665             :   false,  /* isMovable.  Not relevant for setters. */
    2666             :   false, /* isEliminatable.  Not relevant for setters. */
    2667             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2668             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2669             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2670             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2671             : };
    2672             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2673             : static_assert(0 < 1, "There is no slot for us");
    2674             : 
    2675             : static bool
    2676           0 : get_backgroundOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2677             : {
    2678           0 :   binding_detail::FastErrorResult rv;
    2679           0 :   DOMString result;
    2680           0 :   self->GetBackgroundOrigin(result, rv);
    2681           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2682           0 :     return false;
    2683             :   }
    2684           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2685           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2686           0 :     return false;
    2687             :   }
    2688           0 :   return true;
    2689             : }
    2690             : 
    2691             : static bool
    2692           0 : set_backgroundOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2693             : {
    2694           0 :   binding_detail::FakeString arg0;
    2695           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2696           0 :     return false;
    2697             :   }
    2698           0 :   binding_detail::FastErrorResult rv;
    2699           0 :   self->SetBackgroundOrigin(NonNullHelper(Constify(arg0)), rv);
    2700           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2701           0 :     return false;
    2702             :   }
    2703           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2704             : 
    2705           0 :   return true;
    2706             : }
    2707             : 
    2708             : static const JSJitInfo backgroundOrigin_getterinfo = {
    2709             :   { (JSJitGetterOp)get_backgroundOrigin },
    2710             :   { prototypes::id::CSS2Properties },
    2711             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2712             :   JSJitInfo::Getter,
    2713             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2714             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2715             :   false,  /* isInfallible. False in setters. */
    2716             :   false,  /* isMovable.  Not relevant for setters. */
    2717             :   false, /* isEliminatable.  Not relevant for setters. */
    2718             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2719             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2720             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2721             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2722             : };
    2723             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2724             : static_assert(0 < 1, "There is no slot for us");
    2725             : static const JSJitInfo backgroundOrigin_setterinfo = {
    2726             :   { (JSJitGetterOp)set_backgroundOrigin },
    2727             :   { prototypes::id::CSS2Properties },
    2728             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2729             :   JSJitInfo::Setter,
    2730             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2731             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2732             :   false,  /* isInfallible. False in setters. */
    2733             :   false,  /* isMovable.  Not relevant for setters. */
    2734             :   false, /* isEliminatable.  Not relevant for setters. */
    2735             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2736             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2737             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2738             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2739             : };
    2740             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2741             : static_assert(0 < 1, "There is no slot for us");
    2742             : 
    2743             : static bool
    2744           0 : get_background_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2745             : {
    2746           0 :   binding_detail::FastErrorResult rv;
    2747           0 :   DOMString result;
    2748           0 :   self->GetBackgroundOrigin(result, rv);
    2749           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2750           0 :     return false;
    2751             :   }
    2752           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2753           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2754           0 :     return false;
    2755             :   }
    2756           0 :   return true;
    2757             : }
    2758             : 
    2759             : static bool
    2760           0 : set_background_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2761             : {
    2762           0 :   binding_detail::FakeString arg0;
    2763           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2764           0 :     return false;
    2765             :   }
    2766           0 :   binding_detail::FastErrorResult rv;
    2767           0 :   self->SetBackgroundOrigin(NonNullHelper(Constify(arg0)), rv);
    2768           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2769           0 :     return false;
    2770             :   }
    2771           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2772             : 
    2773           0 :   return true;
    2774             : }
    2775             : 
    2776             : static const JSJitInfo background_origin_getterinfo = {
    2777             :   { (JSJitGetterOp)get_background_origin },
    2778             :   { prototypes::id::CSS2Properties },
    2779             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2780             :   JSJitInfo::Getter,
    2781             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2782             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2783             :   false,  /* isInfallible. False in setters. */
    2784             :   false,  /* isMovable.  Not relevant for setters. */
    2785             :   false, /* isEliminatable.  Not relevant for setters. */
    2786             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2787             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2788             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2789             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2790             : };
    2791             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2792             : static_assert(0 < 1, "There is no slot for us");
    2793             : static const JSJitInfo background_origin_setterinfo = {
    2794             :   { (JSJitGetterOp)set_background_origin },
    2795             :   { prototypes::id::CSS2Properties },
    2796             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2797             :   JSJitInfo::Setter,
    2798             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2799             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2800             :   false,  /* isInfallible. False in setters. */
    2801             :   false,  /* isMovable.  Not relevant for setters. */
    2802             :   false, /* isEliminatable.  Not relevant for setters. */
    2803             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2804             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2805             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2806             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2807             : };
    2808             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2809             : static_assert(0 < 1, "There is no slot for us");
    2810             : 
    2811             : static bool
    2812           0 : get_backgroundPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2813             : {
    2814           0 :   binding_detail::FastErrorResult rv;
    2815           0 :   DOMString result;
    2816           0 :   self->GetBackgroundPosition(result, rv);
    2817           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2818           0 :     return false;
    2819             :   }
    2820           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2821           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2822           0 :     return false;
    2823             :   }
    2824           0 :   return true;
    2825             : }
    2826             : 
    2827             : static bool
    2828           0 : set_backgroundPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2829             : {
    2830           0 :   binding_detail::FakeString arg0;
    2831           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2832           0 :     return false;
    2833             :   }
    2834           0 :   binding_detail::FastErrorResult rv;
    2835           0 :   self->SetBackgroundPosition(NonNullHelper(Constify(arg0)), rv);
    2836           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2837           0 :     return false;
    2838             :   }
    2839           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2840             : 
    2841           0 :   return true;
    2842             : }
    2843             : 
    2844             : static const JSJitInfo backgroundPosition_getterinfo = {
    2845             :   { (JSJitGetterOp)get_backgroundPosition },
    2846             :   { prototypes::id::CSS2Properties },
    2847             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2848             :   JSJitInfo::Getter,
    2849             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2850             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2851             :   false,  /* isInfallible. False in setters. */
    2852             :   false,  /* isMovable.  Not relevant for setters. */
    2853             :   false, /* isEliminatable.  Not relevant for setters. */
    2854             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2855             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2856             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2857             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2858             : };
    2859             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2860             : static_assert(0 < 1, "There is no slot for us");
    2861             : static const JSJitInfo backgroundPosition_setterinfo = {
    2862             :   { (JSJitGetterOp)set_backgroundPosition },
    2863             :   { prototypes::id::CSS2Properties },
    2864             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2865             :   JSJitInfo::Setter,
    2866             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2867             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2868             :   false,  /* isInfallible. False in setters. */
    2869             :   false,  /* isMovable.  Not relevant for setters. */
    2870             :   false, /* isEliminatable.  Not relevant for setters. */
    2871             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2872             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2873             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2874             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2875             : };
    2876             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2877             : static_assert(0 < 1, "There is no slot for us");
    2878             : 
    2879             : static bool
    2880           0 : get_background_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2881             : {
    2882           0 :   binding_detail::FastErrorResult rv;
    2883           0 :   DOMString result;
    2884           0 :   self->GetBackgroundPosition(result, rv);
    2885           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2886           0 :     return false;
    2887             :   }
    2888           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2889           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2890           0 :     return false;
    2891             :   }
    2892           0 :   return true;
    2893             : }
    2894             : 
    2895             : static bool
    2896           0 : set_background_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2897             : {
    2898           0 :   binding_detail::FakeString arg0;
    2899           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2900           0 :     return false;
    2901             :   }
    2902           0 :   binding_detail::FastErrorResult rv;
    2903           0 :   self->SetBackgroundPosition(NonNullHelper(Constify(arg0)), rv);
    2904           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2905           0 :     return false;
    2906             :   }
    2907           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2908             : 
    2909           0 :   return true;
    2910             : }
    2911             : 
    2912             : static const JSJitInfo background_position_getterinfo = {
    2913             :   { (JSJitGetterOp)get_background_position },
    2914             :   { prototypes::id::CSS2Properties },
    2915             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2916             :   JSJitInfo::Getter,
    2917             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2918             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2919             :   false,  /* isInfallible. False in setters. */
    2920             :   false,  /* isMovable.  Not relevant for setters. */
    2921             :   false, /* isEliminatable.  Not relevant for setters. */
    2922             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2923             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2924             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2925             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2926             : };
    2927             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2928             : static_assert(0 < 1, "There is no slot for us");
    2929             : static const JSJitInfo background_position_setterinfo = {
    2930             :   { (JSJitGetterOp)set_background_position },
    2931             :   { prototypes::id::CSS2Properties },
    2932             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2933             :   JSJitInfo::Setter,
    2934             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2935             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    2936             :   false,  /* isInfallible. False in setters. */
    2937             :   false,  /* isMovable.  Not relevant for setters. */
    2938             :   false, /* isEliminatable.  Not relevant for setters. */
    2939             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2940             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2941             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2942             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2943             : };
    2944             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2945             : static_assert(0 < 1, "There is no slot for us");
    2946             : 
    2947             : static bool
    2948           0 : get_backgroundPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    2949             : {
    2950           0 :   binding_detail::FastErrorResult rv;
    2951           0 :   DOMString result;
    2952           0 :   self->GetBackgroundPositionX(result, rv);
    2953           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2954           0 :     return false;
    2955             :   }
    2956           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2957           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    2958           0 :     return false;
    2959             :   }
    2960           0 :   return true;
    2961             : }
    2962             : 
    2963             : static bool
    2964           0 : set_backgroundPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    2965             : {
    2966           0 :   binding_detail::FakeString arg0;
    2967           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    2968           0 :     return false;
    2969             :   }
    2970           0 :   binding_detail::FastErrorResult rv;
    2971           0 :   self->SetBackgroundPositionX(NonNullHelper(Constify(arg0)), rv);
    2972           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    2973           0 :     return false;
    2974             :   }
    2975           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    2976             : 
    2977           0 :   return true;
    2978             : }
    2979             : 
    2980             : static const JSJitInfo backgroundPositionX_getterinfo = {
    2981             :   { (JSJitGetterOp)get_backgroundPositionX },
    2982             :   { prototypes::id::CSS2Properties },
    2983             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    2984             :   JSJitInfo::Getter,
    2985             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    2986             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    2987             :   false,  /* isInfallible. False in setters. */
    2988             :   false,  /* isMovable.  Not relevant for setters. */
    2989             :   false, /* isEliminatable.  Not relevant for setters. */
    2990             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    2991             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    2992             :   false,  /* isTypedMethod.  Only relevant for methods. */
    2993             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    2994             : };
    2995             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    2996             : static_assert(0 < 1, "There is no slot for us");
    2997             : static const JSJitInfo backgroundPositionX_setterinfo = {
    2998             :   { (JSJitGetterOp)set_backgroundPositionX },
    2999             :   { prototypes::id::CSS2Properties },
    3000             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3001             :   JSJitInfo::Setter,
    3002             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3003             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3004             :   false,  /* isInfallible. False in setters. */
    3005             :   false,  /* isMovable.  Not relevant for setters. */
    3006             :   false, /* isEliminatable.  Not relevant for setters. */
    3007             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3008             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3009             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3010             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3011             : };
    3012             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3013             : static_assert(0 < 1, "There is no slot for us");
    3014             : 
    3015             : static bool
    3016           0 : get_background_position_x(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3017             : {
    3018           0 :   binding_detail::FastErrorResult rv;
    3019           0 :   DOMString result;
    3020           0 :   self->GetBackgroundPositionX(result, rv);
    3021           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3022           0 :     return false;
    3023             :   }
    3024           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3025           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3026           0 :     return false;
    3027             :   }
    3028           0 :   return true;
    3029             : }
    3030             : 
    3031             : static bool
    3032           0 : set_background_position_x(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3033             : {
    3034           0 :   binding_detail::FakeString arg0;
    3035           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3036           0 :     return false;
    3037             :   }
    3038           0 :   binding_detail::FastErrorResult rv;
    3039           0 :   self->SetBackgroundPositionX(NonNullHelper(Constify(arg0)), rv);
    3040           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3041           0 :     return false;
    3042             :   }
    3043           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3044             : 
    3045           0 :   return true;
    3046             : }
    3047             : 
    3048             : static const JSJitInfo background_position_x_getterinfo = {
    3049             :   { (JSJitGetterOp)get_background_position_x },
    3050             :   { prototypes::id::CSS2Properties },
    3051             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3052             :   JSJitInfo::Getter,
    3053             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3054             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3055             :   false,  /* isInfallible. False in setters. */
    3056             :   false,  /* isMovable.  Not relevant for setters. */
    3057             :   false, /* isEliminatable.  Not relevant for setters. */
    3058             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3059             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3060             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3061             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3062             : };
    3063             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3064             : static_assert(0 < 1, "There is no slot for us");
    3065             : static const JSJitInfo background_position_x_setterinfo = {
    3066             :   { (JSJitGetterOp)set_background_position_x },
    3067             :   { prototypes::id::CSS2Properties },
    3068             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3069             :   JSJitInfo::Setter,
    3070             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3071             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3072             :   false,  /* isInfallible. False in setters. */
    3073             :   false,  /* isMovable.  Not relevant for setters. */
    3074             :   false, /* isEliminatable.  Not relevant for setters. */
    3075             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3076             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3077             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3078             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3079             : };
    3080             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3081             : static_assert(0 < 1, "There is no slot for us");
    3082             : 
    3083             : static bool
    3084           0 : get_backgroundPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3085             : {
    3086           0 :   binding_detail::FastErrorResult rv;
    3087           0 :   DOMString result;
    3088           0 :   self->GetBackgroundPositionY(result, rv);
    3089           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3090           0 :     return false;
    3091             :   }
    3092           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3093           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3094           0 :     return false;
    3095             :   }
    3096           0 :   return true;
    3097             : }
    3098             : 
    3099             : static bool
    3100           0 : set_backgroundPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3101             : {
    3102           0 :   binding_detail::FakeString arg0;
    3103           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3104           0 :     return false;
    3105             :   }
    3106           0 :   binding_detail::FastErrorResult rv;
    3107           0 :   self->SetBackgroundPositionY(NonNullHelper(Constify(arg0)), rv);
    3108           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3109           0 :     return false;
    3110             :   }
    3111           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3112             : 
    3113           0 :   return true;
    3114             : }
    3115             : 
    3116             : static const JSJitInfo backgroundPositionY_getterinfo = {
    3117             :   { (JSJitGetterOp)get_backgroundPositionY },
    3118             :   { prototypes::id::CSS2Properties },
    3119             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3120             :   JSJitInfo::Getter,
    3121             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3122             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3123             :   false,  /* isInfallible. False in setters. */
    3124             :   false,  /* isMovable.  Not relevant for setters. */
    3125             :   false, /* isEliminatable.  Not relevant for setters. */
    3126             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3127             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3128             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3129             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3130             : };
    3131             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3132             : static_assert(0 < 1, "There is no slot for us");
    3133             : static const JSJitInfo backgroundPositionY_setterinfo = {
    3134             :   { (JSJitGetterOp)set_backgroundPositionY },
    3135             :   { prototypes::id::CSS2Properties },
    3136             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3137             :   JSJitInfo::Setter,
    3138             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3139             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3140             :   false,  /* isInfallible. False in setters. */
    3141             :   false,  /* isMovable.  Not relevant for setters. */
    3142             :   false, /* isEliminatable.  Not relevant for setters. */
    3143             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3144             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3145             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3146             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3147             : };
    3148             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3149             : static_assert(0 < 1, "There is no slot for us");
    3150             : 
    3151             : static bool
    3152           0 : get_background_position_y(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3153             : {
    3154           0 :   binding_detail::FastErrorResult rv;
    3155           0 :   DOMString result;
    3156           0 :   self->GetBackgroundPositionY(result, rv);
    3157           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3158           0 :     return false;
    3159             :   }
    3160           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3161           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3162           0 :     return false;
    3163             :   }
    3164           0 :   return true;
    3165             : }
    3166             : 
    3167             : static bool
    3168           0 : set_background_position_y(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3169             : {
    3170           0 :   binding_detail::FakeString arg0;
    3171           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3172           0 :     return false;
    3173             :   }
    3174           0 :   binding_detail::FastErrorResult rv;
    3175           0 :   self->SetBackgroundPositionY(NonNullHelper(Constify(arg0)), rv);
    3176           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3177           0 :     return false;
    3178             :   }
    3179           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3180             : 
    3181           0 :   return true;
    3182             : }
    3183             : 
    3184             : static const JSJitInfo background_position_y_getterinfo = {
    3185             :   { (JSJitGetterOp)get_background_position_y },
    3186             :   { prototypes::id::CSS2Properties },
    3187             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3188             :   JSJitInfo::Getter,
    3189             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3190             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3191             :   false,  /* isInfallible. False in setters. */
    3192             :   false,  /* isMovable.  Not relevant for setters. */
    3193             :   false, /* isEliminatable.  Not relevant for setters. */
    3194             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3195             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3196             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3197             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3198             : };
    3199             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3200             : static_assert(0 < 1, "There is no slot for us");
    3201             : static const JSJitInfo background_position_y_setterinfo = {
    3202             :   { (JSJitGetterOp)set_background_position_y },
    3203             :   { prototypes::id::CSS2Properties },
    3204             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3205             :   JSJitInfo::Setter,
    3206             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3207             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3208             :   false,  /* isInfallible. False in setters. */
    3209             :   false,  /* isMovable.  Not relevant for setters. */
    3210             :   false, /* isEliminatable.  Not relevant for setters. */
    3211             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3212             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3213             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3214             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3215             : };
    3216             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3217             : static_assert(0 < 1, "There is no slot for us");
    3218             : 
    3219             : static bool
    3220           0 : get_backgroundRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3221             : {
    3222           0 :   binding_detail::FastErrorResult rv;
    3223           0 :   DOMString result;
    3224           0 :   self->GetBackgroundRepeat(result, rv);
    3225           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3226           0 :     return false;
    3227             :   }
    3228           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3229           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3230           0 :     return false;
    3231             :   }
    3232           0 :   return true;
    3233             : }
    3234             : 
    3235             : static bool
    3236           0 : set_backgroundRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3237             : {
    3238           0 :   binding_detail::FakeString arg0;
    3239           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3240           0 :     return false;
    3241             :   }
    3242           0 :   binding_detail::FastErrorResult rv;
    3243           0 :   self->SetBackgroundRepeat(NonNullHelper(Constify(arg0)), rv);
    3244           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3245           0 :     return false;
    3246             :   }
    3247           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3248             : 
    3249           0 :   return true;
    3250             : }
    3251             : 
    3252             : static const JSJitInfo backgroundRepeat_getterinfo = {
    3253             :   { (JSJitGetterOp)get_backgroundRepeat },
    3254             :   { prototypes::id::CSS2Properties },
    3255             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3256             :   JSJitInfo::Getter,
    3257             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3258             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3259             :   false,  /* isInfallible. False in setters. */
    3260             :   false,  /* isMovable.  Not relevant for setters. */
    3261             :   false, /* isEliminatable.  Not relevant for setters. */
    3262             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3263             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3264             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3265             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3266             : };
    3267             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3268             : static_assert(0 < 1, "There is no slot for us");
    3269             : static const JSJitInfo backgroundRepeat_setterinfo = {
    3270             :   { (JSJitGetterOp)set_backgroundRepeat },
    3271             :   { prototypes::id::CSS2Properties },
    3272             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3273             :   JSJitInfo::Setter,
    3274             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3275             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3276             :   false,  /* isInfallible. False in setters. */
    3277             :   false,  /* isMovable.  Not relevant for setters. */
    3278             :   false, /* isEliminatable.  Not relevant for setters. */
    3279             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3280             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3281             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3282             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3283             : };
    3284             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3285             : static_assert(0 < 1, "There is no slot for us");
    3286             : 
    3287             : static bool
    3288           0 : get_background_repeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3289             : {
    3290           0 :   binding_detail::FastErrorResult rv;
    3291           0 :   DOMString result;
    3292           0 :   self->GetBackgroundRepeat(result, rv);
    3293           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3294           0 :     return false;
    3295             :   }
    3296           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3297           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3298           0 :     return false;
    3299             :   }
    3300           0 :   return true;
    3301             : }
    3302             : 
    3303             : static bool
    3304           0 : set_background_repeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3305             : {
    3306           0 :   binding_detail::FakeString arg0;
    3307           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3308           0 :     return false;
    3309             :   }
    3310           0 :   binding_detail::FastErrorResult rv;
    3311           0 :   self->SetBackgroundRepeat(NonNullHelper(Constify(arg0)), rv);
    3312           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3313           0 :     return false;
    3314             :   }
    3315           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3316             : 
    3317           0 :   return true;
    3318             : }
    3319             : 
    3320             : static const JSJitInfo background_repeat_getterinfo = {
    3321             :   { (JSJitGetterOp)get_background_repeat },
    3322             :   { prototypes::id::CSS2Properties },
    3323             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3324             :   JSJitInfo::Getter,
    3325             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3326             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3327             :   false,  /* isInfallible. False in setters. */
    3328             :   false,  /* isMovable.  Not relevant for setters. */
    3329             :   false, /* isEliminatable.  Not relevant for setters. */
    3330             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3331             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3332             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3333             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3334             : };
    3335             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3336             : static_assert(0 < 1, "There is no slot for us");
    3337             : static const JSJitInfo background_repeat_setterinfo = {
    3338             :   { (JSJitGetterOp)set_background_repeat },
    3339             :   { prototypes::id::CSS2Properties },
    3340             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3341             :   JSJitInfo::Setter,
    3342             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3343             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3344             :   false,  /* isInfallible. False in setters. */
    3345             :   false,  /* isMovable.  Not relevant for setters. */
    3346             :   false, /* isEliminatable.  Not relevant for setters. */
    3347             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3348             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3349             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3350             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3351             : };
    3352             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3353             : static_assert(0 < 1, "There is no slot for us");
    3354             : 
    3355             : static bool
    3356           0 : get_backgroundSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3357             : {
    3358           0 :   binding_detail::FastErrorResult rv;
    3359           0 :   DOMString result;
    3360           0 :   self->GetBackgroundSize(result, rv);
    3361           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3362           0 :     return false;
    3363             :   }
    3364           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3365           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3366           0 :     return false;
    3367             :   }
    3368           0 :   return true;
    3369             : }
    3370             : 
    3371             : static bool
    3372           0 : set_backgroundSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3373             : {
    3374           0 :   binding_detail::FakeString arg0;
    3375           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3376           0 :     return false;
    3377             :   }
    3378           0 :   binding_detail::FastErrorResult rv;
    3379           0 :   self->SetBackgroundSize(NonNullHelper(Constify(arg0)), rv);
    3380           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3381           0 :     return false;
    3382             :   }
    3383           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3384             : 
    3385           0 :   return true;
    3386             : }
    3387             : 
    3388             : static const JSJitInfo backgroundSize_getterinfo = {
    3389             :   { (JSJitGetterOp)get_backgroundSize },
    3390             :   { prototypes::id::CSS2Properties },
    3391             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3392             :   JSJitInfo::Getter,
    3393             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3394             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3395             :   false,  /* isInfallible. False in setters. */
    3396             :   false,  /* isMovable.  Not relevant for setters. */
    3397             :   false, /* isEliminatable.  Not relevant for setters. */
    3398             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3399             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3400             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3401             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3402             : };
    3403             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3404             : static_assert(0 < 1, "There is no slot for us");
    3405             : static const JSJitInfo backgroundSize_setterinfo = {
    3406             :   { (JSJitGetterOp)set_backgroundSize },
    3407             :   { prototypes::id::CSS2Properties },
    3408             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3409             :   JSJitInfo::Setter,
    3410             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3411             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3412             :   false,  /* isInfallible. False in setters. */
    3413             :   false,  /* isMovable.  Not relevant for setters. */
    3414             :   false, /* isEliminatable.  Not relevant for setters. */
    3415             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3416             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3417             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3418             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3419             : };
    3420             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3421             : static_assert(0 < 1, "There is no slot for us");
    3422             : 
    3423             : static bool
    3424           0 : get_background_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3425             : {
    3426           0 :   binding_detail::FastErrorResult rv;
    3427           0 :   DOMString result;
    3428           0 :   self->GetBackgroundSize(result, rv);
    3429           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3430           0 :     return false;
    3431             :   }
    3432           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3433           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3434           0 :     return false;
    3435             :   }
    3436           0 :   return true;
    3437             : }
    3438             : 
    3439             : static bool
    3440           0 : set_background_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3441             : {
    3442           0 :   binding_detail::FakeString arg0;
    3443           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3444           0 :     return false;
    3445             :   }
    3446           0 :   binding_detail::FastErrorResult rv;
    3447           0 :   self->SetBackgroundSize(NonNullHelper(Constify(arg0)), rv);
    3448           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3449           0 :     return false;
    3450             :   }
    3451           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3452             : 
    3453           0 :   return true;
    3454             : }
    3455             : 
    3456             : static const JSJitInfo background_size_getterinfo = {
    3457             :   { (JSJitGetterOp)get_background_size },
    3458             :   { prototypes::id::CSS2Properties },
    3459             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3460             :   JSJitInfo::Getter,
    3461             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3462             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3463             :   false,  /* isInfallible. False in setters. */
    3464             :   false,  /* isMovable.  Not relevant for setters. */
    3465             :   false, /* isEliminatable.  Not relevant for setters. */
    3466             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3467             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3468             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3469             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3470             : };
    3471             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3472             : static_assert(0 < 1, "There is no slot for us");
    3473             : static const JSJitInfo background_size_setterinfo = {
    3474             :   { (JSJitGetterOp)set_background_size },
    3475             :   { prototypes::id::CSS2Properties },
    3476             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3477             :   JSJitInfo::Setter,
    3478             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3479             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3480             :   false,  /* isInfallible. False in setters. */
    3481             :   false,  /* isMovable.  Not relevant for setters. */
    3482             :   false, /* isEliminatable.  Not relevant for setters. */
    3483             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3484             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3485             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3486             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3487             : };
    3488             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3489             : static_assert(0 < 1, "There is no slot for us");
    3490             : 
    3491             : static bool
    3492           0 : get_MozBinding(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3493             : {
    3494           0 :   binding_detail::FastErrorResult rv;
    3495           0 :   DOMString result;
    3496           0 :   self->GetMozBinding(result, rv);
    3497           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3498           0 :     return false;
    3499             :   }
    3500           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3501           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3502           0 :     return false;
    3503             :   }
    3504           0 :   return true;
    3505             : }
    3506             : 
    3507             : static bool
    3508           0 : set_MozBinding(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3509             : {
    3510           0 :   binding_detail::FakeString arg0;
    3511           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3512           0 :     return false;
    3513             :   }
    3514           0 :   binding_detail::FastErrorResult rv;
    3515           0 :   self->SetMozBinding(NonNullHelper(Constify(arg0)), rv);
    3516           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3517           0 :     return false;
    3518             :   }
    3519           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3520             : 
    3521           0 :   return true;
    3522             : }
    3523             : 
    3524             : static const JSJitInfo MozBinding_getterinfo = {
    3525             :   { (JSJitGetterOp)get_MozBinding },
    3526             :   { prototypes::id::CSS2Properties },
    3527             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3528             :   JSJitInfo::Getter,
    3529             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3530             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3531             :   false,  /* isInfallible. False in setters. */
    3532             :   false,  /* isMovable.  Not relevant for setters. */
    3533             :   false, /* isEliminatable.  Not relevant for setters. */
    3534             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3535             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3536             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3537             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3538             : };
    3539             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3540             : static_assert(0 < 1, "There is no slot for us");
    3541             : static const JSJitInfo MozBinding_setterinfo = {
    3542             :   { (JSJitGetterOp)set_MozBinding },
    3543             :   { prototypes::id::CSS2Properties },
    3544             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3545             :   JSJitInfo::Setter,
    3546             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3547             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3548             :   false,  /* isInfallible. False in setters. */
    3549             :   false,  /* isMovable.  Not relevant for setters. */
    3550             :   false, /* isEliminatable.  Not relevant for setters. */
    3551             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3552             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3553             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3554             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3555             : };
    3556             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3557             : static_assert(0 < 1, "There is no slot for us");
    3558             : 
    3559             : static bool
    3560           0 : get__moz_binding(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3561             : {
    3562           0 :   binding_detail::FastErrorResult rv;
    3563           0 :   DOMString result;
    3564           0 :   self->GetMozBinding(result, rv);
    3565           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3566           0 :     return false;
    3567             :   }
    3568           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3569           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3570           0 :     return false;
    3571             :   }
    3572           0 :   return true;
    3573             : }
    3574             : 
    3575             : static bool
    3576           0 : set__moz_binding(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3577             : {
    3578           0 :   binding_detail::FakeString arg0;
    3579           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3580           0 :     return false;
    3581             :   }
    3582           0 :   binding_detail::FastErrorResult rv;
    3583           0 :   self->SetMozBinding(NonNullHelper(Constify(arg0)), rv);
    3584           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3585           0 :     return false;
    3586             :   }
    3587           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3588             : 
    3589           0 :   return true;
    3590             : }
    3591             : 
    3592             : static const JSJitInfo _moz_binding_getterinfo = {
    3593             :   { (JSJitGetterOp)get__moz_binding },
    3594             :   { prototypes::id::CSS2Properties },
    3595             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3596             :   JSJitInfo::Getter,
    3597             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3598             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3599             :   false,  /* isInfallible. False in setters. */
    3600             :   false,  /* isMovable.  Not relevant for setters. */
    3601             :   false, /* isEliminatable.  Not relevant for setters. */
    3602             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3603             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3604             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3605             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3606             : };
    3607             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3608             : static_assert(0 < 1, "There is no slot for us");
    3609             : static const JSJitInfo _moz_binding_setterinfo = {
    3610             :   { (JSJitGetterOp)set__moz_binding },
    3611             :   { prototypes::id::CSS2Properties },
    3612             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3613             :   JSJitInfo::Setter,
    3614             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3615             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3616             :   false,  /* isInfallible. False in setters. */
    3617             :   false,  /* isMovable.  Not relevant for setters. */
    3618             :   false, /* isEliminatable.  Not relevant for setters. */
    3619             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3620             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3621             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3622             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3623             : };
    3624             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3625             : static_assert(0 < 1, "There is no slot for us");
    3626             : 
    3627             : static bool
    3628           0 : get_blockSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3629             : {
    3630           0 :   binding_detail::FastErrorResult rv;
    3631           0 :   DOMString result;
    3632           0 :   self->GetBlockSize(result, rv);
    3633           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3634           0 :     return false;
    3635             :   }
    3636           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3637           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3638           0 :     return false;
    3639             :   }
    3640           0 :   return true;
    3641             : }
    3642             : 
    3643             : static bool
    3644           0 : set_blockSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3645             : {
    3646           0 :   binding_detail::FakeString arg0;
    3647           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3648           0 :     return false;
    3649             :   }
    3650           0 :   binding_detail::FastErrorResult rv;
    3651           0 :   self->SetBlockSize(NonNullHelper(Constify(arg0)), rv);
    3652           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3653           0 :     return false;
    3654             :   }
    3655           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3656             : 
    3657           0 :   return true;
    3658             : }
    3659             : 
    3660             : static const JSJitInfo blockSize_getterinfo = {
    3661             :   { (JSJitGetterOp)get_blockSize },
    3662             :   { prototypes::id::CSS2Properties },
    3663             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3664             :   JSJitInfo::Getter,
    3665             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3666             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3667             :   false,  /* isInfallible. False in setters. */
    3668             :   false,  /* isMovable.  Not relevant for setters. */
    3669             :   false, /* isEliminatable.  Not relevant for setters. */
    3670             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3671             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3672             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3673             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3674             : };
    3675             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3676             : static_assert(0 < 1, "There is no slot for us");
    3677             : static const JSJitInfo blockSize_setterinfo = {
    3678             :   { (JSJitGetterOp)set_blockSize },
    3679             :   { prototypes::id::CSS2Properties },
    3680             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3681             :   JSJitInfo::Setter,
    3682             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3683             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3684             :   false,  /* isInfallible. False in setters. */
    3685             :   false,  /* isMovable.  Not relevant for setters. */
    3686             :   false, /* isEliminatable.  Not relevant for setters. */
    3687             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3688             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3689             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3690             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3691             : };
    3692             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3693             : static_assert(0 < 1, "There is no slot for us");
    3694             : 
    3695             : static bool
    3696           0 : get_block_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3697             : {
    3698           0 :   binding_detail::FastErrorResult rv;
    3699           0 :   DOMString result;
    3700           0 :   self->GetBlockSize(result, rv);
    3701           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3702           0 :     return false;
    3703             :   }
    3704           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3705           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3706           0 :     return false;
    3707             :   }
    3708           0 :   return true;
    3709             : }
    3710             : 
    3711             : static bool
    3712           0 : set_block_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3713             : {
    3714           0 :   binding_detail::FakeString arg0;
    3715           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3716           0 :     return false;
    3717             :   }
    3718           0 :   binding_detail::FastErrorResult rv;
    3719           0 :   self->SetBlockSize(NonNullHelper(Constify(arg0)), rv);
    3720           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3721           0 :     return false;
    3722             :   }
    3723           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3724             : 
    3725           0 :   return true;
    3726             : }
    3727             : 
    3728             : static const JSJitInfo block_size_getterinfo = {
    3729             :   { (JSJitGetterOp)get_block_size },
    3730             :   { prototypes::id::CSS2Properties },
    3731             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3732             :   JSJitInfo::Getter,
    3733             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3734             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3735             :   false,  /* isInfallible. False in setters. */
    3736             :   false,  /* isMovable.  Not relevant for setters. */
    3737             :   false, /* isEliminatable.  Not relevant for setters. */
    3738             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3739             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3740             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3741             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3742             : };
    3743             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3744             : static_assert(0 < 1, "There is no slot for us");
    3745             : static const JSJitInfo block_size_setterinfo = {
    3746             :   { (JSJitGetterOp)set_block_size },
    3747             :   { prototypes::id::CSS2Properties },
    3748             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3749             :   JSJitInfo::Setter,
    3750             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3751             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3752             :   false,  /* isInfallible. False in setters. */
    3753             :   false,  /* isMovable.  Not relevant for setters. */
    3754             :   false, /* isEliminatable.  Not relevant for setters. */
    3755             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3756             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3757             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3758             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3759             : };
    3760             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3761             : static_assert(0 < 1, "There is no slot for us");
    3762             : 
    3763             : static bool
    3764           0 : get_border(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3765             : {
    3766           0 :   binding_detail::FastErrorResult rv;
    3767           0 :   DOMString result;
    3768           0 :   self->GetBorder(result, rv);
    3769           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3770           0 :     return false;
    3771             :   }
    3772           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3773           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3774           0 :     return false;
    3775             :   }
    3776           0 :   return true;
    3777             : }
    3778             : 
    3779             : static bool
    3780           0 : set_border(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3781             : {
    3782           0 :   binding_detail::FakeString arg0;
    3783           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3784           0 :     return false;
    3785             :   }
    3786           0 :   binding_detail::FastErrorResult rv;
    3787           0 :   self->SetBorder(NonNullHelper(Constify(arg0)), rv);
    3788           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3789           0 :     return false;
    3790             :   }
    3791           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3792             : 
    3793           0 :   return true;
    3794             : }
    3795             : 
    3796             : static const JSJitInfo border_getterinfo = {
    3797             :   { (JSJitGetterOp)get_border },
    3798             :   { prototypes::id::CSS2Properties },
    3799             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3800             :   JSJitInfo::Getter,
    3801             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3802             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3803             :   false,  /* isInfallible. False in setters. */
    3804             :   false,  /* isMovable.  Not relevant for setters. */
    3805             :   false, /* isEliminatable.  Not relevant for setters. */
    3806             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3807             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3808             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3809             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3810             : };
    3811             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3812             : static_assert(0 < 1, "There is no slot for us");
    3813             : static const JSJitInfo border_setterinfo = {
    3814             :   { (JSJitGetterOp)set_border },
    3815             :   { prototypes::id::CSS2Properties },
    3816             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3817             :   JSJitInfo::Setter,
    3818             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3819             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3820             :   false,  /* isInfallible. False in setters. */
    3821             :   false,  /* isMovable.  Not relevant for setters. */
    3822             :   false, /* isEliminatable.  Not relevant for setters. */
    3823             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3824             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3825             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3826             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3827             : };
    3828             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3829             : static_assert(0 < 1, "There is no slot for us");
    3830             : 
    3831             : static bool
    3832           0 : get_borderBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3833             : {
    3834           0 :   binding_detail::FastErrorResult rv;
    3835           0 :   DOMString result;
    3836           0 :   self->GetBorderBlockEnd(result, rv);
    3837           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3838           0 :     return false;
    3839             :   }
    3840           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3841           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3842           0 :     return false;
    3843             :   }
    3844           0 :   return true;
    3845             : }
    3846             : 
    3847             : static bool
    3848           0 : set_borderBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3849             : {
    3850           0 :   binding_detail::FakeString arg0;
    3851           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3852           0 :     return false;
    3853             :   }
    3854           0 :   binding_detail::FastErrorResult rv;
    3855           0 :   self->SetBorderBlockEnd(NonNullHelper(Constify(arg0)), rv);
    3856           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3857           0 :     return false;
    3858             :   }
    3859           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3860             : 
    3861           0 :   return true;
    3862             : }
    3863             : 
    3864             : static const JSJitInfo borderBlockEnd_getterinfo = {
    3865             :   { (JSJitGetterOp)get_borderBlockEnd },
    3866             :   { prototypes::id::CSS2Properties },
    3867             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3868             :   JSJitInfo::Getter,
    3869             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3870             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3871             :   false,  /* isInfallible. False in setters. */
    3872             :   false,  /* isMovable.  Not relevant for setters. */
    3873             :   false, /* isEliminatable.  Not relevant for setters. */
    3874             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3875             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3876             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3877             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3878             : };
    3879             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3880             : static_assert(0 < 1, "There is no slot for us");
    3881             : static const JSJitInfo borderBlockEnd_setterinfo = {
    3882             :   { (JSJitGetterOp)set_borderBlockEnd },
    3883             :   { prototypes::id::CSS2Properties },
    3884             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3885             :   JSJitInfo::Setter,
    3886             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3887             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3888             :   false,  /* isInfallible. False in setters. */
    3889             :   false,  /* isMovable.  Not relevant for setters. */
    3890             :   false, /* isEliminatable.  Not relevant for setters. */
    3891             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3892             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3893             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3894             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3895             : };
    3896             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3897             : static_assert(0 < 1, "There is no slot for us");
    3898             : 
    3899             : static bool
    3900           0 : get_border_block_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3901             : {
    3902           0 :   binding_detail::FastErrorResult rv;
    3903           0 :   DOMString result;
    3904           0 :   self->GetBorderBlockEnd(result, rv);
    3905           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3906           0 :     return false;
    3907             :   }
    3908           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3909           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3910           0 :     return false;
    3911             :   }
    3912           0 :   return true;
    3913             : }
    3914             : 
    3915             : static bool
    3916           0 : set_border_block_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3917             : {
    3918           0 :   binding_detail::FakeString arg0;
    3919           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3920           0 :     return false;
    3921             :   }
    3922           0 :   binding_detail::FastErrorResult rv;
    3923           0 :   self->SetBorderBlockEnd(NonNullHelper(Constify(arg0)), rv);
    3924           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3925           0 :     return false;
    3926             :   }
    3927           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3928             : 
    3929           0 :   return true;
    3930             : }
    3931             : 
    3932             : static const JSJitInfo border_block_end_getterinfo = {
    3933             :   { (JSJitGetterOp)get_border_block_end },
    3934             :   { prototypes::id::CSS2Properties },
    3935             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3936             :   JSJitInfo::Getter,
    3937             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3938             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    3939             :   false,  /* isInfallible. False in setters. */
    3940             :   false,  /* isMovable.  Not relevant for setters. */
    3941             :   false, /* isEliminatable.  Not relevant for setters. */
    3942             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3943             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3944             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3945             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3946             : };
    3947             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3948             : static_assert(0 < 1, "There is no slot for us");
    3949             : static const JSJitInfo border_block_end_setterinfo = {
    3950             :   { (JSJitGetterOp)set_border_block_end },
    3951             :   { prototypes::id::CSS2Properties },
    3952             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    3953             :   JSJitInfo::Setter,
    3954             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    3955             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    3956             :   false,  /* isInfallible. False in setters. */
    3957             :   false,  /* isMovable.  Not relevant for setters. */
    3958             :   false, /* isEliminatable.  Not relevant for setters. */
    3959             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    3960             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    3961             :   false,  /* isTypedMethod.  Only relevant for methods. */
    3962             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    3963             : };
    3964             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    3965             : static_assert(0 < 1, "There is no slot for us");
    3966             : 
    3967             : static bool
    3968           0 : get_borderBlockEndColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    3969             : {
    3970           0 :   binding_detail::FastErrorResult rv;
    3971           0 :   DOMString result;
    3972           0 :   self->GetBorderBlockEndColor(result, rv);
    3973           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3974           0 :     return false;
    3975             :   }
    3976           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3977           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    3978           0 :     return false;
    3979             :   }
    3980           0 :   return true;
    3981             : }
    3982             : 
    3983             : static bool
    3984           0 : set_borderBlockEndColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    3985             : {
    3986           0 :   binding_detail::FakeString arg0;
    3987           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    3988           0 :     return false;
    3989             :   }
    3990           0 :   binding_detail::FastErrorResult rv;
    3991           0 :   self->SetBorderBlockEndColor(NonNullHelper(Constify(arg0)), rv);
    3992           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    3993           0 :     return false;
    3994             :   }
    3995           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    3996             : 
    3997           0 :   return true;
    3998             : }
    3999             : 
    4000             : static const JSJitInfo borderBlockEndColor_getterinfo = {
    4001             :   { (JSJitGetterOp)get_borderBlockEndColor },
    4002             :   { prototypes::id::CSS2Properties },
    4003             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4004             :   JSJitInfo::Getter,
    4005             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4006             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4007             :   false,  /* isInfallible. False in setters. */
    4008             :   false,  /* isMovable.  Not relevant for setters. */
    4009             :   false, /* isEliminatable.  Not relevant for setters. */
    4010             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4011             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4012             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4013             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4014             : };
    4015             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4016             : static_assert(0 < 1, "There is no slot for us");
    4017             : static const JSJitInfo borderBlockEndColor_setterinfo = {
    4018             :   { (JSJitGetterOp)set_borderBlockEndColor },
    4019             :   { prototypes::id::CSS2Properties },
    4020             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4021             :   JSJitInfo::Setter,
    4022             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4023             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4024             :   false,  /* isInfallible. False in setters. */
    4025             :   false,  /* isMovable.  Not relevant for setters. */
    4026             :   false, /* isEliminatable.  Not relevant for setters. */
    4027             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4028             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4029             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4030             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4031             : };
    4032             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4033             : static_assert(0 < 1, "There is no slot for us");
    4034             : 
    4035             : static bool
    4036           0 : get_border_block_end_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4037             : {
    4038           0 :   binding_detail::FastErrorResult rv;
    4039           0 :   DOMString result;
    4040           0 :   self->GetBorderBlockEndColor(result, rv);
    4041           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4042           0 :     return false;
    4043             :   }
    4044           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4045           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4046           0 :     return false;
    4047             :   }
    4048           0 :   return true;
    4049             : }
    4050             : 
    4051             : static bool
    4052           0 : set_border_block_end_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4053             : {
    4054           0 :   binding_detail::FakeString arg0;
    4055           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4056           0 :     return false;
    4057             :   }
    4058           0 :   binding_detail::FastErrorResult rv;
    4059           0 :   self->SetBorderBlockEndColor(NonNullHelper(Constify(arg0)), rv);
    4060           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4061           0 :     return false;
    4062             :   }
    4063           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4064             : 
    4065           0 :   return true;
    4066             : }
    4067             : 
    4068             : static const JSJitInfo border_block_end_color_getterinfo = {
    4069             :   { (JSJitGetterOp)get_border_block_end_color },
    4070             :   { prototypes::id::CSS2Properties },
    4071             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4072             :   JSJitInfo::Getter,
    4073             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4074             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4075             :   false,  /* isInfallible. False in setters. */
    4076             :   false,  /* isMovable.  Not relevant for setters. */
    4077             :   false, /* isEliminatable.  Not relevant for setters. */
    4078             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4079             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4080             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4081             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4082             : };
    4083             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4084             : static_assert(0 < 1, "There is no slot for us");
    4085             : static const JSJitInfo border_block_end_color_setterinfo = {
    4086             :   { (JSJitGetterOp)set_border_block_end_color },
    4087             :   { prototypes::id::CSS2Properties },
    4088             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4089             :   JSJitInfo::Setter,
    4090             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4091             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4092             :   false,  /* isInfallible. False in setters. */
    4093             :   false,  /* isMovable.  Not relevant for setters. */
    4094             :   false, /* isEliminatable.  Not relevant for setters. */
    4095             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4096             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4097             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4098             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4099             : };
    4100             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4101             : static_assert(0 < 1, "There is no slot for us");
    4102             : 
    4103             : static bool
    4104           0 : get_borderBlockEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4105             : {
    4106           0 :   binding_detail::FastErrorResult rv;
    4107           0 :   DOMString result;
    4108           0 :   self->GetBorderBlockEndStyle(result, rv);
    4109           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4110           0 :     return false;
    4111             :   }
    4112           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4113           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4114           0 :     return false;
    4115             :   }
    4116           0 :   return true;
    4117             : }
    4118             : 
    4119             : static bool
    4120           0 : set_borderBlockEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4121             : {
    4122           0 :   binding_detail::FakeString arg0;
    4123           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4124           0 :     return false;
    4125             :   }
    4126           0 :   binding_detail::FastErrorResult rv;
    4127           0 :   self->SetBorderBlockEndStyle(NonNullHelper(Constify(arg0)), rv);
    4128           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4129           0 :     return false;
    4130             :   }
    4131           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4132             : 
    4133           0 :   return true;
    4134             : }
    4135             : 
    4136             : static const JSJitInfo borderBlockEndStyle_getterinfo = {
    4137             :   { (JSJitGetterOp)get_borderBlockEndStyle },
    4138             :   { prototypes::id::CSS2Properties },
    4139             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4140             :   JSJitInfo::Getter,
    4141             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4142             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4143             :   false,  /* isInfallible. False in setters. */
    4144             :   false,  /* isMovable.  Not relevant for setters. */
    4145             :   false, /* isEliminatable.  Not relevant for setters. */
    4146             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4147             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4148             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4149             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4150             : };
    4151             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4152             : static_assert(0 < 1, "There is no slot for us");
    4153             : static const JSJitInfo borderBlockEndStyle_setterinfo = {
    4154             :   { (JSJitGetterOp)set_borderBlockEndStyle },
    4155             :   { prototypes::id::CSS2Properties },
    4156             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4157             :   JSJitInfo::Setter,
    4158             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4159             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4160             :   false,  /* isInfallible. False in setters. */
    4161             :   false,  /* isMovable.  Not relevant for setters. */
    4162             :   false, /* isEliminatable.  Not relevant for setters. */
    4163             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4164             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4165             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4166             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4167             : };
    4168             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4169             : static_assert(0 < 1, "There is no slot for us");
    4170             : 
    4171             : static bool
    4172           0 : get_border_block_end_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4173             : {
    4174           0 :   binding_detail::FastErrorResult rv;
    4175           0 :   DOMString result;
    4176           0 :   self->GetBorderBlockEndStyle(result, rv);
    4177           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4178           0 :     return false;
    4179             :   }
    4180           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4181           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4182           0 :     return false;
    4183             :   }
    4184           0 :   return true;
    4185             : }
    4186             : 
    4187             : static bool
    4188           0 : set_border_block_end_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4189             : {
    4190           0 :   binding_detail::FakeString arg0;
    4191           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4192           0 :     return false;
    4193             :   }
    4194           0 :   binding_detail::FastErrorResult rv;
    4195           0 :   self->SetBorderBlockEndStyle(NonNullHelper(Constify(arg0)), rv);
    4196           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4197           0 :     return false;
    4198             :   }
    4199           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4200             : 
    4201           0 :   return true;
    4202             : }
    4203             : 
    4204             : static const JSJitInfo border_block_end_style_getterinfo = {
    4205             :   { (JSJitGetterOp)get_border_block_end_style },
    4206             :   { prototypes::id::CSS2Properties },
    4207             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4208             :   JSJitInfo::Getter,
    4209             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4210             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4211             :   false,  /* isInfallible. False in setters. */
    4212             :   false,  /* isMovable.  Not relevant for setters. */
    4213             :   false, /* isEliminatable.  Not relevant for setters. */
    4214             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4215             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4216             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4217             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4218             : };
    4219             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4220             : static_assert(0 < 1, "There is no slot for us");
    4221             : static const JSJitInfo border_block_end_style_setterinfo = {
    4222             :   { (JSJitGetterOp)set_border_block_end_style },
    4223             :   { prototypes::id::CSS2Properties },
    4224             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4225             :   JSJitInfo::Setter,
    4226             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4227             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4228             :   false,  /* isInfallible. False in setters. */
    4229             :   false,  /* isMovable.  Not relevant for setters. */
    4230             :   false, /* isEliminatable.  Not relevant for setters. */
    4231             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4232             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4233             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4234             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4235             : };
    4236             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4237             : static_assert(0 < 1, "There is no slot for us");
    4238             : 
    4239             : static bool
    4240           0 : get_borderBlockEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4241             : {
    4242           0 :   binding_detail::FastErrorResult rv;
    4243           0 :   DOMString result;
    4244           0 :   self->GetBorderBlockEndWidth(result, rv);
    4245           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4246           0 :     return false;
    4247             :   }
    4248           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4249           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4250           0 :     return false;
    4251             :   }
    4252           0 :   return true;
    4253             : }
    4254             : 
    4255             : static bool
    4256           0 : set_borderBlockEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4257             : {
    4258           0 :   binding_detail::FakeString arg0;
    4259           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4260           0 :     return false;
    4261             :   }
    4262           0 :   binding_detail::FastErrorResult rv;
    4263           0 :   self->SetBorderBlockEndWidth(NonNullHelper(Constify(arg0)), rv);
    4264           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4265           0 :     return false;
    4266             :   }
    4267           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4268             : 
    4269           0 :   return true;
    4270             : }
    4271             : 
    4272             : static const JSJitInfo borderBlockEndWidth_getterinfo = {
    4273             :   { (JSJitGetterOp)get_borderBlockEndWidth },
    4274             :   { prototypes::id::CSS2Properties },
    4275             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4276             :   JSJitInfo::Getter,
    4277             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4278             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4279             :   false,  /* isInfallible. False in setters. */
    4280             :   false,  /* isMovable.  Not relevant for setters. */
    4281             :   false, /* isEliminatable.  Not relevant for setters. */
    4282             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4283             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4284             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4285             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4286             : };
    4287             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4288             : static_assert(0 < 1, "There is no slot for us");
    4289             : static const JSJitInfo borderBlockEndWidth_setterinfo = {
    4290             :   { (JSJitGetterOp)set_borderBlockEndWidth },
    4291             :   { prototypes::id::CSS2Properties },
    4292             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4293             :   JSJitInfo::Setter,
    4294             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4295             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4296             :   false,  /* isInfallible. False in setters. */
    4297             :   false,  /* isMovable.  Not relevant for setters. */
    4298             :   false, /* isEliminatable.  Not relevant for setters. */
    4299             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4300             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4301             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4302             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4303             : };
    4304             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4305             : static_assert(0 < 1, "There is no slot for us");
    4306             : 
    4307             : static bool
    4308           0 : get_border_block_end_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4309             : {
    4310           0 :   binding_detail::FastErrorResult rv;
    4311           0 :   DOMString result;
    4312           0 :   self->GetBorderBlockEndWidth(result, rv);
    4313           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4314           0 :     return false;
    4315             :   }
    4316           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4317           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4318           0 :     return false;
    4319             :   }
    4320           0 :   return true;
    4321             : }
    4322             : 
    4323             : static bool
    4324           0 : set_border_block_end_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4325             : {
    4326           0 :   binding_detail::FakeString arg0;
    4327           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4328           0 :     return false;
    4329             :   }
    4330           0 :   binding_detail::FastErrorResult rv;
    4331           0 :   self->SetBorderBlockEndWidth(NonNullHelper(Constify(arg0)), rv);
    4332           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4333           0 :     return false;
    4334             :   }
    4335           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4336             : 
    4337           0 :   return true;
    4338             : }
    4339             : 
    4340             : static const JSJitInfo border_block_end_width_getterinfo = {
    4341             :   { (JSJitGetterOp)get_border_block_end_width },
    4342             :   { prototypes::id::CSS2Properties },
    4343             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4344             :   JSJitInfo::Getter,
    4345             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4346             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4347             :   false,  /* isInfallible. False in setters. */
    4348             :   false,  /* isMovable.  Not relevant for setters. */
    4349             :   false, /* isEliminatable.  Not relevant for setters. */
    4350             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4351             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4352             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4353             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4354             : };
    4355             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4356             : static_assert(0 < 1, "There is no slot for us");
    4357             : static const JSJitInfo border_block_end_width_setterinfo = {
    4358             :   { (JSJitGetterOp)set_border_block_end_width },
    4359             :   { prototypes::id::CSS2Properties },
    4360             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4361             :   JSJitInfo::Setter,
    4362             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4363             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4364             :   false,  /* isInfallible. False in setters. */
    4365             :   false,  /* isMovable.  Not relevant for setters. */
    4366             :   false, /* isEliminatable.  Not relevant for setters. */
    4367             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4368             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4369             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4370             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4371             : };
    4372             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4373             : static_assert(0 < 1, "There is no slot for us");
    4374             : 
    4375             : static bool
    4376           0 : get_borderBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4377             : {
    4378           0 :   binding_detail::FastErrorResult rv;
    4379           0 :   DOMString result;
    4380           0 :   self->GetBorderBlockStart(result, rv);
    4381           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4382           0 :     return false;
    4383             :   }
    4384           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4385           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4386           0 :     return false;
    4387             :   }
    4388           0 :   return true;
    4389             : }
    4390             : 
    4391             : static bool
    4392           0 : set_borderBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4393             : {
    4394           0 :   binding_detail::FakeString arg0;
    4395           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4396           0 :     return false;
    4397             :   }
    4398           0 :   binding_detail::FastErrorResult rv;
    4399           0 :   self->SetBorderBlockStart(NonNullHelper(Constify(arg0)), rv);
    4400           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4401           0 :     return false;
    4402             :   }
    4403           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4404             : 
    4405           0 :   return true;
    4406             : }
    4407             : 
    4408             : static const JSJitInfo borderBlockStart_getterinfo = {
    4409             :   { (JSJitGetterOp)get_borderBlockStart },
    4410             :   { prototypes::id::CSS2Properties },
    4411             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4412             :   JSJitInfo::Getter,
    4413             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4414             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4415             :   false,  /* isInfallible. False in setters. */
    4416             :   false,  /* isMovable.  Not relevant for setters. */
    4417             :   false, /* isEliminatable.  Not relevant for setters. */
    4418             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4419             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4420             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4421             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4422             : };
    4423             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4424             : static_assert(0 < 1, "There is no slot for us");
    4425             : static const JSJitInfo borderBlockStart_setterinfo = {
    4426             :   { (JSJitGetterOp)set_borderBlockStart },
    4427             :   { prototypes::id::CSS2Properties },
    4428             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4429             :   JSJitInfo::Setter,
    4430             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4431             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4432             :   false,  /* isInfallible. False in setters. */
    4433             :   false,  /* isMovable.  Not relevant for setters. */
    4434             :   false, /* isEliminatable.  Not relevant for setters. */
    4435             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4436             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4437             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4438             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4439             : };
    4440             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4441             : static_assert(0 < 1, "There is no slot for us");
    4442             : 
    4443             : static bool
    4444           0 : get_border_block_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4445             : {
    4446           0 :   binding_detail::FastErrorResult rv;
    4447           0 :   DOMString result;
    4448           0 :   self->GetBorderBlockStart(result, rv);
    4449           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4450           0 :     return false;
    4451             :   }
    4452           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4453           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4454           0 :     return false;
    4455             :   }
    4456           0 :   return true;
    4457             : }
    4458             : 
    4459             : static bool
    4460           0 : set_border_block_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4461             : {
    4462           0 :   binding_detail::FakeString arg0;
    4463           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4464           0 :     return false;
    4465             :   }
    4466           0 :   binding_detail::FastErrorResult rv;
    4467           0 :   self->SetBorderBlockStart(NonNullHelper(Constify(arg0)), rv);
    4468           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4469           0 :     return false;
    4470             :   }
    4471           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4472             : 
    4473           0 :   return true;
    4474             : }
    4475             : 
    4476             : static const JSJitInfo border_block_start_getterinfo = {
    4477             :   { (JSJitGetterOp)get_border_block_start },
    4478             :   { prototypes::id::CSS2Properties },
    4479             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4480             :   JSJitInfo::Getter,
    4481             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4482             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4483             :   false,  /* isInfallible. False in setters. */
    4484             :   false,  /* isMovable.  Not relevant for setters. */
    4485             :   false, /* isEliminatable.  Not relevant for setters. */
    4486             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4487             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4488             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4489             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4490             : };
    4491             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4492             : static_assert(0 < 1, "There is no slot for us");
    4493             : static const JSJitInfo border_block_start_setterinfo = {
    4494             :   { (JSJitGetterOp)set_border_block_start },
    4495             :   { prototypes::id::CSS2Properties },
    4496             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4497             :   JSJitInfo::Setter,
    4498             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4499             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4500             :   false,  /* isInfallible. False in setters. */
    4501             :   false,  /* isMovable.  Not relevant for setters. */
    4502             :   false, /* isEliminatable.  Not relevant for setters. */
    4503             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4504             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4505             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4506             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4507             : };
    4508             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4509             : static_assert(0 < 1, "There is no slot for us");
    4510             : 
    4511             : static bool
    4512           0 : get_borderBlockStartColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4513             : {
    4514           0 :   binding_detail::FastErrorResult rv;
    4515           0 :   DOMString result;
    4516           0 :   self->GetBorderBlockStartColor(result, rv);
    4517           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4518           0 :     return false;
    4519             :   }
    4520           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4521           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4522           0 :     return false;
    4523             :   }
    4524           0 :   return true;
    4525             : }
    4526             : 
    4527             : static bool
    4528           0 : set_borderBlockStartColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4529             : {
    4530           0 :   binding_detail::FakeString arg0;
    4531           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4532           0 :     return false;
    4533             :   }
    4534           0 :   binding_detail::FastErrorResult rv;
    4535           0 :   self->SetBorderBlockStartColor(NonNullHelper(Constify(arg0)), rv);
    4536           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4537           0 :     return false;
    4538             :   }
    4539           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4540             : 
    4541           0 :   return true;
    4542             : }
    4543             : 
    4544             : static const JSJitInfo borderBlockStartColor_getterinfo = {
    4545             :   { (JSJitGetterOp)get_borderBlockStartColor },
    4546             :   { prototypes::id::CSS2Properties },
    4547             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4548             :   JSJitInfo::Getter,
    4549             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4550             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4551             :   false,  /* isInfallible. False in setters. */
    4552             :   false,  /* isMovable.  Not relevant for setters. */
    4553             :   false, /* isEliminatable.  Not relevant for setters. */
    4554             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4555             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4556             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4557             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4558             : };
    4559             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4560             : static_assert(0 < 1, "There is no slot for us");
    4561             : static const JSJitInfo borderBlockStartColor_setterinfo = {
    4562             :   { (JSJitGetterOp)set_borderBlockStartColor },
    4563             :   { prototypes::id::CSS2Properties },
    4564             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4565             :   JSJitInfo::Setter,
    4566             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4567             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4568             :   false,  /* isInfallible. False in setters. */
    4569             :   false,  /* isMovable.  Not relevant for setters. */
    4570             :   false, /* isEliminatable.  Not relevant for setters. */
    4571             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4572             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4573             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4574             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4575             : };
    4576             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4577             : static_assert(0 < 1, "There is no slot for us");
    4578             : 
    4579             : static bool
    4580           0 : get_border_block_start_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4581             : {
    4582           0 :   binding_detail::FastErrorResult rv;
    4583           0 :   DOMString result;
    4584           0 :   self->GetBorderBlockStartColor(result, rv);
    4585           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4586           0 :     return false;
    4587             :   }
    4588           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4589           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4590           0 :     return false;
    4591             :   }
    4592           0 :   return true;
    4593             : }
    4594             : 
    4595             : static bool
    4596           0 : set_border_block_start_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4597             : {
    4598           0 :   binding_detail::FakeString arg0;
    4599           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4600           0 :     return false;
    4601             :   }
    4602           0 :   binding_detail::FastErrorResult rv;
    4603           0 :   self->SetBorderBlockStartColor(NonNullHelper(Constify(arg0)), rv);
    4604           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4605           0 :     return false;
    4606             :   }
    4607           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4608             : 
    4609           0 :   return true;
    4610             : }
    4611             : 
    4612             : static const JSJitInfo border_block_start_color_getterinfo = {
    4613             :   { (JSJitGetterOp)get_border_block_start_color },
    4614             :   { prototypes::id::CSS2Properties },
    4615             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4616             :   JSJitInfo::Getter,
    4617             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4618             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4619             :   false,  /* isInfallible. False in setters. */
    4620             :   false,  /* isMovable.  Not relevant for setters. */
    4621             :   false, /* isEliminatable.  Not relevant for setters. */
    4622             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4623             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4624             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4625             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4626             : };
    4627             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4628             : static_assert(0 < 1, "There is no slot for us");
    4629             : static const JSJitInfo border_block_start_color_setterinfo = {
    4630             :   { (JSJitGetterOp)set_border_block_start_color },
    4631             :   { prototypes::id::CSS2Properties },
    4632             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4633             :   JSJitInfo::Setter,
    4634             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4635             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4636             :   false,  /* isInfallible. False in setters. */
    4637             :   false,  /* isMovable.  Not relevant for setters. */
    4638             :   false, /* isEliminatable.  Not relevant for setters. */
    4639             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4640             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4641             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4642             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4643             : };
    4644             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4645             : static_assert(0 < 1, "There is no slot for us");
    4646             : 
    4647             : static bool
    4648           0 : get_borderBlockStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4649             : {
    4650           0 :   binding_detail::FastErrorResult rv;
    4651           0 :   DOMString result;
    4652           0 :   self->GetBorderBlockStartStyle(result, rv);
    4653           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4654           0 :     return false;
    4655             :   }
    4656           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4657           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4658           0 :     return false;
    4659             :   }
    4660           0 :   return true;
    4661             : }
    4662             : 
    4663             : static bool
    4664           0 : set_borderBlockStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4665             : {
    4666           0 :   binding_detail::FakeString arg0;
    4667           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4668           0 :     return false;
    4669             :   }
    4670           0 :   binding_detail::FastErrorResult rv;
    4671           0 :   self->SetBorderBlockStartStyle(NonNullHelper(Constify(arg0)), rv);
    4672           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4673           0 :     return false;
    4674             :   }
    4675           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4676             : 
    4677           0 :   return true;
    4678             : }
    4679             : 
    4680             : static const JSJitInfo borderBlockStartStyle_getterinfo = {
    4681             :   { (JSJitGetterOp)get_borderBlockStartStyle },
    4682             :   { prototypes::id::CSS2Properties },
    4683             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4684             :   JSJitInfo::Getter,
    4685             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4686             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4687             :   false,  /* isInfallible. False in setters. */
    4688             :   false,  /* isMovable.  Not relevant for setters. */
    4689             :   false, /* isEliminatable.  Not relevant for setters. */
    4690             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4691             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4692             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4693             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4694             : };
    4695             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4696             : static_assert(0 < 1, "There is no slot for us");
    4697             : static const JSJitInfo borderBlockStartStyle_setterinfo = {
    4698             :   { (JSJitGetterOp)set_borderBlockStartStyle },
    4699             :   { prototypes::id::CSS2Properties },
    4700             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4701             :   JSJitInfo::Setter,
    4702             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4703             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4704             :   false,  /* isInfallible. False in setters. */
    4705             :   false,  /* isMovable.  Not relevant for setters. */
    4706             :   false, /* isEliminatable.  Not relevant for setters. */
    4707             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4708             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4709             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4710             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4711             : };
    4712             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4713             : static_assert(0 < 1, "There is no slot for us");
    4714             : 
    4715             : static bool
    4716           0 : get_border_block_start_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4717             : {
    4718           0 :   binding_detail::FastErrorResult rv;
    4719           0 :   DOMString result;
    4720           0 :   self->GetBorderBlockStartStyle(result, rv);
    4721           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4722           0 :     return false;
    4723             :   }
    4724           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4725           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4726           0 :     return false;
    4727             :   }
    4728           0 :   return true;
    4729             : }
    4730             : 
    4731             : static bool
    4732           0 : set_border_block_start_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4733             : {
    4734           0 :   binding_detail::FakeString arg0;
    4735           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4736           0 :     return false;
    4737             :   }
    4738           0 :   binding_detail::FastErrorResult rv;
    4739           0 :   self->SetBorderBlockStartStyle(NonNullHelper(Constify(arg0)), rv);
    4740           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4741           0 :     return false;
    4742             :   }
    4743           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4744             : 
    4745           0 :   return true;
    4746             : }
    4747             : 
    4748             : static const JSJitInfo border_block_start_style_getterinfo = {
    4749             :   { (JSJitGetterOp)get_border_block_start_style },
    4750             :   { prototypes::id::CSS2Properties },
    4751             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4752             :   JSJitInfo::Getter,
    4753             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4754             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4755             :   false,  /* isInfallible. False in setters. */
    4756             :   false,  /* isMovable.  Not relevant for setters. */
    4757             :   false, /* isEliminatable.  Not relevant for setters. */
    4758             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4759             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4760             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4761             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4762             : };
    4763             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4764             : static_assert(0 < 1, "There is no slot for us");
    4765             : static const JSJitInfo border_block_start_style_setterinfo = {
    4766             :   { (JSJitGetterOp)set_border_block_start_style },
    4767             :   { prototypes::id::CSS2Properties },
    4768             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4769             :   JSJitInfo::Setter,
    4770             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4771             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4772             :   false,  /* isInfallible. False in setters. */
    4773             :   false,  /* isMovable.  Not relevant for setters. */
    4774             :   false, /* isEliminatable.  Not relevant for setters. */
    4775             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4776             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4777             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4778             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4779             : };
    4780             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4781             : static_assert(0 < 1, "There is no slot for us");
    4782             : 
    4783             : static bool
    4784           0 : get_borderBlockStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4785             : {
    4786           0 :   binding_detail::FastErrorResult rv;
    4787           0 :   DOMString result;
    4788           0 :   self->GetBorderBlockStartWidth(result, rv);
    4789           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4790           0 :     return false;
    4791             :   }
    4792           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4793           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4794           0 :     return false;
    4795             :   }
    4796           0 :   return true;
    4797             : }
    4798             : 
    4799             : static bool
    4800           0 : set_borderBlockStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4801             : {
    4802           0 :   binding_detail::FakeString arg0;
    4803           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4804           0 :     return false;
    4805             :   }
    4806           0 :   binding_detail::FastErrorResult rv;
    4807           0 :   self->SetBorderBlockStartWidth(NonNullHelper(Constify(arg0)), rv);
    4808           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4809           0 :     return false;
    4810             :   }
    4811           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4812             : 
    4813           0 :   return true;
    4814             : }
    4815             : 
    4816             : static const JSJitInfo borderBlockStartWidth_getterinfo = {
    4817             :   { (JSJitGetterOp)get_borderBlockStartWidth },
    4818             :   { prototypes::id::CSS2Properties },
    4819             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4820             :   JSJitInfo::Getter,
    4821             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4822             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4823             :   false,  /* isInfallible. False in setters. */
    4824             :   false,  /* isMovable.  Not relevant for setters. */
    4825             :   false, /* isEliminatable.  Not relevant for setters. */
    4826             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4827             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4828             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4829             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4830             : };
    4831             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4832             : static_assert(0 < 1, "There is no slot for us");
    4833             : static const JSJitInfo borderBlockStartWidth_setterinfo = {
    4834             :   { (JSJitGetterOp)set_borderBlockStartWidth },
    4835             :   { prototypes::id::CSS2Properties },
    4836             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4837             :   JSJitInfo::Setter,
    4838             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4839             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4840             :   false,  /* isInfallible. False in setters. */
    4841             :   false,  /* isMovable.  Not relevant for setters. */
    4842             :   false, /* isEliminatable.  Not relevant for setters. */
    4843             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4844             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4845             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4846             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4847             : };
    4848             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4849             : static_assert(0 < 1, "There is no slot for us");
    4850             : 
    4851             : static bool
    4852           0 : get_border_block_start_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4853             : {
    4854           0 :   binding_detail::FastErrorResult rv;
    4855           0 :   DOMString result;
    4856           0 :   self->GetBorderBlockStartWidth(result, rv);
    4857           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4858           0 :     return false;
    4859             :   }
    4860           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4861           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4862           0 :     return false;
    4863             :   }
    4864           0 :   return true;
    4865             : }
    4866             : 
    4867             : static bool
    4868           0 : set_border_block_start_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4869             : {
    4870           0 :   binding_detail::FakeString arg0;
    4871           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4872           0 :     return false;
    4873             :   }
    4874           0 :   binding_detail::FastErrorResult rv;
    4875           0 :   self->SetBorderBlockStartWidth(NonNullHelper(Constify(arg0)), rv);
    4876           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4877           0 :     return false;
    4878             :   }
    4879           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4880             : 
    4881           0 :   return true;
    4882             : }
    4883             : 
    4884             : static const JSJitInfo border_block_start_width_getterinfo = {
    4885             :   { (JSJitGetterOp)get_border_block_start_width },
    4886             :   { prototypes::id::CSS2Properties },
    4887             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4888             :   JSJitInfo::Getter,
    4889             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4890             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4891             :   false,  /* isInfallible. False in setters. */
    4892             :   false,  /* isMovable.  Not relevant for setters. */
    4893             :   false, /* isEliminatable.  Not relevant for setters. */
    4894             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4895             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4896             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4897             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4898             : };
    4899             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4900             : static_assert(0 < 1, "There is no slot for us");
    4901             : static const JSJitInfo border_block_start_width_setterinfo = {
    4902             :   { (JSJitGetterOp)set_border_block_start_width },
    4903             :   { prototypes::id::CSS2Properties },
    4904             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4905             :   JSJitInfo::Setter,
    4906             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4907             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4908             :   false,  /* isInfallible. False in setters. */
    4909             :   false,  /* isMovable.  Not relevant for setters. */
    4910             :   false, /* isEliminatable.  Not relevant for setters. */
    4911             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4912             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4913             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4914             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4915             : };
    4916             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4917             : static_assert(0 < 1, "There is no slot for us");
    4918             : 
    4919             : static bool
    4920           0 : get_borderBottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4921             : {
    4922           0 :   binding_detail::FastErrorResult rv;
    4923           0 :   DOMString result;
    4924           0 :   self->GetBorderBottom(result, rv);
    4925           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4926           0 :     return false;
    4927             :   }
    4928           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4929           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4930           0 :     return false;
    4931             :   }
    4932           0 :   return true;
    4933             : }
    4934             : 
    4935             : static bool
    4936           0 : set_borderBottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    4937             : {
    4938           0 :   binding_detail::FakeString arg0;
    4939           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    4940           0 :     return false;
    4941             :   }
    4942           0 :   binding_detail::FastErrorResult rv;
    4943           0 :   self->SetBorderBottom(NonNullHelper(Constify(arg0)), rv);
    4944           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4945           0 :     return false;
    4946             :   }
    4947           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4948             : 
    4949           0 :   return true;
    4950             : }
    4951             : 
    4952             : static const JSJitInfo borderBottom_getterinfo = {
    4953             :   { (JSJitGetterOp)get_borderBottom },
    4954             :   { prototypes::id::CSS2Properties },
    4955             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4956             :   JSJitInfo::Getter,
    4957             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4958             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    4959             :   false,  /* isInfallible. False in setters. */
    4960             :   false,  /* isMovable.  Not relevant for setters. */
    4961             :   false, /* isEliminatable.  Not relevant for setters. */
    4962             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4963             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4964             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4965             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4966             : };
    4967             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4968             : static_assert(0 < 1, "There is no slot for us");
    4969             : static const JSJitInfo borderBottom_setterinfo = {
    4970             :   { (JSJitGetterOp)set_borderBottom },
    4971             :   { prototypes::id::CSS2Properties },
    4972             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    4973             :   JSJitInfo::Setter,
    4974             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    4975             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    4976             :   false,  /* isInfallible. False in setters. */
    4977             :   false,  /* isMovable.  Not relevant for setters. */
    4978             :   false, /* isEliminatable.  Not relevant for setters. */
    4979             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    4980             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    4981             :   false,  /* isTypedMethod.  Only relevant for methods. */
    4982             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    4983             : };
    4984             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    4985             : static_assert(0 < 1, "There is no slot for us");
    4986             : 
    4987             : static bool
    4988           0 : get_border_bottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    4989             : {
    4990           0 :   binding_detail::FastErrorResult rv;
    4991           0 :   DOMString result;
    4992           0 :   self->GetBorderBottom(result, rv);
    4993           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    4994           0 :     return false;
    4995             :   }
    4996           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    4997           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    4998           0 :     return false;
    4999             :   }
    5000           0 :   return true;
    5001             : }
    5002             : 
    5003             : static bool
    5004           0 : set_border_bottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5005             : {
    5006           0 :   binding_detail::FakeString arg0;
    5007           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5008           0 :     return false;
    5009             :   }
    5010           0 :   binding_detail::FastErrorResult rv;
    5011           0 :   self->SetBorderBottom(NonNullHelper(Constify(arg0)), rv);
    5012           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5013           0 :     return false;
    5014             :   }
    5015           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5016             : 
    5017           0 :   return true;
    5018             : }
    5019             : 
    5020             : static const JSJitInfo border_bottom_getterinfo = {
    5021             :   { (JSJitGetterOp)get_border_bottom },
    5022             :   { prototypes::id::CSS2Properties },
    5023             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5024             :   JSJitInfo::Getter,
    5025             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5026             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5027             :   false,  /* isInfallible. False in setters. */
    5028             :   false,  /* isMovable.  Not relevant for setters. */
    5029             :   false, /* isEliminatable.  Not relevant for setters. */
    5030             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5031             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5032             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5033             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5034             : };
    5035             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5036             : static_assert(0 < 1, "There is no slot for us");
    5037             : static const JSJitInfo border_bottom_setterinfo = {
    5038             :   { (JSJitGetterOp)set_border_bottom },
    5039             :   { prototypes::id::CSS2Properties },
    5040             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5041             :   JSJitInfo::Setter,
    5042             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5043             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5044             :   false,  /* isInfallible. False in setters. */
    5045             :   false,  /* isMovable.  Not relevant for setters. */
    5046             :   false, /* isEliminatable.  Not relevant for setters. */
    5047             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5048             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5049             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5050             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5051             : };
    5052             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5053             : static_assert(0 < 1, "There is no slot for us");
    5054             : 
    5055             : static bool
    5056           0 : get_borderBottomColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5057             : {
    5058           0 :   binding_detail::FastErrorResult rv;
    5059           0 :   DOMString result;
    5060           0 :   self->GetBorderBottomColor(result, rv);
    5061           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5062           0 :     return false;
    5063             :   }
    5064           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5065           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5066           0 :     return false;
    5067             :   }
    5068           0 :   return true;
    5069             : }
    5070             : 
    5071             : static bool
    5072           0 : set_borderBottomColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5073             : {
    5074           0 :   binding_detail::FakeString arg0;
    5075           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5076           0 :     return false;
    5077             :   }
    5078           0 :   binding_detail::FastErrorResult rv;
    5079           0 :   self->SetBorderBottomColor(NonNullHelper(Constify(arg0)), rv);
    5080           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5081           0 :     return false;
    5082             :   }
    5083           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5084             : 
    5085           0 :   return true;
    5086             : }
    5087             : 
    5088             : static const JSJitInfo borderBottomColor_getterinfo = {
    5089             :   { (JSJitGetterOp)get_borderBottomColor },
    5090             :   { prototypes::id::CSS2Properties },
    5091             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5092             :   JSJitInfo::Getter,
    5093             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5094             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5095             :   false,  /* isInfallible. False in setters. */
    5096             :   false,  /* isMovable.  Not relevant for setters. */
    5097             :   false, /* isEliminatable.  Not relevant for setters. */
    5098             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5099             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5100             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5101             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5102             : };
    5103             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5104             : static_assert(0 < 1, "There is no slot for us");
    5105             : static const JSJitInfo borderBottomColor_setterinfo = {
    5106             :   { (JSJitGetterOp)set_borderBottomColor },
    5107             :   { prototypes::id::CSS2Properties },
    5108             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5109             :   JSJitInfo::Setter,
    5110             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5111             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5112             :   false,  /* isInfallible. False in setters. */
    5113             :   false,  /* isMovable.  Not relevant for setters. */
    5114             :   false, /* isEliminatable.  Not relevant for setters. */
    5115             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5116             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5117             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5118             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5119             : };
    5120             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5121             : static_assert(0 < 1, "There is no slot for us");
    5122             : 
    5123             : static bool
    5124           0 : get_border_bottom_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5125             : {
    5126           0 :   binding_detail::FastErrorResult rv;
    5127           0 :   DOMString result;
    5128           0 :   self->GetBorderBottomColor(result, rv);
    5129           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5130           0 :     return false;
    5131             :   }
    5132           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5133           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5134           0 :     return false;
    5135             :   }
    5136           0 :   return true;
    5137             : }
    5138             : 
    5139             : static bool
    5140           0 : set_border_bottom_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5141             : {
    5142           0 :   binding_detail::FakeString arg0;
    5143           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5144           0 :     return false;
    5145             :   }
    5146           0 :   binding_detail::FastErrorResult rv;
    5147           0 :   self->SetBorderBottomColor(NonNullHelper(Constify(arg0)), rv);
    5148           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5149           0 :     return false;
    5150             :   }
    5151           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5152             : 
    5153           0 :   return true;
    5154             : }
    5155             : 
    5156             : static const JSJitInfo border_bottom_color_getterinfo = {
    5157             :   { (JSJitGetterOp)get_border_bottom_color },
    5158             :   { prototypes::id::CSS2Properties },
    5159             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5160             :   JSJitInfo::Getter,
    5161             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5162             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5163             :   false,  /* isInfallible. False in setters. */
    5164             :   false,  /* isMovable.  Not relevant for setters. */
    5165             :   false, /* isEliminatable.  Not relevant for setters. */
    5166             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5167             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5168             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5169             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5170             : };
    5171             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5172             : static_assert(0 < 1, "There is no slot for us");
    5173             : static const JSJitInfo border_bottom_color_setterinfo = {
    5174             :   { (JSJitGetterOp)set_border_bottom_color },
    5175             :   { prototypes::id::CSS2Properties },
    5176             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5177             :   JSJitInfo::Setter,
    5178             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5179             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5180             :   false,  /* isInfallible. False in setters. */
    5181             :   false,  /* isMovable.  Not relevant for setters. */
    5182             :   false, /* isEliminatable.  Not relevant for setters. */
    5183             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5184             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5185             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5186             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5187             : };
    5188             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5189             : static_assert(0 < 1, "There is no slot for us");
    5190             : 
    5191             : static bool
    5192           0 : get_MozBorderBottomColors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5193             : {
    5194           0 :   binding_detail::FastErrorResult rv;
    5195           0 :   DOMString result;
    5196           0 :   self->GetMozBorderBottomColors(result, rv);
    5197           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5198           0 :     return false;
    5199             :   }
    5200           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5201           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5202           0 :     return false;
    5203             :   }
    5204           0 :   return true;
    5205             : }
    5206             : 
    5207             : static bool
    5208           0 : set_MozBorderBottomColors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5209             : {
    5210           0 :   binding_detail::FakeString arg0;
    5211           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5212           0 :     return false;
    5213             :   }
    5214           0 :   binding_detail::FastErrorResult rv;
    5215           0 :   self->SetMozBorderBottomColors(NonNullHelper(Constify(arg0)), rv);
    5216           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5217           0 :     return false;
    5218             :   }
    5219           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5220             : 
    5221           0 :   return true;
    5222             : }
    5223             : 
    5224             : static const JSJitInfo MozBorderBottomColors_getterinfo = {
    5225             :   { (JSJitGetterOp)get_MozBorderBottomColors },
    5226             :   { prototypes::id::CSS2Properties },
    5227             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5228             :   JSJitInfo::Getter,
    5229             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5230             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5231             :   false,  /* isInfallible. False in setters. */
    5232             :   false,  /* isMovable.  Not relevant for setters. */
    5233             :   false, /* isEliminatable.  Not relevant for setters. */
    5234             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5235             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5236             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5237             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5238             : };
    5239             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5240             : static_assert(0 < 1, "There is no slot for us");
    5241             : static const JSJitInfo MozBorderBottomColors_setterinfo = {
    5242             :   { (JSJitGetterOp)set_MozBorderBottomColors },
    5243             :   { prototypes::id::CSS2Properties },
    5244             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5245             :   JSJitInfo::Setter,
    5246             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5247             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5248             :   false,  /* isInfallible. False in setters. */
    5249             :   false,  /* isMovable.  Not relevant for setters. */
    5250             :   false, /* isEliminatable.  Not relevant for setters. */
    5251             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5252             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5253             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5254             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5255             : };
    5256             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5257             : static_assert(0 < 1, "There is no slot for us");
    5258             : 
    5259             : static bool
    5260           0 : get__moz_border_bottom_colors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5261             : {
    5262           0 :   binding_detail::FastErrorResult rv;
    5263           0 :   DOMString result;
    5264           0 :   self->GetMozBorderBottomColors(result, rv);
    5265           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5266           0 :     return false;
    5267             :   }
    5268           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5269           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5270           0 :     return false;
    5271             :   }
    5272           0 :   return true;
    5273             : }
    5274             : 
    5275             : static bool
    5276           0 : set__moz_border_bottom_colors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5277             : {
    5278           0 :   binding_detail::FakeString arg0;
    5279           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5280           0 :     return false;
    5281             :   }
    5282           0 :   binding_detail::FastErrorResult rv;
    5283           0 :   self->SetMozBorderBottomColors(NonNullHelper(Constify(arg0)), rv);
    5284           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5285           0 :     return false;
    5286             :   }
    5287           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5288             : 
    5289           0 :   return true;
    5290             : }
    5291             : 
    5292             : static const JSJitInfo _moz_border_bottom_colors_getterinfo = {
    5293             :   { (JSJitGetterOp)get__moz_border_bottom_colors },
    5294             :   { prototypes::id::CSS2Properties },
    5295             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5296             :   JSJitInfo::Getter,
    5297             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5298             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5299             :   false,  /* isInfallible. False in setters. */
    5300             :   false,  /* isMovable.  Not relevant for setters. */
    5301             :   false, /* isEliminatable.  Not relevant for setters. */
    5302             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5303             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5304             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5305             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5306             : };
    5307             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5308             : static_assert(0 < 1, "There is no slot for us");
    5309             : static const JSJitInfo _moz_border_bottom_colors_setterinfo = {
    5310             :   { (JSJitGetterOp)set__moz_border_bottom_colors },
    5311             :   { prototypes::id::CSS2Properties },
    5312             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5313             :   JSJitInfo::Setter,
    5314             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5315             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5316             :   false,  /* isInfallible. False in setters. */
    5317             :   false,  /* isMovable.  Not relevant for setters. */
    5318             :   false, /* isEliminatable.  Not relevant for setters. */
    5319             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5320             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5321             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5322             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5323             : };
    5324             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5325             : static_assert(0 < 1, "There is no slot for us");
    5326             : 
    5327             : static bool
    5328           0 : get_borderBottomLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5329             : {
    5330           0 :   binding_detail::FastErrorResult rv;
    5331           0 :   DOMString result;
    5332           0 :   self->GetBorderBottomLeftRadius(result, rv);
    5333           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5334           0 :     return false;
    5335             :   }
    5336           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5337           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5338           0 :     return false;
    5339             :   }
    5340           0 :   return true;
    5341             : }
    5342             : 
    5343             : static bool
    5344           0 : set_borderBottomLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5345             : {
    5346           0 :   binding_detail::FakeString arg0;
    5347           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5348           0 :     return false;
    5349             :   }
    5350           0 :   binding_detail::FastErrorResult rv;
    5351           0 :   self->SetBorderBottomLeftRadius(NonNullHelper(Constify(arg0)), rv);
    5352           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5353           0 :     return false;
    5354             :   }
    5355           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5356             : 
    5357           0 :   return true;
    5358             : }
    5359             : 
    5360             : static const JSJitInfo borderBottomLeftRadius_getterinfo = {
    5361             :   { (JSJitGetterOp)get_borderBottomLeftRadius },
    5362             :   { prototypes::id::CSS2Properties },
    5363             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5364             :   JSJitInfo::Getter,
    5365             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5366             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5367             :   false,  /* isInfallible. False in setters. */
    5368             :   false,  /* isMovable.  Not relevant for setters. */
    5369             :   false, /* isEliminatable.  Not relevant for setters. */
    5370             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5371             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5372             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5373             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5374             : };
    5375             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5376             : static_assert(0 < 1, "There is no slot for us");
    5377             : static const JSJitInfo borderBottomLeftRadius_setterinfo = {
    5378             :   { (JSJitGetterOp)set_borderBottomLeftRadius },
    5379             :   { prototypes::id::CSS2Properties },
    5380             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5381             :   JSJitInfo::Setter,
    5382             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5383             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5384             :   false,  /* isInfallible. False in setters. */
    5385             :   false,  /* isMovable.  Not relevant for setters. */
    5386             :   false, /* isEliminatable.  Not relevant for setters. */
    5387             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5388             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5389             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5390             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5391             : };
    5392             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5393             : static_assert(0 < 1, "There is no slot for us");
    5394             : 
    5395             : static bool
    5396           0 : get_border_bottom_left_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5397             : {
    5398           0 :   binding_detail::FastErrorResult rv;
    5399           0 :   DOMString result;
    5400           0 :   self->GetBorderBottomLeftRadius(result, rv);
    5401           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5402           0 :     return false;
    5403             :   }
    5404           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5405           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5406           0 :     return false;
    5407             :   }
    5408           0 :   return true;
    5409             : }
    5410             : 
    5411             : static bool
    5412           0 : set_border_bottom_left_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5413             : {
    5414           0 :   binding_detail::FakeString arg0;
    5415           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5416           0 :     return false;
    5417             :   }
    5418           0 :   binding_detail::FastErrorResult rv;
    5419           0 :   self->SetBorderBottomLeftRadius(NonNullHelper(Constify(arg0)), rv);
    5420           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5421           0 :     return false;
    5422             :   }
    5423           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5424             : 
    5425           0 :   return true;
    5426             : }
    5427             : 
    5428             : static const JSJitInfo border_bottom_left_radius_getterinfo = {
    5429             :   { (JSJitGetterOp)get_border_bottom_left_radius },
    5430             :   { prototypes::id::CSS2Properties },
    5431             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5432             :   JSJitInfo::Getter,
    5433             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5434             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5435             :   false,  /* isInfallible. False in setters. */
    5436             :   false,  /* isMovable.  Not relevant for setters. */
    5437             :   false, /* isEliminatable.  Not relevant for setters. */
    5438             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5439             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5440             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5441             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5442             : };
    5443             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5444             : static_assert(0 < 1, "There is no slot for us");
    5445             : static const JSJitInfo border_bottom_left_radius_setterinfo = {
    5446             :   { (JSJitGetterOp)set_border_bottom_left_radius },
    5447             :   { prototypes::id::CSS2Properties },
    5448             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5449             :   JSJitInfo::Setter,
    5450             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5451             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5452             :   false,  /* isInfallible. False in setters. */
    5453             :   false,  /* isMovable.  Not relevant for setters. */
    5454             :   false, /* isEliminatable.  Not relevant for setters. */
    5455             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5456             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5457             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5458             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5459             : };
    5460             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5461             : static_assert(0 < 1, "There is no slot for us");
    5462             : 
    5463             : static bool
    5464           0 : get_borderBottomRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5465             : {
    5466           0 :   binding_detail::FastErrorResult rv;
    5467           0 :   DOMString result;
    5468           0 :   self->GetBorderBottomRightRadius(result, rv);
    5469           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5470           0 :     return false;
    5471             :   }
    5472           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5473           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5474           0 :     return false;
    5475             :   }
    5476           0 :   return true;
    5477             : }
    5478             : 
    5479             : static bool
    5480           0 : set_borderBottomRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5481             : {
    5482           0 :   binding_detail::FakeString arg0;
    5483           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5484           0 :     return false;
    5485             :   }
    5486           0 :   binding_detail::FastErrorResult rv;
    5487           0 :   self->SetBorderBottomRightRadius(NonNullHelper(Constify(arg0)), rv);
    5488           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5489           0 :     return false;
    5490             :   }
    5491           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5492             : 
    5493           0 :   return true;
    5494             : }
    5495             : 
    5496             : static const JSJitInfo borderBottomRightRadius_getterinfo = {
    5497             :   { (JSJitGetterOp)get_borderBottomRightRadius },
    5498             :   { prototypes::id::CSS2Properties },
    5499             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5500             :   JSJitInfo::Getter,
    5501             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5502             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5503             :   false,  /* isInfallible. False in setters. */
    5504             :   false,  /* isMovable.  Not relevant for setters. */
    5505             :   false, /* isEliminatable.  Not relevant for setters. */
    5506             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5507             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5508             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5509             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5510             : };
    5511             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5512             : static_assert(0 < 1, "There is no slot for us");
    5513             : static const JSJitInfo borderBottomRightRadius_setterinfo = {
    5514             :   { (JSJitGetterOp)set_borderBottomRightRadius },
    5515             :   { prototypes::id::CSS2Properties },
    5516             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5517             :   JSJitInfo::Setter,
    5518             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5519             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5520             :   false,  /* isInfallible. False in setters. */
    5521             :   false,  /* isMovable.  Not relevant for setters. */
    5522             :   false, /* isEliminatable.  Not relevant for setters. */
    5523             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5524             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5525             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5526             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5527             : };
    5528             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5529             : static_assert(0 < 1, "There is no slot for us");
    5530             : 
    5531             : static bool
    5532           0 : get_border_bottom_right_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5533             : {
    5534           0 :   binding_detail::FastErrorResult rv;
    5535           0 :   DOMString result;
    5536           0 :   self->GetBorderBottomRightRadius(result, rv);
    5537           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5538           0 :     return false;
    5539             :   }
    5540           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5541           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5542           0 :     return false;
    5543             :   }
    5544           0 :   return true;
    5545             : }
    5546             : 
    5547             : static bool
    5548           0 : set_border_bottom_right_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5549             : {
    5550           0 :   binding_detail::FakeString arg0;
    5551           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5552           0 :     return false;
    5553             :   }
    5554           0 :   binding_detail::FastErrorResult rv;
    5555           0 :   self->SetBorderBottomRightRadius(NonNullHelper(Constify(arg0)), rv);
    5556           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5557           0 :     return false;
    5558             :   }
    5559           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5560             : 
    5561           0 :   return true;
    5562             : }
    5563             : 
    5564             : static const JSJitInfo border_bottom_right_radius_getterinfo = {
    5565             :   { (JSJitGetterOp)get_border_bottom_right_radius },
    5566             :   { prototypes::id::CSS2Properties },
    5567             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5568             :   JSJitInfo::Getter,
    5569             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5570             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5571             :   false,  /* isInfallible. False in setters. */
    5572             :   false,  /* isMovable.  Not relevant for setters. */
    5573             :   false, /* isEliminatable.  Not relevant for setters. */
    5574             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5575             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5576             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5577             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5578             : };
    5579             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5580             : static_assert(0 < 1, "There is no slot for us");
    5581             : static const JSJitInfo border_bottom_right_radius_setterinfo = {
    5582             :   { (JSJitGetterOp)set_border_bottom_right_radius },
    5583             :   { prototypes::id::CSS2Properties },
    5584             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5585             :   JSJitInfo::Setter,
    5586             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5587             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5588             :   false,  /* isInfallible. False in setters. */
    5589             :   false,  /* isMovable.  Not relevant for setters. */
    5590             :   false, /* isEliminatable.  Not relevant for setters. */
    5591             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5592             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5593             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5594             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5595             : };
    5596             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5597             : static_assert(0 < 1, "There is no slot for us");
    5598             : 
    5599             : static bool
    5600           0 : get_borderBottomStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5601             : {
    5602           0 :   binding_detail::FastErrorResult rv;
    5603           0 :   DOMString result;
    5604           0 :   self->GetBorderBottomStyle(result, rv);
    5605           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5606           0 :     return false;
    5607             :   }
    5608           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5609           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5610           0 :     return false;
    5611             :   }
    5612           0 :   return true;
    5613             : }
    5614             : 
    5615             : static bool
    5616           0 : set_borderBottomStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5617             : {
    5618           0 :   binding_detail::FakeString arg0;
    5619           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5620           0 :     return false;
    5621             :   }
    5622           0 :   binding_detail::FastErrorResult rv;
    5623           0 :   self->SetBorderBottomStyle(NonNullHelper(Constify(arg0)), rv);
    5624           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5625           0 :     return false;
    5626             :   }
    5627           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5628             : 
    5629           0 :   return true;
    5630             : }
    5631             : 
    5632             : static const JSJitInfo borderBottomStyle_getterinfo = {
    5633             :   { (JSJitGetterOp)get_borderBottomStyle },
    5634             :   { prototypes::id::CSS2Properties },
    5635             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5636             :   JSJitInfo::Getter,
    5637             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5638             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5639             :   false,  /* isInfallible. False in setters. */
    5640             :   false,  /* isMovable.  Not relevant for setters. */
    5641             :   false, /* isEliminatable.  Not relevant for setters. */
    5642             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5643             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5644             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5645             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5646             : };
    5647             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5648             : static_assert(0 < 1, "There is no slot for us");
    5649             : static const JSJitInfo borderBottomStyle_setterinfo = {
    5650             :   { (JSJitGetterOp)set_borderBottomStyle },
    5651             :   { prototypes::id::CSS2Properties },
    5652             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5653             :   JSJitInfo::Setter,
    5654             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5655             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5656             :   false,  /* isInfallible. False in setters. */
    5657             :   false,  /* isMovable.  Not relevant for setters. */
    5658             :   false, /* isEliminatable.  Not relevant for setters. */
    5659             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5660             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5661             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5662             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5663             : };
    5664             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5665             : static_assert(0 < 1, "There is no slot for us");
    5666             : 
    5667             : static bool
    5668           0 : get_border_bottom_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5669             : {
    5670           0 :   binding_detail::FastErrorResult rv;
    5671           0 :   DOMString result;
    5672           0 :   self->GetBorderBottomStyle(result, rv);
    5673           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5674           0 :     return false;
    5675             :   }
    5676           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5677           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5678           0 :     return false;
    5679             :   }
    5680           0 :   return true;
    5681             : }
    5682             : 
    5683             : static bool
    5684           0 : set_border_bottom_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5685             : {
    5686           0 :   binding_detail::FakeString arg0;
    5687           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5688           0 :     return false;
    5689             :   }
    5690           0 :   binding_detail::FastErrorResult rv;
    5691           0 :   self->SetBorderBottomStyle(NonNullHelper(Constify(arg0)), rv);
    5692           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5693           0 :     return false;
    5694             :   }
    5695           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5696             : 
    5697           0 :   return true;
    5698             : }
    5699             : 
    5700             : static const JSJitInfo border_bottom_style_getterinfo = {
    5701             :   { (JSJitGetterOp)get_border_bottom_style },
    5702             :   { prototypes::id::CSS2Properties },
    5703             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5704             :   JSJitInfo::Getter,
    5705             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5706             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5707             :   false,  /* isInfallible. False in setters. */
    5708             :   false,  /* isMovable.  Not relevant for setters. */
    5709             :   false, /* isEliminatable.  Not relevant for setters. */
    5710             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5711             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5712             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5713             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5714             : };
    5715             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5716             : static_assert(0 < 1, "There is no slot for us");
    5717             : static const JSJitInfo border_bottom_style_setterinfo = {
    5718             :   { (JSJitGetterOp)set_border_bottom_style },
    5719             :   { prototypes::id::CSS2Properties },
    5720             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5721             :   JSJitInfo::Setter,
    5722             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5723             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5724             :   false,  /* isInfallible. False in setters. */
    5725             :   false,  /* isMovable.  Not relevant for setters. */
    5726             :   false, /* isEliminatable.  Not relevant for setters. */
    5727             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5728             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5729             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5730             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5731             : };
    5732             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5733             : static_assert(0 < 1, "There is no slot for us");
    5734             : 
    5735             : static bool
    5736           0 : get_borderBottomWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5737             : {
    5738           0 :   binding_detail::FastErrorResult rv;
    5739           0 :   DOMString result;
    5740           0 :   self->GetBorderBottomWidth(result, rv);
    5741           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5742           0 :     return false;
    5743             :   }
    5744           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5745           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5746           0 :     return false;
    5747             :   }
    5748           0 :   return true;
    5749             : }
    5750             : 
    5751             : static bool
    5752           0 : set_borderBottomWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5753             : {
    5754           0 :   binding_detail::FakeString arg0;
    5755           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5756           0 :     return false;
    5757             :   }
    5758           0 :   binding_detail::FastErrorResult rv;
    5759           0 :   self->SetBorderBottomWidth(NonNullHelper(Constify(arg0)), rv);
    5760           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5761           0 :     return false;
    5762             :   }
    5763           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5764             : 
    5765           0 :   return true;
    5766             : }
    5767             : 
    5768             : static const JSJitInfo borderBottomWidth_getterinfo = {
    5769             :   { (JSJitGetterOp)get_borderBottomWidth },
    5770             :   { prototypes::id::CSS2Properties },
    5771             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5772             :   JSJitInfo::Getter,
    5773             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5774             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5775             :   false,  /* isInfallible. False in setters. */
    5776             :   false,  /* isMovable.  Not relevant for setters. */
    5777             :   false, /* isEliminatable.  Not relevant for setters. */
    5778             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5779             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5780             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5781             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5782             : };
    5783             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5784             : static_assert(0 < 1, "There is no slot for us");
    5785             : static const JSJitInfo borderBottomWidth_setterinfo = {
    5786             :   { (JSJitGetterOp)set_borderBottomWidth },
    5787             :   { prototypes::id::CSS2Properties },
    5788             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5789             :   JSJitInfo::Setter,
    5790             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5791             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5792             :   false,  /* isInfallible. False in setters. */
    5793             :   false,  /* isMovable.  Not relevant for setters. */
    5794             :   false, /* isEliminatable.  Not relevant for setters. */
    5795             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5796             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5797             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5798             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5799             : };
    5800             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5801             : static_assert(0 < 1, "There is no slot for us");
    5802             : 
    5803             : static bool
    5804           0 : get_border_bottom_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5805             : {
    5806           0 :   binding_detail::FastErrorResult rv;
    5807           0 :   DOMString result;
    5808           0 :   self->GetBorderBottomWidth(result, rv);
    5809           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5810           0 :     return false;
    5811             :   }
    5812           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5813           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5814           0 :     return false;
    5815             :   }
    5816           0 :   return true;
    5817             : }
    5818             : 
    5819             : static bool
    5820           0 : set_border_bottom_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5821             : {
    5822           0 :   binding_detail::FakeString arg0;
    5823           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5824           0 :     return false;
    5825             :   }
    5826           0 :   binding_detail::FastErrorResult rv;
    5827           0 :   self->SetBorderBottomWidth(NonNullHelper(Constify(arg0)), rv);
    5828           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5829           0 :     return false;
    5830             :   }
    5831           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5832             : 
    5833           0 :   return true;
    5834             : }
    5835             : 
    5836             : static const JSJitInfo border_bottom_width_getterinfo = {
    5837             :   { (JSJitGetterOp)get_border_bottom_width },
    5838             :   { prototypes::id::CSS2Properties },
    5839             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5840             :   JSJitInfo::Getter,
    5841             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5842             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5843             :   false,  /* isInfallible. False in setters. */
    5844             :   false,  /* isMovable.  Not relevant for setters. */
    5845             :   false, /* isEliminatable.  Not relevant for setters. */
    5846             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5847             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5848             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5849             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5850             : };
    5851             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5852             : static_assert(0 < 1, "There is no slot for us");
    5853             : static const JSJitInfo border_bottom_width_setterinfo = {
    5854             :   { (JSJitGetterOp)set_border_bottom_width },
    5855             :   { prototypes::id::CSS2Properties },
    5856             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5857             :   JSJitInfo::Setter,
    5858             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5859             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5860             :   false,  /* isInfallible. False in setters. */
    5861             :   false,  /* isMovable.  Not relevant for setters. */
    5862             :   false, /* isEliminatable.  Not relevant for setters. */
    5863             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5864             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5865             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5866             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5867             : };
    5868             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5869             : static_assert(0 < 1, "There is no slot for us");
    5870             : 
    5871             : static bool
    5872           0 : get_borderCollapse(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5873             : {
    5874           0 :   binding_detail::FastErrorResult rv;
    5875           0 :   DOMString result;
    5876           0 :   self->GetBorderCollapse(result, rv);
    5877           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5878           0 :     return false;
    5879             :   }
    5880           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5881           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5882           0 :     return false;
    5883             :   }
    5884           0 :   return true;
    5885             : }
    5886             : 
    5887             : static bool
    5888           0 : set_borderCollapse(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5889             : {
    5890           0 :   binding_detail::FakeString arg0;
    5891           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5892           0 :     return false;
    5893             :   }
    5894           0 :   binding_detail::FastErrorResult rv;
    5895           0 :   self->SetBorderCollapse(NonNullHelper(Constify(arg0)), rv);
    5896           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5897           0 :     return false;
    5898             :   }
    5899           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5900             : 
    5901           0 :   return true;
    5902             : }
    5903             : 
    5904             : static const JSJitInfo borderCollapse_getterinfo = {
    5905             :   { (JSJitGetterOp)get_borderCollapse },
    5906             :   { prototypes::id::CSS2Properties },
    5907             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5908             :   JSJitInfo::Getter,
    5909             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5910             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5911             :   false,  /* isInfallible. False in setters. */
    5912             :   false,  /* isMovable.  Not relevant for setters. */
    5913             :   false, /* isEliminatable.  Not relevant for setters. */
    5914             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5915             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5916             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5917             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5918             : };
    5919             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5920             : static_assert(0 < 1, "There is no slot for us");
    5921             : static const JSJitInfo borderCollapse_setterinfo = {
    5922             :   { (JSJitGetterOp)set_borderCollapse },
    5923             :   { prototypes::id::CSS2Properties },
    5924             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5925             :   JSJitInfo::Setter,
    5926             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5927             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5928             :   false,  /* isInfallible. False in setters. */
    5929             :   false,  /* isMovable.  Not relevant for setters. */
    5930             :   false, /* isEliminatable.  Not relevant for setters. */
    5931             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5932             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5933             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5934             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5935             : };
    5936             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5937             : static_assert(0 < 1, "There is no slot for us");
    5938             : 
    5939             : static bool
    5940           0 : get_border_collapse(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    5941             : {
    5942           0 :   binding_detail::FastErrorResult rv;
    5943           0 :   DOMString result;
    5944           0 :   self->GetBorderCollapse(result, rv);
    5945           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5946           0 :     return false;
    5947             :   }
    5948           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5949           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    5950           0 :     return false;
    5951             :   }
    5952           0 :   return true;
    5953             : }
    5954             : 
    5955             : static bool
    5956           0 : set_border_collapse(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    5957             : {
    5958           0 :   binding_detail::FakeString arg0;
    5959           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    5960           0 :     return false;
    5961             :   }
    5962           0 :   binding_detail::FastErrorResult rv;
    5963           0 :   self->SetBorderCollapse(NonNullHelper(Constify(arg0)), rv);
    5964           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    5965           0 :     return false;
    5966             :   }
    5967           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    5968             : 
    5969           0 :   return true;
    5970             : }
    5971             : 
    5972             : static const JSJitInfo border_collapse_getterinfo = {
    5973             :   { (JSJitGetterOp)get_border_collapse },
    5974             :   { prototypes::id::CSS2Properties },
    5975             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5976             :   JSJitInfo::Getter,
    5977             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5978             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    5979             :   false,  /* isInfallible. False in setters. */
    5980             :   false,  /* isMovable.  Not relevant for setters. */
    5981             :   false, /* isEliminatable.  Not relevant for setters. */
    5982             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    5983             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    5984             :   false,  /* isTypedMethod.  Only relevant for methods. */
    5985             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    5986             : };
    5987             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    5988             : static_assert(0 < 1, "There is no slot for us");
    5989             : static const JSJitInfo border_collapse_setterinfo = {
    5990             :   { (JSJitGetterOp)set_border_collapse },
    5991             :   { prototypes::id::CSS2Properties },
    5992             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    5993             :   JSJitInfo::Setter,
    5994             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    5995             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    5996             :   false,  /* isInfallible. False in setters. */
    5997             :   false,  /* isMovable.  Not relevant for setters. */
    5998             :   false, /* isEliminatable.  Not relevant for setters. */
    5999             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6000             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6001             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6002             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6003             : };
    6004             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6005             : static_assert(0 < 1, "There is no slot for us");
    6006             : 
    6007             : static bool
    6008           0 : get_borderColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6009             : {
    6010           0 :   binding_detail::FastErrorResult rv;
    6011           0 :   DOMString result;
    6012           0 :   self->GetBorderColor(result, rv);
    6013           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6014           0 :     return false;
    6015             :   }
    6016           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6017           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6018           0 :     return false;
    6019             :   }
    6020           0 :   return true;
    6021             : }
    6022             : 
    6023             : static bool
    6024           0 : set_borderColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6025             : {
    6026           0 :   binding_detail::FakeString arg0;
    6027           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6028           0 :     return false;
    6029             :   }
    6030           0 :   binding_detail::FastErrorResult rv;
    6031           0 :   self->SetBorderColor(NonNullHelper(Constify(arg0)), rv);
    6032           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6033           0 :     return false;
    6034             :   }
    6035           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6036             : 
    6037           0 :   return true;
    6038             : }
    6039             : 
    6040             : static const JSJitInfo borderColor_getterinfo = {
    6041             :   { (JSJitGetterOp)get_borderColor },
    6042             :   { prototypes::id::CSS2Properties },
    6043             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6044             :   JSJitInfo::Getter,
    6045             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6046             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6047             :   false,  /* isInfallible. False in setters. */
    6048             :   false,  /* isMovable.  Not relevant for setters. */
    6049             :   false, /* isEliminatable.  Not relevant for setters. */
    6050             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6051             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6052             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6053             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6054             : };
    6055             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6056             : static_assert(0 < 1, "There is no slot for us");
    6057             : static const JSJitInfo borderColor_setterinfo = {
    6058             :   { (JSJitGetterOp)set_borderColor },
    6059             :   { prototypes::id::CSS2Properties },
    6060             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6061             :   JSJitInfo::Setter,
    6062             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6063             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6064             :   false,  /* isInfallible. False in setters. */
    6065             :   false,  /* isMovable.  Not relevant for setters. */
    6066             :   false, /* isEliminatable.  Not relevant for setters. */
    6067             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6068             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6069             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6070             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6071             : };
    6072             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6073             : static_assert(0 < 1, "There is no slot for us");
    6074             : 
    6075             : static bool
    6076           0 : get_border_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6077             : {
    6078           0 :   binding_detail::FastErrorResult rv;
    6079           0 :   DOMString result;
    6080           0 :   self->GetBorderColor(result, rv);
    6081           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6082           0 :     return false;
    6083             :   }
    6084           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6085           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6086           0 :     return false;
    6087             :   }
    6088           0 :   return true;
    6089             : }
    6090             : 
    6091             : static bool
    6092           0 : set_border_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6093             : {
    6094           0 :   binding_detail::FakeString arg0;
    6095           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6096           0 :     return false;
    6097             :   }
    6098           0 :   binding_detail::FastErrorResult rv;
    6099           0 :   self->SetBorderColor(NonNullHelper(Constify(arg0)), rv);
    6100           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6101           0 :     return false;
    6102             :   }
    6103           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6104             : 
    6105           0 :   return true;
    6106             : }
    6107             : 
    6108             : static const JSJitInfo border_color_getterinfo = {
    6109             :   { (JSJitGetterOp)get_border_color },
    6110             :   { prototypes::id::CSS2Properties },
    6111             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6112             :   JSJitInfo::Getter,
    6113             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6114             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6115             :   false,  /* isInfallible. False in setters. */
    6116             :   false,  /* isMovable.  Not relevant for setters. */
    6117             :   false, /* isEliminatable.  Not relevant for setters. */
    6118             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6119             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6120             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6121             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6122             : };
    6123             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6124             : static_assert(0 < 1, "There is no slot for us");
    6125             : static const JSJitInfo border_color_setterinfo = {
    6126             :   { (JSJitGetterOp)set_border_color },
    6127             :   { prototypes::id::CSS2Properties },
    6128             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6129             :   JSJitInfo::Setter,
    6130             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6131             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6132             :   false,  /* isInfallible. False in setters. */
    6133             :   false,  /* isMovable.  Not relevant for setters. */
    6134             :   false, /* isEliminatable.  Not relevant for setters. */
    6135             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6136             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6137             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6138             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6139             : };
    6140             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6141             : static_assert(0 < 1, "There is no slot for us");
    6142             : 
    6143             : static bool
    6144           0 : get_borderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6145             : {
    6146           0 :   binding_detail::FastErrorResult rv;
    6147           0 :   DOMString result;
    6148           0 :   self->GetBorderImage(result, rv);
    6149           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6150           0 :     return false;
    6151             :   }
    6152           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6153           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6154           0 :     return false;
    6155             :   }
    6156           0 :   return true;
    6157             : }
    6158             : 
    6159             : static bool
    6160           0 : set_borderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6161             : {
    6162           0 :   binding_detail::FakeString arg0;
    6163           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6164           0 :     return false;
    6165             :   }
    6166           0 :   binding_detail::FastErrorResult rv;
    6167           0 :   self->SetBorderImage(NonNullHelper(Constify(arg0)), rv);
    6168           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6169           0 :     return false;
    6170             :   }
    6171           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6172             : 
    6173           0 :   return true;
    6174             : }
    6175             : 
    6176             : static const JSJitInfo borderImage_getterinfo = {
    6177             :   { (JSJitGetterOp)get_borderImage },
    6178             :   { prototypes::id::CSS2Properties },
    6179             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6180             :   JSJitInfo::Getter,
    6181             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6182             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6183             :   false,  /* isInfallible. False in setters. */
    6184             :   false,  /* isMovable.  Not relevant for setters. */
    6185             :   false, /* isEliminatable.  Not relevant for setters. */
    6186             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6187             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6188             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6189             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6190             : };
    6191             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6192             : static_assert(0 < 1, "There is no slot for us");
    6193             : static const JSJitInfo borderImage_setterinfo = {
    6194             :   { (JSJitGetterOp)set_borderImage },
    6195             :   { prototypes::id::CSS2Properties },
    6196             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6197             :   JSJitInfo::Setter,
    6198             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6199             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6200             :   false,  /* isInfallible. False in setters. */
    6201             :   false,  /* isMovable.  Not relevant for setters. */
    6202             :   false, /* isEliminatable.  Not relevant for setters. */
    6203             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6204             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6205             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6206             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6207             : };
    6208             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6209             : static_assert(0 < 1, "There is no slot for us");
    6210             : 
    6211             : static bool
    6212           0 : get_border_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6213             : {
    6214           0 :   binding_detail::FastErrorResult rv;
    6215           0 :   DOMString result;
    6216           0 :   self->GetBorderImage(result, rv);
    6217           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6218           0 :     return false;
    6219             :   }
    6220           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6221           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6222           0 :     return false;
    6223             :   }
    6224           0 :   return true;
    6225             : }
    6226             : 
    6227             : static bool
    6228           0 : set_border_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6229             : {
    6230           0 :   binding_detail::FakeString arg0;
    6231           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6232           0 :     return false;
    6233             :   }
    6234           0 :   binding_detail::FastErrorResult rv;
    6235           0 :   self->SetBorderImage(NonNullHelper(Constify(arg0)), rv);
    6236           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6237           0 :     return false;
    6238             :   }
    6239           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6240             : 
    6241           0 :   return true;
    6242             : }
    6243             : 
    6244             : static const JSJitInfo border_image_getterinfo = {
    6245             :   { (JSJitGetterOp)get_border_image },
    6246             :   { prototypes::id::CSS2Properties },
    6247             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6248             :   JSJitInfo::Getter,
    6249             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6250             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6251             :   false,  /* isInfallible. False in setters. */
    6252             :   false,  /* isMovable.  Not relevant for setters. */
    6253             :   false, /* isEliminatable.  Not relevant for setters. */
    6254             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6255             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6256             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6257             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6258             : };
    6259             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6260             : static_assert(0 < 1, "There is no slot for us");
    6261             : static const JSJitInfo border_image_setterinfo = {
    6262             :   { (JSJitGetterOp)set_border_image },
    6263             :   { prototypes::id::CSS2Properties },
    6264             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6265             :   JSJitInfo::Setter,
    6266             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6267             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6268             :   false,  /* isInfallible. False in setters. */
    6269             :   false,  /* isMovable.  Not relevant for setters. */
    6270             :   false, /* isEliminatable.  Not relevant for setters. */
    6271             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6272             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6273             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6274             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6275             : };
    6276             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6277             : static_assert(0 < 1, "There is no slot for us");
    6278             : 
    6279             : static bool
    6280           0 : get_borderImageOutset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6281             : {
    6282           0 :   binding_detail::FastErrorResult rv;
    6283           0 :   DOMString result;
    6284           0 :   self->GetBorderImageOutset(result, rv);
    6285           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6286           0 :     return false;
    6287             :   }
    6288           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6289           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6290           0 :     return false;
    6291             :   }
    6292           0 :   return true;
    6293             : }
    6294             : 
    6295             : static bool
    6296           0 : set_borderImageOutset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6297             : {
    6298           0 :   binding_detail::FakeString arg0;
    6299           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6300           0 :     return false;
    6301             :   }
    6302           0 :   binding_detail::FastErrorResult rv;
    6303           0 :   self->SetBorderImageOutset(NonNullHelper(Constify(arg0)), rv);
    6304           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6305           0 :     return false;
    6306             :   }
    6307           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6308             : 
    6309           0 :   return true;
    6310             : }
    6311             : 
    6312             : static const JSJitInfo borderImageOutset_getterinfo = {
    6313             :   { (JSJitGetterOp)get_borderImageOutset },
    6314             :   { prototypes::id::CSS2Properties },
    6315             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6316             :   JSJitInfo::Getter,
    6317             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6318             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6319             :   false,  /* isInfallible. False in setters. */
    6320             :   false,  /* isMovable.  Not relevant for setters. */
    6321             :   false, /* isEliminatable.  Not relevant for setters. */
    6322             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6323             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6324             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6325             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6326             : };
    6327             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6328             : static_assert(0 < 1, "There is no slot for us");
    6329             : static const JSJitInfo borderImageOutset_setterinfo = {
    6330             :   { (JSJitGetterOp)set_borderImageOutset },
    6331             :   { prototypes::id::CSS2Properties },
    6332             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6333             :   JSJitInfo::Setter,
    6334             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6335             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6336             :   false,  /* isInfallible. False in setters. */
    6337             :   false,  /* isMovable.  Not relevant for setters. */
    6338             :   false, /* isEliminatable.  Not relevant for setters. */
    6339             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6340             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6341             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6342             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6343             : };
    6344             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6345             : static_assert(0 < 1, "There is no slot for us");
    6346             : 
    6347             : static bool
    6348           0 : get_border_image_outset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6349             : {
    6350           0 :   binding_detail::FastErrorResult rv;
    6351           0 :   DOMString result;
    6352           0 :   self->GetBorderImageOutset(result, rv);
    6353           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6354           0 :     return false;
    6355             :   }
    6356           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6357           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6358           0 :     return false;
    6359             :   }
    6360           0 :   return true;
    6361             : }
    6362             : 
    6363             : static bool
    6364           0 : set_border_image_outset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6365             : {
    6366           0 :   binding_detail::FakeString arg0;
    6367           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6368           0 :     return false;
    6369             :   }
    6370           0 :   binding_detail::FastErrorResult rv;
    6371           0 :   self->SetBorderImageOutset(NonNullHelper(Constify(arg0)), rv);
    6372           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6373           0 :     return false;
    6374             :   }
    6375           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6376             : 
    6377           0 :   return true;
    6378             : }
    6379             : 
    6380             : static const JSJitInfo border_image_outset_getterinfo = {
    6381             :   { (JSJitGetterOp)get_border_image_outset },
    6382             :   { prototypes::id::CSS2Properties },
    6383             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6384             :   JSJitInfo::Getter,
    6385             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6386             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6387             :   false,  /* isInfallible. False in setters. */
    6388             :   false,  /* isMovable.  Not relevant for setters. */
    6389             :   false, /* isEliminatable.  Not relevant for setters. */
    6390             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6391             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6392             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6393             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6394             : };
    6395             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6396             : static_assert(0 < 1, "There is no slot for us");
    6397             : static const JSJitInfo border_image_outset_setterinfo = {
    6398             :   { (JSJitGetterOp)set_border_image_outset },
    6399             :   { prototypes::id::CSS2Properties },
    6400             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6401             :   JSJitInfo::Setter,
    6402             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6403             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6404             :   false,  /* isInfallible. False in setters. */
    6405             :   false,  /* isMovable.  Not relevant for setters. */
    6406             :   false, /* isEliminatable.  Not relevant for setters. */
    6407             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6408             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6409             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6410             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6411             : };
    6412             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6413             : static_assert(0 < 1, "There is no slot for us");
    6414             : 
    6415             : static bool
    6416           0 : get_borderImageRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6417             : {
    6418           0 :   binding_detail::FastErrorResult rv;
    6419           0 :   DOMString result;
    6420           0 :   self->GetBorderImageRepeat(result, rv);
    6421           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6422           0 :     return false;
    6423             :   }
    6424           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6425           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6426           0 :     return false;
    6427             :   }
    6428           0 :   return true;
    6429             : }
    6430             : 
    6431             : static bool
    6432           0 : set_borderImageRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6433             : {
    6434           0 :   binding_detail::FakeString arg0;
    6435           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6436           0 :     return false;
    6437             :   }
    6438           0 :   binding_detail::FastErrorResult rv;
    6439           0 :   self->SetBorderImageRepeat(NonNullHelper(Constify(arg0)), rv);
    6440           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6441           0 :     return false;
    6442             :   }
    6443           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6444             : 
    6445           0 :   return true;
    6446             : }
    6447             : 
    6448             : static const JSJitInfo borderImageRepeat_getterinfo = {
    6449             :   { (JSJitGetterOp)get_borderImageRepeat },
    6450             :   { prototypes::id::CSS2Properties },
    6451             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6452             :   JSJitInfo::Getter,
    6453             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6454             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6455             :   false,  /* isInfallible. False in setters. */
    6456             :   false,  /* isMovable.  Not relevant for setters. */
    6457             :   false, /* isEliminatable.  Not relevant for setters. */
    6458             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6459             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6460             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6461             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6462             : };
    6463             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6464             : static_assert(0 < 1, "There is no slot for us");
    6465             : static const JSJitInfo borderImageRepeat_setterinfo = {
    6466             :   { (JSJitGetterOp)set_borderImageRepeat },
    6467             :   { prototypes::id::CSS2Properties },
    6468             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6469             :   JSJitInfo::Setter,
    6470             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6471             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6472             :   false,  /* isInfallible. False in setters. */
    6473             :   false,  /* isMovable.  Not relevant for setters. */
    6474             :   false, /* isEliminatable.  Not relevant for setters. */
    6475             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6476             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6477             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6478             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6479             : };
    6480             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6481             : static_assert(0 < 1, "There is no slot for us");
    6482             : 
    6483             : static bool
    6484           0 : get_border_image_repeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6485             : {
    6486           0 :   binding_detail::FastErrorResult rv;
    6487           0 :   DOMString result;
    6488           0 :   self->GetBorderImageRepeat(result, rv);
    6489           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6490           0 :     return false;
    6491             :   }
    6492           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6493           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6494           0 :     return false;
    6495             :   }
    6496           0 :   return true;
    6497             : }
    6498             : 
    6499             : static bool
    6500           0 : set_border_image_repeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6501             : {
    6502           0 :   binding_detail::FakeString arg0;
    6503           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6504           0 :     return false;
    6505             :   }
    6506           0 :   binding_detail::FastErrorResult rv;
    6507           0 :   self->SetBorderImageRepeat(NonNullHelper(Constify(arg0)), rv);
    6508           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6509           0 :     return false;
    6510             :   }
    6511           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6512             : 
    6513           0 :   return true;
    6514             : }
    6515             : 
    6516             : static const JSJitInfo border_image_repeat_getterinfo = {
    6517             :   { (JSJitGetterOp)get_border_image_repeat },
    6518             :   { prototypes::id::CSS2Properties },
    6519             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6520             :   JSJitInfo::Getter,
    6521             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6522             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6523             :   false,  /* isInfallible. False in setters. */
    6524             :   false,  /* isMovable.  Not relevant for setters. */
    6525             :   false, /* isEliminatable.  Not relevant for setters. */
    6526             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6527             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6528             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6529             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6530             : };
    6531             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6532             : static_assert(0 < 1, "There is no slot for us");
    6533             : static const JSJitInfo border_image_repeat_setterinfo = {
    6534             :   { (JSJitGetterOp)set_border_image_repeat },
    6535             :   { prototypes::id::CSS2Properties },
    6536             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6537             :   JSJitInfo::Setter,
    6538             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6539             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6540             :   false,  /* isInfallible. False in setters. */
    6541             :   false,  /* isMovable.  Not relevant for setters. */
    6542             :   false, /* isEliminatable.  Not relevant for setters. */
    6543             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6544             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6545             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6546             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6547             : };
    6548             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6549             : static_assert(0 < 1, "There is no slot for us");
    6550             : 
    6551             : static bool
    6552           0 : get_borderImageSlice(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6553             : {
    6554           0 :   binding_detail::FastErrorResult rv;
    6555           0 :   DOMString result;
    6556           0 :   self->GetBorderImageSlice(result, rv);
    6557           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6558           0 :     return false;
    6559             :   }
    6560           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6561           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6562           0 :     return false;
    6563             :   }
    6564           0 :   return true;
    6565             : }
    6566             : 
    6567             : static bool
    6568           0 : set_borderImageSlice(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6569             : {
    6570           0 :   binding_detail::FakeString arg0;
    6571           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6572           0 :     return false;
    6573             :   }
    6574           0 :   binding_detail::FastErrorResult rv;
    6575           0 :   self->SetBorderImageSlice(NonNullHelper(Constify(arg0)), rv);
    6576           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6577           0 :     return false;
    6578             :   }
    6579           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6580             : 
    6581           0 :   return true;
    6582             : }
    6583             : 
    6584             : static const JSJitInfo borderImageSlice_getterinfo = {
    6585             :   { (JSJitGetterOp)get_borderImageSlice },
    6586             :   { prototypes::id::CSS2Properties },
    6587             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6588             :   JSJitInfo::Getter,
    6589             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6590             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6591             :   false,  /* isInfallible. False in setters. */
    6592             :   false,  /* isMovable.  Not relevant for setters. */
    6593             :   false, /* isEliminatable.  Not relevant for setters. */
    6594             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6595             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6596             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6597             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6598             : };
    6599             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6600             : static_assert(0 < 1, "There is no slot for us");
    6601             : static const JSJitInfo borderImageSlice_setterinfo = {
    6602             :   { (JSJitGetterOp)set_borderImageSlice },
    6603             :   { prototypes::id::CSS2Properties },
    6604             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6605             :   JSJitInfo::Setter,
    6606             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6607             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6608             :   false,  /* isInfallible. False in setters. */
    6609             :   false,  /* isMovable.  Not relevant for setters. */
    6610             :   false, /* isEliminatable.  Not relevant for setters. */
    6611             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6612             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6613             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6614             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6615             : };
    6616             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6617             : static_assert(0 < 1, "There is no slot for us");
    6618             : 
    6619             : static bool
    6620           0 : get_border_image_slice(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6621             : {
    6622           0 :   binding_detail::FastErrorResult rv;
    6623           0 :   DOMString result;
    6624           0 :   self->GetBorderImageSlice(result, rv);
    6625           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6626           0 :     return false;
    6627             :   }
    6628           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6629           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6630           0 :     return false;
    6631             :   }
    6632           0 :   return true;
    6633             : }
    6634             : 
    6635             : static bool
    6636           0 : set_border_image_slice(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6637             : {
    6638           0 :   binding_detail::FakeString arg0;
    6639           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6640           0 :     return false;
    6641             :   }
    6642           0 :   binding_detail::FastErrorResult rv;
    6643           0 :   self->SetBorderImageSlice(NonNullHelper(Constify(arg0)), rv);
    6644           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6645           0 :     return false;
    6646             :   }
    6647           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6648             : 
    6649           0 :   return true;
    6650             : }
    6651             : 
    6652             : static const JSJitInfo border_image_slice_getterinfo = {
    6653             :   { (JSJitGetterOp)get_border_image_slice },
    6654             :   { prototypes::id::CSS2Properties },
    6655             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6656             :   JSJitInfo::Getter,
    6657             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6658             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6659             :   false,  /* isInfallible. False in setters. */
    6660             :   false,  /* isMovable.  Not relevant for setters. */
    6661             :   false, /* isEliminatable.  Not relevant for setters. */
    6662             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6663             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6664             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6665             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6666             : };
    6667             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6668             : static_assert(0 < 1, "There is no slot for us");
    6669             : static const JSJitInfo border_image_slice_setterinfo = {
    6670             :   { (JSJitGetterOp)set_border_image_slice },
    6671             :   { prototypes::id::CSS2Properties },
    6672             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6673             :   JSJitInfo::Setter,
    6674             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6675             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6676             :   false,  /* isInfallible. False in setters. */
    6677             :   false,  /* isMovable.  Not relevant for setters. */
    6678             :   false, /* isEliminatable.  Not relevant for setters. */
    6679             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6680             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6681             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6682             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6683             : };
    6684             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6685             : static_assert(0 < 1, "There is no slot for us");
    6686             : 
    6687             : static bool
    6688           0 : get_borderImageSource(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6689             : {
    6690           0 :   binding_detail::FastErrorResult rv;
    6691           0 :   DOMString result;
    6692           0 :   self->GetBorderImageSource(result, rv);
    6693           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6694           0 :     return false;
    6695             :   }
    6696           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6697           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6698           0 :     return false;
    6699             :   }
    6700           0 :   return true;
    6701             : }
    6702             : 
    6703             : static bool
    6704           0 : set_borderImageSource(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6705             : {
    6706           0 :   binding_detail::FakeString arg0;
    6707           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6708           0 :     return false;
    6709             :   }
    6710           0 :   binding_detail::FastErrorResult rv;
    6711           0 :   self->SetBorderImageSource(NonNullHelper(Constify(arg0)), rv);
    6712           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6713           0 :     return false;
    6714             :   }
    6715           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6716             : 
    6717           0 :   return true;
    6718             : }
    6719             : 
    6720             : static const JSJitInfo borderImageSource_getterinfo = {
    6721             :   { (JSJitGetterOp)get_borderImageSource },
    6722             :   { prototypes::id::CSS2Properties },
    6723             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6724             :   JSJitInfo::Getter,
    6725             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6726             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6727             :   false,  /* isInfallible. False in setters. */
    6728             :   false,  /* isMovable.  Not relevant for setters. */
    6729             :   false, /* isEliminatable.  Not relevant for setters. */
    6730             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6731             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6732             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6733             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6734             : };
    6735             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6736             : static_assert(0 < 1, "There is no slot for us");
    6737             : static const JSJitInfo borderImageSource_setterinfo = {
    6738             :   { (JSJitGetterOp)set_borderImageSource },
    6739             :   { prototypes::id::CSS2Properties },
    6740             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6741             :   JSJitInfo::Setter,
    6742             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6743             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6744             :   false,  /* isInfallible. False in setters. */
    6745             :   false,  /* isMovable.  Not relevant for setters. */
    6746             :   false, /* isEliminatable.  Not relevant for setters. */
    6747             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6748             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6749             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6750             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6751             : };
    6752             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6753             : static_assert(0 < 1, "There is no slot for us");
    6754             : 
    6755             : static bool
    6756           0 : get_border_image_source(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6757             : {
    6758           0 :   binding_detail::FastErrorResult rv;
    6759           0 :   DOMString result;
    6760           0 :   self->GetBorderImageSource(result, rv);
    6761           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6762           0 :     return false;
    6763             :   }
    6764           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6765           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6766           0 :     return false;
    6767             :   }
    6768           0 :   return true;
    6769             : }
    6770             : 
    6771             : static bool
    6772           0 : set_border_image_source(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6773             : {
    6774           0 :   binding_detail::FakeString arg0;
    6775           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6776           0 :     return false;
    6777             :   }
    6778           0 :   binding_detail::FastErrorResult rv;
    6779           0 :   self->SetBorderImageSource(NonNullHelper(Constify(arg0)), rv);
    6780           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6781           0 :     return false;
    6782             :   }
    6783           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6784             : 
    6785           0 :   return true;
    6786             : }
    6787             : 
    6788             : static const JSJitInfo border_image_source_getterinfo = {
    6789             :   { (JSJitGetterOp)get_border_image_source },
    6790             :   { prototypes::id::CSS2Properties },
    6791             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6792             :   JSJitInfo::Getter,
    6793             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6794             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6795             :   false,  /* isInfallible. False in setters. */
    6796             :   false,  /* isMovable.  Not relevant for setters. */
    6797             :   false, /* isEliminatable.  Not relevant for setters. */
    6798             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6799             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6800             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6801             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6802             : };
    6803             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6804             : static_assert(0 < 1, "There is no slot for us");
    6805             : static const JSJitInfo border_image_source_setterinfo = {
    6806             :   { (JSJitGetterOp)set_border_image_source },
    6807             :   { prototypes::id::CSS2Properties },
    6808             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6809             :   JSJitInfo::Setter,
    6810             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6811             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6812             :   false,  /* isInfallible. False in setters. */
    6813             :   false,  /* isMovable.  Not relevant for setters. */
    6814             :   false, /* isEliminatable.  Not relevant for setters. */
    6815             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6816             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6817             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6818             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6819             : };
    6820             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6821             : static_assert(0 < 1, "There is no slot for us");
    6822             : 
    6823             : static bool
    6824           0 : get_borderImageWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6825             : {
    6826           0 :   binding_detail::FastErrorResult rv;
    6827           0 :   DOMString result;
    6828           0 :   self->GetBorderImageWidth(result, rv);
    6829           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6830           0 :     return false;
    6831             :   }
    6832           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6833           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6834           0 :     return false;
    6835             :   }
    6836           0 :   return true;
    6837             : }
    6838             : 
    6839             : static bool
    6840           0 : set_borderImageWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6841             : {
    6842           0 :   binding_detail::FakeString arg0;
    6843           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6844           0 :     return false;
    6845             :   }
    6846           0 :   binding_detail::FastErrorResult rv;
    6847           0 :   self->SetBorderImageWidth(NonNullHelper(Constify(arg0)), rv);
    6848           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6849           0 :     return false;
    6850             :   }
    6851           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6852             : 
    6853           0 :   return true;
    6854             : }
    6855             : 
    6856             : static const JSJitInfo borderImageWidth_getterinfo = {
    6857             :   { (JSJitGetterOp)get_borderImageWidth },
    6858             :   { prototypes::id::CSS2Properties },
    6859             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6860             :   JSJitInfo::Getter,
    6861             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6862             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6863             :   false,  /* isInfallible. False in setters. */
    6864             :   false,  /* isMovable.  Not relevant for setters. */
    6865             :   false, /* isEliminatable.  Not relevant for setters. */
    6866             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6867             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6868             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6869             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6870             : };
    6871             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6872             : static_assert(0 < 1, "There is no slot for us");
    6873             : static const JSJitInfo borderImageWidth_setterinfo = {
    6874             :   { (JSJitGetterOp)set_borderImageWidth },
    6875             :   { prototypes::id::CSS2Properties },
    6876             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6877             :   JSJitInfo::Setter,
    6878             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6879             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6880             :   false,  /* isInfallible. False in setters. */
    6881             :   false,  /* isMovable.  Not relevant for setters. */
    6882             :   false, /* isEliminatable.  Not relevant for setters. */
    6883             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6884             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6885             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6886             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6887             : };
    6888             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6889             : static_assert(0 < 1, "There is no slot for us");
    6890             : 
    6891             : static bool
    6892           0 : get_border_image_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6893             : {
    6894           0 :   binding_detail::FastErrorResult rv;
    6895           0 :   DOMString result;
    6896           0 :   self->GetBorderImageWidth(result, rv);
    6897           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6898           0 :     return false;
    6899             :   }
    6900           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6901           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6902           0 :     return false;
    6903             :   }
    6904           0 :   return true;
    6905             : }
    6906             : 
    6907             : static bool
    6908           0 : set_border_image_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6909             : {
    6910           0 :   binding_detail::FakeString arg0;
    6911           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6912           0 :     return false;
    6913             :   }
    6914           0 :   binding_detail::FastErrorResult rv;
    6915           0 :   self->SetBorderImageWidth(NonNullHelper(Constify(arg0)), rv);
    6916           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6917           0 :     return false;
    6918             :   }
    6919           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6920             : 
    6921           0 :   return true;
    6922             : }
    6923             : 
    6924             : static const JSJitInfo border_image_width_getterinfo = {
    6925             :   { (JSJitGetterOp)get_border_image_width },
    6926             :   { prototypes::id::CSS2Properties },
    6927             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6928             :   JSJitInfo::Getter,
    6929             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6930             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6931             :   false,  /* isInfallible. False in setters. */
    6932             :   false,  /* isMovable.  Not relevant for setters. */
    6933             :   false, /* isEliminatable.  Not relevant for setters. */
    6934             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6935             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6936             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6937             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6938             : };
    6939             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6940             : static_assert(0 < 1, "There is no slot for us");
    6941             : static const JSJitInfo border_image_width_setterinfo = {
    6942             :   { (JSJitGetterOp)set_border_image_width },
    6943             :   { prototypes::id::CSS2Properties },
    6944             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6945             :   JSJitInfo::Setter,
    6946             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6947             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    6948             :   false,  /* isInfallible. False in setters. */
    6949             :   false,  /* isMovable.  Not relevant for setters. */
    6950             :   false, /* isEliminatable.  Not relevant for setters. */
    6951             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    6952             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    6953             :   false,  /* isTypedMethod.  Only relevant for methods. */
    6954             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    6955             : };
    6956             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    6957             : static_assert(0 < 1, "There is no slot for us");
    6958             : 
    6959             : static bool
    6960           0 : get_borderInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    6961             : {
    6962           0 :   binding_detail::FastErrorResult rv;
    6963           0 :   DOMString result;
    6964           0 :   self->GetBorderInlineEnd(result, rv);
    6965           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6966           0 :     return false;
    6967             :   }
    6968           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6969           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    6970           0 :     return false;
    6971             :   }
    6972           0 :   return true;
    6973             : }
    6974             : 
    6975             : static bool
    6976           0 : set_borderInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    6977             : {
    6978           0 :   binding_detail::FakeString arg0;
    6979           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    6980           0 :     return false;
    6981             :   }
    6982           0 :   binding_detail::FastErrorResult rv;
    6983           0 :   self->SetBorderInlineEnd(NonNullHelper(Constify(arg0)), rv);
    6984           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    6985           0 :     return false;
    6986             :   }
    6987           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    6988             : 
    6989           0 :   return true;
    6990             : }
    6991             : 
    6992             : static const JSJitInfo borderInlineEnd_getterinfo = {
    6993             :   { (JSJitGetterOp)get_borderInlineEnd },
    6994             :   { prototypes::id::CSS2Properties },
    6995             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    6996             :   JSJitInfo::Getter,
    6997             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    6998             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    6999             :   false,  /* isInfallible. False in setters. */
    7000             :   false,  /* isMovable.  Not relevant for setters. */
    7001             :   false, /* isEliminatable.  Not relevant for setters. */
    7002             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7003             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7004             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7005             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7006             : };
    7007             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7008             : static_assert(0 < 1, "There is no slot for us");
    7009             : static const JSJitInfo borderInlineEnd_setterinfo = {
    7010             :   { (JSJitGetterOp)set_borderInlineEnd },
    7011             :   { prototypes::id::CSS2Properties },
    7012             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7013             :   JSJitInfo::Setter,
    7014             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7015             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7016             :   false,  /* isInfallible. False in setters. */
    7017             :   false,  /* isMovable.  Not relevant for setters. */
    7018             :   false, /* isEliminatable.  Not relevant for setters. */
    7019             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7020             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7021             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7022             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7023             : };
    7024             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7025             : static_assert(0 < 1, "There is no slot for us");
    7026             : 
    7027             : static bool
    7028           0 : get_border_inline_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7029             : {
    7030           0 :   binding_detail::FastErrorResult rv;
    7031           0 :   DOMString result;
    7032           0 :   self->GetBorderInlineEnd(result, rv);
    7033           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7034           0 :     return false;
    7035             :   }
    7036           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7037           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7038           0 :     return false;
    7039             :   }
    7040           0 :   return true;
    7041             : }
    7042             : 
    7043             : static bool
    7044           0 : set_border_inline_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7045             : {
    7046           0 :   binding_detail::FakeString arg0;
    7047           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7048           0 :     return false;
    7049             :   }
    7050           0 :   binding_detail::FastErrorResult rv;
    7051           0 :   self->SetBorderInlineEnd(NonNullHelper(Constify(arg0)), rv);
    7052           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7053           0 :     return false;
    7054             :   }
    7055           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7056             : 
    7057           0 :   return true;
    7058             : }
    7059             : 
    7060             : static const JSJitInfo border_inline_end_getterinfo = {
    7061             :   { (JSJitGetterOp)get_border_inline_end },
    7062             :   { prototypes::id::CSS2Properties },
    7063             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7064             :   JSJitInfo::Getter,
    7065             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7066             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7067             :   false,  /* isInfallible. False in setters. */
    7068             :   false,  /* isMovable.  Not relevant for setters. */
    7069             :   false, /* isEliminatable.  Not relevant for setters. */
    7070             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7071             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7072             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7073             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7074             : };
    7075             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7076             : static_assert(0 < 1, "There is no slot for us");
    7077             : static const JSJitInfo border_inline_end_setterinfo = {
    7078             :   { (JSJitGetterOp)set_border_inline_end },
    7079             :   { prototypes::id::CSS2Properties },
    7080             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7081             :   JSJitInfo::Setter,
    7082             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7083             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7084             :   false,  /* isInfallible. False in setters. */
    7085             :   false,  /* isMovable.  Not relevant for setters. */
    7086             :   false, /* isEliminatable.  Not relevant for setters. */
    7087             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7088             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7089             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7090             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7091             : };
    7092             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7093             : static_assert(0 < 1, "There is no slot for us");
    7094             : 
    7095             : static bool
    7096           0 : get_borderInlineEndColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7097             : {
    7098           0 :   binding_detail::FastErrorResult rv;
    7099           0 :   DOMString result;
    7100           0 :   self->GetBorderInlineEndColor(result, rv);
    7101           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7102           0 :     return false;
    7103             :   }
    7104           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7105           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7106           0 :     return false;
    7107             :   }
    7108           0 :   return true;
    7109             : }
    7110             : 
    7111             : static bool
    7112           0 : set_borderInlineEndColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7113             : {
    7114           0 :   binding_detail::FakeString arg0;
    7115           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7116           0 :     return false;
    7117             :   }
    7118           0 :   binding_detail::FastErrorResult rv;
    7119           0 :   self->SetBorderInlineEndColor(NonNullHelper(Constify(arg0)), rv);
    7120           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7121           0 :     return false;
    7122             :   }
    7123           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7124             : 
    7125           0 :   return true;
    7126             : }
    7127             : 
    7128             : static const JSJitInfo borderInlineEndColor_getterinfo = {
    7129             :   { (JSJitGetterOp)get_borderInlineEndColor },
    7130             :   { prototypes::id::CSS2Properties },
    7131             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7132             :   JSJitInfo::Getter,
    7133             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7134             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7135             :   false,  /* isInfallible. False in setters. */
    7136             :   false,  /* isMovable.  Not relevant for setters. */
    7137             :   false, /* isEliminatable.  Not relevant for setters. */
    7138             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7139             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7140             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7141             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7142             : };
    7143             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7144             : static_assert(0 < 1, "There is no slot for us");
    7145             : static const JSJitInfo borderInlineEndColor_setterinfo = {
    7146             :   { (JSJitGetterOp)set_borderInlineEndColor },
    7147             :   { prototypes::id::CSS2Properties },
    7148             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7149             :   JSJitInfo::Setter,
    7150             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7151             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7152             :   false,  /* isInfallible. False in setters. */
    7153             :   false,  /* isMovable.  Not relevant for setters. */
    7154             :   false, /* isEliminatable.  Not relevant for setters. */
    7155             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7156             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7157             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7158             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7159             : };
    7160             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7161             : static_assert(0 < 1, "There is no slot for us");
    7162             : 
    7163             : static bool
    7164           0 : get_border_inline_end_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7165             : {
    7166           0 :   binding_detail::FastErrorResult rv;
    7167           0 :   DOMString result;
    7168           0 :   self->GetBorderInlineEndColor(result, rv);
    7169           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7170           0 :     return false;
    7171             :   }
    7172           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7173           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7174           0 :     return false;
    7175             :   }
    7176           0 :   return true;
    7177             : }
    7178             : 
    7179             : static bool
    7180           0 : set_border_inline_end_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7181             : {
    7182           0 :   binding_detail::FakeString arg0;
    7183           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7184           0 :     return false;
    7185             :   }
    7186           0 :   binding_detail::FastErrorResult rv;
    7187           0 :   self->SetBorderInlineEndColor(NonNullHelper(Constify(arg0)), rv);
    7188           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7189           0 :     return false;
    7190             :   }
    7191           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7192             : 
    7193           0 :   return true;
    7194             : }
    7195             : 
    7196             : static const JSJitInfo border_inline_end_color_getterinfo = {
    7197             :   { (JSJitGetterOp)get_border_inline_end_color },
    7198             :   { prototypes::id::CSS2Properties },
    7199             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7200             :   JSJitInfo::Getter,
    7201             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7202             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7203             :   false,  /* isInfallible. False in setters. */
    7204             :   false,  /* isMovable.  Not relevant for setters. */
    7205             :   false, /* isEliminatable.  Not relevant for setters. */
    7206             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7207             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7208             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7209             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7210             : };
    7211             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7212             : static_assert(0 < 1, "There is no slot for us");
    7213             : static const JSJitInfo border_inline_end_color_setterinfo = {
    7214             :   { (JSJitGetterOp)set_border_inline_end_color },
    7215             :   { prototypes::id::CSS2Properties },
    7216             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7217             :   JSJitInfo::Setter,
    7218             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7219             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7220             :   false,  /* isInfallible. False in setters. */
    7221             :   false,  /* isMovable.  Not relevant for setters. */
    7222             :   false, /* isEliminatable.  Not relevant for setters. */
    7223             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7224             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7225             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7226             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7227             : };
    7228             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7229             : static_assert(0 < 1, "There is no slot for us");
    7230             : 
    7231             : static bool
    7232           0 : get_borderInlineEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7233             : {
    7234           0 :   binding_detail::FastErrorResult rv;
    7235           0 :   DOMString result;
    7236           0 :   self->GetBorderInlineEndStyle(result, rv);
    7237           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7238           0 :     return false;
    7239             :   }
    7240           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7241           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7242           0 :     return false;
    7243             :   }
    7244           0 :   return true;
    7245             : }
    7246             : 
    7247             : static bool
    7248           0 : set_borderInlineEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7249             : {
    7250           0 :   binding_detail::FakeString arg0;
    7251           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7252           0 :     return false;
    7253             :   }
    7254           0 :   binding_detail::FastErrorResult rv;
    7255           0 :   self->SetBorderInlineEndStyle(NonNullHelper(Constify(arg0)), rv);
    7256           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7257           0 :     return false;
    7258             :   }
    7259           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7260             : 
    7261           0 :   return true;
    7262             : }
    7263             : 
    7264             : static const JSJitInfo borderInlineEndStyle_getterinfo = {
    7265             :   { (JSJitGetterOp)get_borderInlineEndStyle },
    7266             :   { prototypes::id::CSS2Properties },
    7267             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7268             :   JSJitInfo::Getter,
    7269             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7270             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7271             :   false,  /* isInfallible. False in setters. */
    7272             :   false,  /* isMovable.  Not relevant for setters. */
    7273             :   false, /* isEliminatable.  Not relevant for setters. */
    7274             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7275             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7276             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7277             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7278             : };
    7279             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7280             : static_assert(0 < 1, "There is no slot for us");
    7281             : static const JSJitInfo borderInlineEndStyle_setterinfo = {
    7282             :   { (JSJitGetterOp)set_borderInlineEndStyle },
    7283             :   { prototypes::id::CSS2Properties },
    7284             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7285             :   JSJitInfo::Setter,
    7286             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7287             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7288             :   false,  /* isInfallible. False in setters. */
    7289             :   false,  /* isMovable.  Not relevant for setters. */
    7290             :   false, /* isEliminatable.  Not relevant for setters. */
    7291             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7292             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7293             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7294             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7295             : };
    7296             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7297             : static_assert(0 < 1, "There is no slot for us");
    7298             : 
    7299             : static bool
    7300           0 : get_border_inline_end_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7301             : {
    7302           0 :   binding_detail::FastErrorResult rv;
    7303           0 :   DOMString result;
    7304           0 :   self->GetBorderInlineEndStyle(result, rv);
    7305           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7306           0 :     return false;
    7307             :   }
    7308           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7309           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7310           0 :     return false;
    7311             :   }
    7312           0 :   return true;
    7313             : }
    7314             : 
    7315             : static bool
    7316           0 : set_border_inline_end_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7317             : {
    7318           0 :   binding_detail::FakeString arg0;
    7319           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7320           0 :     return false;
    7321             :   }
    7322           0 :   binding_detail::FastErrorResult rv;
    7323           0 :   self->SetBorderInlineEndStyle(NonNullHelper(Constify(arg0)), rv);
    7324           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7325           0 :     return false;
    7326             :   }
    7327           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7328             : 
    7329           0 :   return true;
    7330             : }
    7331             : 
    7332             : static const JSJitInfo border_inline_end_style_getterinfo = {
    7333             :   { (JSJitGetterOp)get_border_inline_end_style },
    7334             :   { prototypes::id::CSS2Properties },
    7335             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7336             :   JSJitInfo::Getter,
    7337             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7338             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7339             :   false,  /* isInfallible. False in setters. */
    7340             :   false,  /* isMovable.  Not relevant for setters. */
    7341             :   false, /* isEliminatable.  Not relevant for setters. */
    7342             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7343             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7344             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7345             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7346             : };
    7347             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7348             : static_assert(0 < 1, "There is no slot for us");
    7349             : static const JSJitInfo border_inline_end_style_setterinfo = {
    7350             :   { (JSJitGetterOp)set_border_inline_end_style },
    7351             :   { prototypes::id::CSS2Properties },
    7352             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7353             :   JSJitInfo::Setter,
    7354             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7355             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7356             :   false,  /* isInfallible. False in setters. */
    7357             :   false,  /* isMovable.  Not relevant for setters. */
    7358             :   false, /* isEliminatable.  Not relevant for setters. */
    7359             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7360             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7361             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7362             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7363             : };
    7364             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7365             : static_assert(0 < 1, "There is no slot for us");
    7366             : 
    7367             : static bool
    7368           0 : get_borderInlineEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7369             : {
    7370           0 :   binding_detail::FastErrorResult rv;
    7371           0 :   DOMString result;
    7372           0 :   self->GetBorderInlineEndWidth(result, rv);
    7373           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7374           0 :     return false;
    7375             :   }
    7376           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7377           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7378           0 :     return false;
    7379             :   }
    7380           0 :   return true;
    7381             : }
    7382             : 
    7383             : static bool
    7384           0 : set_borderInlineEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7385             : {
    7386           0 :   binding_detail::FakeString arg0;
    7387           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7388           0 :     return false;
    7389             :   }
    7390           0 :   binding_detail::FastErrorResult rv;
    7391           0 :   self->SetBorderInlineEndWidth(NonNullHelper(Constify(arg0)), rv);
    7392           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7393           0 :     return false;
    7394             :   }
    7395           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7396             : 
    7397           0 :   return true;
    7398             : }
    7399             : 
    7400             : static const JSJitInfo borderInlineEndWidth_getterinfo = {
    7401             :   { (JSJitGetterOp)get_borderInlineEndWidth },
    7402             :   { prototypes::id::CSS2Properties },
    7403             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7404             :   JSJitInfo::Getter,
    7405             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7406             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7407             :   false,  /* isInfallible. False in setters. */
    7408             :   false,  /* isMovable.  Not relevant for setters. */
    7409             :   false, /* isEliminatable.  Not relevant for setters. */
    7410             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7411             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7412             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7413             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7414             : };
    7415             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7416             : static_assert(0 < 1, "There is no slot for us");
    7417             : static const JSJitInfo borderInlineEndWidth_setterinfo = {
    7418             :   { (JSJitGetterOp)set_borderInlineEndWidth },
    7419             :   { prototypes::id::CSS2Properties },
    7420             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7421             :   JSJitInfo::Setter,
    7422             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7423             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7424             :   false,  /* isInfallible. False in setters. */
    7425             :   false,  /* isMovable.  Not relevant for setters. */
    7426             :   false, /* isEliminatable.  Not relevant for setters. */
    7427             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7428             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7429             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7430             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7431             : };
    7432             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7433             : static_assert(0 < 1, "There is no slot for us");
    7434             : 
    7435             : static bool
    7436           0 : get_border_inline_end_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7437             : {
    7438           0 :   binding_detail::FastErrorResult rv;
    7439           0 :   DOMString result;
    7440           0 :   self->GetBorderInlineEndWidth(result, rv);
    7441           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7442           0 :     return false;
    7443             :   }
    7444           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7445           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7446           0 :     return false;
    7447             :   }
    7448           0 :   return true;
    7449             : }
    7450             : 
    7451             : static bool
    7452           0 : set_border_inline_end_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7453             : {
    7454           0 :   binding_detail::FakeString arg0;
    7455           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7456           0 :     return false;
    7457             :   }
    7458           0 :   binding_detail::FastErrorResult rv;
    7459           0 :   self->SetBorderInlineEndWidth(NonNullHelper(Constify(arg0)), rv);
    7460           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7461           0 :     return false;
    7462             :   }
    7463           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7464             : 
    7465           0 :   return true;
    7466             : }
    7467             : 
    7468             : static const JSJitInfo border_inline_end_width_getterinfo = {
    7469             :   { (JSJitGetterOp)get_border_inline_end_width },
    7470             :   { prototypes::id::CSS2Properties },
    7471             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7472             :   JSJitInfo::Getter,
    7473             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7474             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7475             :   false,  /* isInfallible. False in setters. */
    7476             :   false,  /* isMovable.  Not relevant for setters. */
    7477             :   false, /* isEliminatable.  Not relevant for setters. */
    7478             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7479             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7480             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7481             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7482             : };
    7483             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7484             : static_assert(0 < 1, "There is no slot for us");
    7485             : static const JSJitInfo border_inline_end_width_setterinfo = {
    7486             :   { (JSJitGetterOp)set_border_inline_end_width },
    7487             :   { prototypes::id::CSS2Properties },
    7488             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7489             :   JSJitInfo::Setter,
    7490             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7491             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7492             :   false,  /* isInfallible. False in setters. */
    7493             :   false,  /* isMovable.  Not relevant for setters. */
    7494             :   false, /* isEliminatable.  Not relevant for setters. */
    7495             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7496             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7497             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7498             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7499             : };
    7500             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7501             : static_assert(0 < 1, "There is no slot for us");
    7502             : 
    7503             : static bool
    7504           0 : get_borderInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7505             : {
    7506           0 :   binding_detail::FastErrorResult rv;
    7507           0 :   DOMString result;
    7508           0 :   self->GetBorderInlineStart(result, rv);
    7509           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7510           0 :     return false;
    7511             :   }
    7512           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7513           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7514           0 :     return false;
    7515             :   }
    7516           0 :   return true;
    7517             : }
    7518             : 
    7519             : static bool
    7520           0 : set_borderInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7521             : {
    7522           0 :   binding_detail::FakeString arg0;
    7523           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7524           0 :     return false;
    7525             :   }
    7526           0 :   binding_detail::FastErrorResult rv;
    7527           0 :   self->SetBorderInlineStart(NonNullHelper(Constify(arg0)), rv);
    7528           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7529           0 :     return false;
    7530             :   }
    7531           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7532             : 
    7533           0 :   return true;
    7534             : }
    7535             : 
    7536             : static const JSJitInfo borderInlineStart_getterinfo = {
    7537             :   { (JSJitGetterOp)get_borderInlineStart },
    7538             :   { prototypes::id::CSS2Properties },
    7539             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7540             :   JSJitInfo::Getter,
    7541             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7542             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7543             :   false,  /* isInfallible. False in setters. */
    7544             :   false,  /* isMovable.  Not relevant for setters. */
    7545             :   false, /* isEliminatable.  Not relevant for setters. */
    7546             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7547             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7548             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7549             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7550             : };
    7551             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7552             : static_assert(0 < 1, "There is no slot for us");
    7553             : static const JSJitInfo borderInlineStart_setterinfo = {
    7554             :   { (JSJitGetterOp)set_borderInlineStart },
    7555             :   { prototypes::id::CSS2Properties },
    7556             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7557             :   JSJitInfo::Setter,
    7558             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7559             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7560             :   false,  /* isInfallible. False in setters. */
    7561             :   false,  /* isMovable.  Not relevant for setters. */
    7562             :   false, /* isEliminatable.  Not relevant for setters. */
    7563             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7564             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7565             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7566             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7567             : };
    7568             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7569             : static_assert(0 < 1, "There is no slot for us");
    7570             : 
    7571             : static bool
    7572           0 : get_border_inline_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7573             : {
    7574           0 :   binding_detail::FastErrorResult rv;
    7575           0 :   DOMString result;
    7576           0 :   self->GetBorderInlineStart(result, rv);
    7577           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7578           0 :     return false;
    7579             :   }
    7580           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7581           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7582           0 :     return false;
    7583             :   }
    7584           0 :   return true;
    7585             : }
    7586             : 
    7587             : static bool
    7588           0 : set_border_inline_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7589             : {
    7590           0 :   binding_detail::FakeString arg0;
    7591           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7592           0 :     return false;
    7593             :   }
    7594           0 :   binding_detail::FastErrorResult rv;
    7595           0 :   self->SetBorderInlineStart(NonNullHelper(Constify(arg0)), rv);
    7596           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7597           0 :     return false;
    7598             :   }
    7599           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7600             : 
    7601           0 :   return true;
    7602             : }
    7603             : 
    7604             : static const JSJitInfo border_inline_start_getterinfo = {
    7605             :   { (JSJitGetterOp)get_border_inline_start },
    7606             :   { prototypes::id::CSS2Properties },
    7607             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7608             :   JSJitInfo::Getter,
    7609             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7610             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7611             :   false,  /* isInfallible. False in setters. */
    7612             :   false,  /* isMovable.  Not relevant for setters. */
    7613             :   false, /* isEliminatable.  Not relevant for setters. */
    7614             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7615             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7616             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7617             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7618             : };
    7619             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7620             : static_assert(0 < 1, "There is no slot for us");
    7621             : static const JSJitInfo border_inline_start_setterinfo = {
    7622             :   { (JSJitGetterOp)set_border_inline_start },
    7623             :   { prototypes::id::CSS2Properties },
    7624             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7625             :   JSJitInfo::Setter,
    7626             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7627             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7628             :   false,  /* isInfallible. False in setters. */
    7629             :   false,  /* isMovable.  Not relevant for setters. */
    7630             :   false, /* isEliminatable.  Not relevant for setters. */
    7631             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7632             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7633             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7634             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7635             : };
    7636             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7637             : static_assert(0 < 1, "There is no slot for us");
    7638             : 
    7639             : static bool
    7640           0 : get_borderInlineStartColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7641             : {
    7642           0 :   binding_detail::FastErrorResult rv;
    7643           0 :   DOMString result;
    7644           0 :   self->GetBorderInlineStartColor(result, rv);
    7645           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7646           0 :     return false;
    7647             :   }
    7648           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7649           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7650           0 :     return false;
    7651             :   }
    7652           0 :   return true;
    7653             : }
    7654             : 
    7655             : static bool
    7656           0 : set_borderInlineStartColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7657             : {
    7658           0 :   binding_detail::FakeString arg0;
    7659           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7660           0 :     return false;
    7661             :   }
    7662           0 :   binding_detail::FastErrorResult rv;
    7663           0 :   self->SetBorderInlineStartColor(NonNullHelper(Constify(arg0)), rv);
    7664           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7665           0 :     return false;
    7666             :   }
    7667           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7668             : 
    7669           0 :   return true;
    7670             : }
    7671             : 
    7672             : static const JSJitInfo borderInlineStartColor_getterinfo = {
    7673             :   { (JSJitGetterOp)get_borderInlineStartColor },
    7674             :   { prototypes::id::CSS2Properties },
    7675             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7676             :   JSJitInfo::Getter,
    7677             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7678             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7679             :   false,  /* isInfallible. False in setters. */
    7680             :   false,  /* isMovable.  Not relevant for setters. */
    7681             :   false, /* isEliminatable.  Not relevant for setters. */
    7682             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7683             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7684             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7685             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7686             : };
    7687             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7688             : static_assert(0 < 1, "There is no slot for us");
    7689             : static const JSJitInfo borderInlineStartColor_setterinfo = {
    7690             :   { (JSJitGetterOp)set_borderInlineStartColor },
    7691             :   { prototypes::id::CSS2Properties },
    7692             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7693             :   JSJitInfo::Setter,
    7694             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7695             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7696             :   false,  /* isInfallible. False in setters. */
    7697             :   false,  /* isMovable.  Not relevant for setters. */
    7698             :   false, /* isEliminatable.  Not relevant for setters. */
    7699             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7700             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7701             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7702             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7703             : };
    7704             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7705             : static_assert(0 < 1, "There is no slot for us");
    7706             : 
    7707             : static bool
    7708           0 : get_border_inline_start_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7709             : {
    7710           0 :   binding_detail::FastErrorResult rv;
    7711           0 :   DOMString result;
    7712           0 :   self->GetBorderInlineStartColor(result, rv);
    7713           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7714           0 :     return false;
    7715             :   }
    7716           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7717           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7718           0 :     return false;
    7719             :   }
    7720           0 :   return true;
    7721             : }
    7722             : 
    7723             : static bool
    7724           0 : set_border_inline_start_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7725             : {
    7726           0 :   binding_detail::FakeString arg0;
    7727           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7728           0 :     return false;
    7729             :   }
    7730           0 :   binding_detail::FastErrorResult rv;
    7731           0 :   self->SetBorderInlineStartColor(NonNullHelper(Constify(arg0)), rv);
    7732           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7733           0 :     return false;
    7734             :   }
    7735           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7736             : 
    7737           0 :   return true;
    7738             : }
    7739             : 
    7740             : static const JSJitInfo border_inline_start_color_getterinfo = {
    7741             :   { (JSJitGetterOp)get_border_inline_start_color },
    7742             :   { prototypes::id::CSS2Properties },
    7743             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7744             :   JSJitInfo::Getter,
    7745             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7746             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7747             :   false,  /* isInfallible. False in setters. */
    7748             :   false,  /* isMovable.  Not relevant for setters. */
    7749             :   false, /* isEliminatable.  Not relevant for setters. */
    7750             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7751             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7752             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7753             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7754             : };
    7755             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7756             : static_assert(0 < 1, "There is no slot for us");
    7757             : static const JSJitInfo border_inline_start_color_setterinfo = {
    7758             :   { (JSJitGetterOp)set_border_inline_start_color },
    7759             :   { prototypes::id::CSS2Properties },
    7760             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7761             :   JSJitInfo::Setter,
    7762             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7763             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7764             :   false,  /* isInfallible. False in setters. */
    7765             :   false,  /* isMovable.  Not relevant for setters. */
    7766             :   false, /* isEliminatable.  Not relevant for setters. */
    7767             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7768             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7769             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7770             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7771             : };
    7772             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7773             : static_assert(0 < 1, "There is no slot for us");
    7774             : 
    7775             : static bool
    7776           0 : get_borderInlineStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7777             : {
    7778           0 :   binding_detail::FastErrorResult rv;
    7779           0 :   DOMString result;
    7780           0 :   self->GetBorderInlineStartStyle(result, rv);
    7781           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7782           0 :     return false;
    7783             :   }
    7784           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7785           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7786           0 :     return false;
    7787             :   }
    7788           0 :   return true;
    7789             : }
    7790             : 
    7791             : static bool
    7792           0 : set_borderInlineStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7793             : {
    7794           0 :   binding_detail::FakeString arg0;
    7795           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7796           0 :     return false;
    7797             :   }
    7798           0 :   binding_detail::FastErrorResult rv;
    7799           0 :   self->SetBorderInlineStartStyle(NonNullHelper(Constify(arg0)), rv);
    7800           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7801           0 :     return false;
    7802             :   }
    7803           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7804             : 
    7805           0 :   return true;
    7806             : }
    7807             : 
    7808             : static const JSJitInfo borderInlineStartStyle_getterinfo = {
    7809             :   { (JSJitGetterOp)get_borderInlineStartStyle },
    7810             :   { prototypes::id::CSS2Properties },
    7811             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7812             :   JSJitInfo::Getter,
    7813             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7814             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7815             :   false,  /* isInfallible. False in setters. */
    7816             :   false,  /* isMovable.  Not relevant for setters. */
    7817             :   false, /* isEliminatable.  Not relevant for setters. */
    7818             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7819             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7820             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7821             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7822             : };
    7823             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7824             : static_assert(0 < 1, "There is no slot for us");
    7825             : static const JSJitInfo borderInlineStartStyle_setterinfo = {
    7826             :   { (JSJitGetterOp)set_borderInlineStartStyle },
    7827             :   { prototypes::id::CSS2Properties },
    7828             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7829             :   JSJitInfo::Setter,
    7830             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7831             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7832             :   false,  /* isInfallible. False in setters. */
    7833             :   false,  /* isMovable.  Not relevant for setters. */
    7834             :   false, /* isEliminatable.  Not relevant for setters. */
    7835             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7836             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7837             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7838             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7839             : };
    7840             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7841             : static_assert(0 < 1, "There is no slot for us");
    7842             : 
    7843             : static bool
    7844           0 : get_border_inline_start_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7845             : {
    7846           0 :   binding_detail::FastErrorResult rv;
    7847           0 :   DOMString result;
    7848           0 :   self->GetBorderInlineStartStyle(result, rv);
    7849           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7850           0 :     return false;
    7851             :   }
    7852           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7853           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7854           0 :     return false;
    7855             :   }
    7856           0 :   return true;
    7857             : }
    7858             : 
    7859             : static bool
    7860           0 : set_border_inline_start_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7861             : {
    7862           0 :   binding_detail::FakeString arg0;
    7863           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7864           0 :     return false;
    7865             :   }
    7866           0 :   binding_detail::FastErrorResult rv;
    7867           0 :   self->SetBorderInlineStartStyle(NonNullHelper(Constify(arg0)), rv);
    7868           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7869           0 :     return false;
    7870             :   }
    7871           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7872             : 
    7873           0 :   return true;
    7874             : }
    7875             : 
    7876             : static const JSJitInfo border_inline_start_style_getterinfo = {
    7877             :   { (JSJitGetterOp)get_border_inline_start_style },
    7878             :   { prototypes::id::CSS2Properties },
    7879             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7880             :   JSJitInfo::Getter,
    7881             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7882             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7883             :   false,  /* isInfallible. False in setters. */
    7884             :   false,  /* isMovable.  Not relevant for setters. */
    7885             :   false, /* isEliminatable.  Not relevant for setters. */
    7886             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7887             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7888             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7889             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7890             : };
    7891             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7892             : static_assert(0 < 1, "There is no slot for us");
    7893             : static const JSJitInfo border_inline_start_style_setterinfo = {
    7894             :   { (JSJitGetterOp)set_border_inline_start_style },
    7895             :   { prototypes::id::CSS2Properties },
    7896             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7897             :   JSJitInfo::Setter,
    7898             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7899             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7900             :   false,  /* isInfallible. False in setters. */
    7901             :   false,  /* isMovable.  Not relevant for setters. */
    7902             :   false, /* isEliminatable.  Not relevant for setters. */
    7903             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7904             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7905             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7906             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7907             : };
    7908             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7909             : static_assert(0 < 1, "There is no slot for us");
    7910             : 
    7911             : static bool
    7912           0 : get_borderInlineStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7913             : {
    7914           0 :   binding_detail::FastErrorResult rv;
    7915           0 :   DOMString result;
    7916           0 :   self->GetBorderInlineStartWidth(result, rv);
    7917           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7918           0 :     return false;
    7919             :   }
    7920           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7921           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7922           0 :     return false;
    7923             :   }
    7924           0 :   return true;
    7925             : }
    7926             : 
    7927             : static bool
    7928           0 : set_borderInlineStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7929             : {
    7930           0 :   binding_detail::FakeString arg0;
    7931           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    7932           0 :     return false;
    7933             :   }
    7934           0 :   binding_detail::FastErrorResult rv;
    7935           0 :   self->SetBorderInlineStartWidth(NonNullHelper(Constify(arg0)), rv);
    7936           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7937           0 :     return false;
    7938             :   }
    7939           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7940             : 
    7941           0 :   return true;
    7942             : }
    7943             : 
    7944             : static const JSJitInfo borderInlineStartWidth_getterinfo = {
    7945             :   { (JSJitGetterOp)get_borderInlineStartWidth },
    7946             :   { prototypes::id::CSS2Properties },
    7947             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7948             :   JSJitInfo::Getter,
    7949             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7950             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    7951             :   false,  /* isInfallible. False in setters. */
    7952             :   false,  /* isMovable.  Not relevant for setters. */
    7953             :   false, /* isEliminatable.  Not relevant for setters. */
    7954             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7955             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7956             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7957             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7958             : };
    7959             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7960             : static_assert(0 < 1, "There is no slot for us");
    7961             : static const JSJitInfo borderInlineStartWidth_setterinfo = {
    7962             :   { (JSJitGetterOp)set_borderInlineStartWidth },
    7963             :   { prototypes::id::CSS2Properties },
    7964             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    7965             :   JSJitInfo::Setter,
    7966             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    7967             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    7968             :   false,  /* isInfallible. False in setters. */
    7969             :   false,  /* isMovable.  Not relevant for setters. */
    7970             :   false, /* isEliminatable.  Not relevant for setters. */
    7971             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    7972             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    7973             :   false,  /* isTypedMethod.  Only relevant for methods. */
    7974             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    7975             : };
    7976             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    7977             : static_assert(0 < 1, "There is no slot for us");
    7978             : 
    7979             : static bool
    7980           0 : get_border_inline_start_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    7981             : {
    7982           0 :   binding_detail::FastErrorResult rv;
    7983           0 :   DOMString result;
    7984           0 :   self->GetBorderInlineStartWidth(result, rv);
    7985           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    7986           0 :     return false;
    7987             :   }
    7988           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    7989           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    7990           0 :     return false;
    7991             :   }
    7992           0 :   return true;
    7993             : }
    7994             : 
    7995             : static bool
    7996           0 : set_border_inline_start_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    7997             : {
    7998           0 :   binding_detail::FakeString arg0;
    7999           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8000           0 :     return false;
    8001             :   }
    8002           0 :   binding_detail::FastErrorResult rv;
    8003           0 :   self->SetBorderInlineStartWidth(NonNullHelper(Constify(arg0)), rv);
    8004           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8005           0 :     return false;
    8006             :   }
    8007           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8008             : 
    8009           0 :   return true;
    8010             : }
    8011             : 
    8012             : static const JSJitInfo border_inline_start_width_getterinfo = {
    8013             :   { (JSJitGetterOp)get_border_inline_start_width },
    8014             :   { prototypes::id::CSS2Properties },
    8015             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8016             :   JSJitInfo::Getter,
    8017             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8018             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8019             :   false,  /* isInfallible. False in setters. */
    8020             :   false,  /* isMovable.  Not relevant for setters. */
    8021             :   false, /* isEliminatable.  Not relevant for setters. */
    8022             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8023             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8024             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8025             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8026             : };
    8027             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8028             : static_assert(0 < 1, "There is no slot for us");
    8029             : static const JSJitInfo border_inline_start_width_setterinfo = {
    8030             :   { (JSJitGetterOp)set_border_inline_start_width },
    8031             :   { prototypes::id::CSS2Properties },
    8032             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8033             :   JSJitInfo::Setter,
    8034             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8035             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8036             :   false,  /* isInfallible. False in setters. */
    8037             :   false,  /* isMovable.  Not relevant for setters. */
    8038             :   false, /* isEliminatable.  Not relevant for setters. */
    8039             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8040             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8041             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8042             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8043             : };
    8044             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8045             : static_assert(0 < 1, "There is no slot for us");
    8046             : 
    8047             : static bool
    8048           0 : get_borderLeft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8049             : {
    8050           0 :   binding_detail::FastErrorResult rv;
    8051           0 :   DOMString result;
    8052           0 :   self->GetBorderLeft(result, rv);
    8053           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8054           0 :     return false;
    8055             :   }
    8056           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8057           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8058           0 :     return false;
    8059             :   }
    8060           0 :   return true;
    8061             : }
    8062             : 
    8063             : static bool
    8064           0 : set_borderLeft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8065             : {
    8066           0 :   binding_detail::FakeString arg0;
    8067           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8068           0 :     return false;
    8069             :   }
    8070           0 :   binding_detail::FastErrorResult rv;
    8071           0 :   self->SetBorderLeft(NonNullHelper(Constify(arg0)), rv);
    8072           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8073           0 :     return false;
    8074             :   }
    8075           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8076             : 
    8077           0 :   return true;
    8078             : }
    8079             : 
    8080             : static const JSJitInfo borderLeft_getterinfo = {
    8081             :   { (JSJitGetterOp)get_borderLeft },
    8082             :   { prototypes::id::CSS2Properties },
    8083             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8084             :   JSJitInfo::Getter,
    8085             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8086             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8087             :   false,  /* isInfallible. False in setters. */
    8088             :   false,  /* isMovable.  Not relevant for setters. */
    8089             :   false, /* isEliminatable.  Not relevant for setters. */
    8090             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8091             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8092             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8093             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8094             : };
    8095             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8096             : static_assert(0 < 1, "There is no slot for us");
    8097             : static const JSJitInfo borderLeft_setterinfo = {
    8098             :   { (JSJitGetterOp)set_borderLeft },
    8099             :   { prototypes::id::CSS2Properties },
    8100             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8101             :   JSJitInfo::Setter,
    8102             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8103             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8104             :   false,  /* isInfallible. False in setters. */
    8105             :   false,  /* isMovable.  Not relevant for setters. */
    8106             :   false, /* isEliminatable.  Not relevant for setters. */
    8107             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8108             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8109             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8110             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8111             : };
    8112             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8113             : static_assert(0 < 1, "There is no slot for us");
    8114             : 
    8115             : static bool
    8116           0 : get_border_left(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8117             : {
    8118           0 :   binding_detail::FastErrorResult rv;
    8119           0 :   DOMString result;
    8120           0 :   self->GetBorderLeft(result, rv);
    8121           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8122           0 :     return false;
    8123             :   }
    8124           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8125           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8126           0 :     return false;
    8127             :   }
    8128           0 :   return true;
    8129             : }
    8130             : 
    8131             : static bool
    8132           0 : set_border_left(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8133             : {
    8134           0 :   binding_detail::FakeString arg0;
    8135           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8136           0 :     return false;
    8137             :   }
    8138           0 :   binding_detail::FastErrorResult rv;
    8139           0 :   self->SetBorderLeft(NonNullHelper(Constify(arg0)), rv);
    8140           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8141           0 :     return false;
    8142             :   }
    8143           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8144             : 
    8145           0 :   return true;
    8146             : }
    8147             : 
    8148             : static const JSJitInfo border_left_getterinfo = {
    8149             :   { (JSJitGetterOp)get_border_left },
    8150             :   { prototypes::id::CSS2Properties },
    8151             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8152             :   JSJitInfo::Getter,
    8153             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8154             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8155             :   false,  /* isInfallible. False in setters. */
    8156             :   false,  /* isMovable.  Not relevant for setters. */
    8157             :   false, /* isEliminatable.  Not relevant for setters. */
    8158             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8159             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8160             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8161             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8162             : };
    8163             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8164             : static_assert(0 < 1, "There is no slot for us");
    8165             : static const JSJitInfo border_left_setterinfo = {
    8166             :   { (JSJitGetterOp)set_border_left },
    8167             :   { prototypes::id::CSS2Properties },
    8168             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8169             :   JSJitInfo::Setter,
    8170             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8171             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8172             :   false,  /* isInfallible. False in setters. */
    8173             :   false,  /* isMovable.  Not relevant for setters. */
    8174             :   false, /* isEliminatable.  Not relevant for setters. */
    8175             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8176             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8177             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8178             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8179             : };
    8180             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8181             : static_assert(0 < 1, "There is no slot for us");
    8182             : 
    8183             : static bool
    8184           0 : get_borderLeftColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8185             : {
    8186           0 :   binding_detail::FastErrorResult rv;
    8187           0 :   DOMString result;
    8188           0 :   self->GetBorderLeftColor(result, rv);
    8189           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8190           0 :     return false;
    8191             :   }
    8192           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8193           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8194           0 :     return false;
    8195             :   }
    8196           0 :   return true;
    8197             : }
    8198             : 
    8199             : static bool
    8200           0 : set_borderLeftColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8201             : {
    8202           0 :   binding_detail::FakeString arg0;
    8203           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8204           0 :     return false;
    8205             :   }
    8206           0 :   binding_detail::FastErrorResult rv;
    8207           0 :   self->SetBorderLeftColor(NonNullHelper(Constify(arg0)), rv);
    8208           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8209           0 :     return false;
    8210             :   }
    8211           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8212             : 
    8213           0 :   return true;
    8214             : }
    8215             : 
    8216             : static const JSJitInfo borderLeftColor_getterinfo = {
    8217             :   { (JSJitGetterOp)get_borderLeftColor },
    8218             :   { prototypes::id::CSS2Properties },
    8219             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8220             :   JSJitInfo::Getter,
    8221             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8222             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8223             :   false,  /* isInfallible. False in setters. */
    8224             :   false,  /* isMovable.  Not relevant for setters. */
    8225             :   false, /* isEliminatable.  Not relevant for setters. */
    8226             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8227             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8228             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8229             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8230             : };
    8231             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8232             : static_assert(0 < 1, "There is no slot for us");
    8233             : static const JSJitInfo borderLeftColor_setterinfo = {
    8234             :   { (JSJitGetterOp)set_borderLeftColor },
    8235             :   { prototypes::id::CSS2Properties },
    8236             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8237             :   JSJitInfo::Setter,
    8238             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8239             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8240             :   false,  /* isInfallible. False in setters. */
    8241             :   false,  /* isMovable.  Not relevant for setters. */
    8242             :   false, /* isEliminatable.  Not relevant for setters. */
    8243             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8244             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8245             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8246             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8247             : };
    8248             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8249             : static_assert(0 < 1, "There is no slot for us");
    8250             : 
    8251             : static bool
    8252           0 : get_border_left_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8253             : {
    8254           0 :   binding_detail::FastErrorResult rv;
    8255           0 :   DOMString result;
    8256           0 :   self->GetBorderLeftColor(result, rv);
    8257           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8258           0 :     return false;
    8259             :   }
    8260           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8261           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8262           0 :     return false;
    8263             :   }
    8264           0 :   return true;
    8265             : }
    8266             : 
    8267             : static bool
    8268           0 : set_border_left_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8269             : {
    8270           0 :   binding_detail::FakeString arg0;
    8271           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8272           0 :     return false;
    8273             :   }
    8274           0 :   binding_detail::FastErrorResult rv;
    8275           0 :   self->SetBorderLeftColor(NonNullHelper(Constify(arg0)), rv);
    8276           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8277           0 :     return false;
    8278             :   }
    8279           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8280             : 
    8281           0 :   return true;
    8282             : }
    8283             : 
    8284             : static const JSJitInfo border_left_color_getterinfo = {
    8285             :   { (JSJitGetterOp)get_border_left_color },
    8286             :   { prototypes::id::CSS2Properties },
    8287             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8288             :   JSJitInfo::Getter,
    8289             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8290             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8291             :   false,  /* isInfallible. False in setters. */
    8292             :   false,  /* isMovable.  Not relevant for setters. */
    8293             :   false, /* isEliminatable.  Not relevant for setters. */
    8294             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8295             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8296             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8297             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8298             : };
    8299             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8300             : static_assert(0 < 1, "There is no slot for us");
    8301             : static const JSJitInfo border_left_color_setterinfo = {
    8302             :   { (JSJitGetterOp)set_border_left_color },
    8303             :   { prototypes::id::CSS2Properties },
    8304             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8305             :   JSJitInfo::Setter,
    8306             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8307             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8308             :   false,  /* isInfallible. False in setters. */
    8309             :   false,  /* isMovable.  Not relevant for setters. */
    8310             :   false, /* isEliminatable.  Not relevant for setters. */
    8311             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8312             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8313             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8314             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8315             : };
    8316             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8317             : static_assert(0 < 1, "There is no slot for us");
    8318             : 
    8319             : static bool
    8320           0 : get_MozBorderLeftColors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8321             : {
    8322           0 :   binding_detail::FastErrorResult rv;
    8323           0 :   DOMString result;
    8324           0 :   self->GetMozBorderLeftColors(result, rv);
    8325           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8326           0 :     return false;
    8327             :   }
    8328           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8329           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8330           0 :     return false;
    8331             :   }
    8332           0 :   return true;
    8333             : }
    8334             : 
    8335             : static bool
    8336           0 : set_MozBorderLeftColors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8337             : {
    8338           0 :   binding_detail::FakeString arg0;
    8339           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8340           0 :     return false;
    8341             :   }
    8342           0 :   binding_detail::FastErrorResult rv;
    8343           0 :   self->SetMozBorderLeftColors(NonNullHelper(Constify(arg0)), rv);
    8344           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8345           0 :     return false;
    8346             :   }
    8347           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8348             : 
    8349           0 :   return true;
    8350             : }
    8351             : 
    8352             : static const JSJitInfo MozBorderLeftColors_getterinfo = {
    8353             :   { (JSJitGetterOp)get_MozBorderLeftColors },
    8354             :   { prototypes::id::CSS2Properties },
    8355             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8356             :   JSJitInfo::Getter,
    8357             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8358             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8359             :   false,  /* isInfallible. False in setters. */
    8360             :   false,  /* isMovable.  Not relevant for setters. */
    8361             :   false, /* isEliminatable.  Not relevant for setters. */
    8362             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8363             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8364             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8365             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8366             : };
    8367             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8368             : static_assert(0 < 1, "There is no slot for us");
    8369             : static const JSJitInfo MozBorderLeftColors_setterinfo = {
    8370             :   { (JSJitGetterOp)set_MozBorderLeftColors },
    8371             :   { prototypes::id::CSS2Properties },
    8372             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8373             :   JSJitInfo::Setter,
    8374             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8375             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8376             :   false,  /* isInfallible. False in setters. */
    8377             :   false,  /* isMovable.  Not relevant for setters. */
    8378             :   false, /* isEliminatable.  Not relevant for setters. */
    8379             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8380             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8381             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8382             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8383             : };
    8384             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8385             : static_assert(0 < 1, "There is no slot for us");
    8386             : 
    8387             : static bool
    8388           0 : get__moz_border_left_colors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8389             : {
    8390           0 :   binding_detail::FastErrorResult rv;
    8391           0 :   DOMString result;
    8392           0 :   self->GetMozBorderLeftColors(result, rv);
    8393           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8394           0 :     return false;
    8395             :   }
    8396           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8397           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8398           0 :     return false;
    8399             :   }
    8400           0 :   return true;
    8401             : }
    8402             : 
    8403             : static bool
    8404           0 : set__moz_border_left_colors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8405             : {
    8406           0 :   binding_detail::FakeString arg0;
    8407           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8408           0 :     return false;
    8409             :   }
    8410           0 :   binding_detail::FastErrorResult rv;
    8411           0 :   self->SetMozBorderLeftColors(NonNullHelper(Constify(arg0)), rv);
    8412           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8413           0 :     return false;
    8414             :   }
    8415           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8416             : 
    8417           0 :   return true;
    8418             : }
    8419             : 
    8420             : static const JSJitInfo _moz_border_left_colors_getterinfo = {
    8421             :   { (JSJitGetterOp)get__moz_border_left_colors },
    8422             :   { prototypes::id::CSS2Properties },
    8423             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8424             :   JSJitInfo::Getter,
    8425             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8426             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8427             :   false,  /* isInfallible. False in setters. */
    8428             :   false,  /* isMovable.  Not relevant for setters. */
    8429             :   false, /* isEliminatable.  Not relevant for setters. */
    8430             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8431             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8432             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8433             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8434             : };
    8435             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8436             : static_assert(0 < 1, "There is no slot for us");
    8437             : static const JSJitInfo _moz_border_left_colors_setterinfo = {
    8438             :   { (JSJitGetterOp)set__moz_border_left_colors },
    8439             :   { prototypes::id::CSS2Properties },
    8440             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8441             :   JSJitInfo::Setter,
    8442             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8443             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8444             :   false,  /* isInfallible. False in setters. */
    8445             :   false,  /* isMovable.  Not relevant for setters. */
    8446             :   false, /* isEliminatable.  Not relevant for setters. */
    8447             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8448             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8449             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8450             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8451             : };
    8452             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8453             : static_assert(0 < 1, "There is no slot for us");
    8454             : 
    8455             : static bool
    8456           0 : get_borderLeftStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8457             : {
    8458           0 :   binding_detail::FastErrorResult rv;
    8459           0 :   DOMString result;
    8460           0 :   self->GetBorderLeftStyle(result, rv);
    8461           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8462           0 :     return false;
    8463             :   }
    8464           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8465           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8466           0 :     return false;
    8467             :   }
    8468           0 :   return true;
    8469             : }
    8470             : 
    8471             : static bool
    8472           0 : set_borderLeftStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8473             : {
    8474           0 :   binding_detail::FakeString arg0;
    8475           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8476           0 :     return false;
    8477             :   }
    8478           0 :   binding_detail::FastErrorResult rv;
    8479           0 :   self->SetBorderLeftStyle(NonNullHelper(Constify(arg0)), rv);
    8480           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8481           0 :     return false;
    8482             :   }
    8483           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8484             : 
    8485           0 :   return true;
    8486             : }
    8487             : 
    8488             : static const JSJitInfo borderLeftStyle_getterinfo = {
    8489             :   { (JSJitGetterOp)get_borderLeftStyle },
    8490             :   { prototypes::id::CSS2Properties },
    8491             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8492             :   JSJitInfo::Getter,
    8493             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8494             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8495             :   false,  /* isInfallible. False in setters. */
    8496             :   false,  /* isMovable.  Not relevant for setters. */
    8497             :   false, /* isEliminatable.  Not relevant for setters. */
    8498             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8499             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8500             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8501             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8502             : };
    8503             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8504             : static_assert(0 < 1, "There is no slot for us");
    8505             : static const JSJitInfo borderLeftStyle_setterinfo = {
    8506             :   { (JSJitGetterOp)set_borderLeftStyle },
    8507             :   { prototypes::id::CSS2Properties },
    8508             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8509             :   JSJitInfo::Setter,
    8510             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8511             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8512             :   false,  /* isInfallible. False in setters. */
    8513             :   false,  /* isMovable.  Not relevant for setters. */
    8514             :   false, /* isEliminatable.  Not relevant for setters. */
    8515             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8516             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8517             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8518             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8519             : };
    8520             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8521             : static_assert(0 < 1, "There is no slot for us");
    8522             : 
    8523             : static bool
    8524           0 : get_border_left_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8525             : {
    8526           0 :   binding_detail::FastErrorResult rv;
    8527           0 :   DOMString result;
    8528           0 :   self->GetBorderLeftStyle(result, rv);
    8529           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8530           0 :     return false;
    8531             :   }
    8532           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8533           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8534           0 :     return false;
    8535             :   }
    8536           0 :   return true;
    8537             : }
    8538             : 
    8539             : static bool
    8540           0 : set_border_left_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8541             : {
    8542           0 :   binding_detail::FakeString arg0;
    8543           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8544           0 :     return false;
    8545             :   }
    8546           0 :   binding_detail::FastErrorResult rv;
    8547           0 :   self->SetBorderLeftStyle(NonNullHelper(Constify(arg0)), rv);
    8548           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8549           0 :     return false;
    8550             :   }
    8551           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8552             : 
    8553           0 :   return true;
    8554             : }
    8555             : 
    8556             : static const JSJitInfo border_left_style_getterinfo = {
    8557             :   { (JSJitGetterOp)get_border_left_style },
    8558             :   { prototypes::id::CSS2Properties },
    8559             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8560             :   JSJitInfo::Getter,
    8561             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8562             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8563             :   false,  /* isInfallible. False in setters. */
    8564             :   false,  /* isMovable.  Not relevant for setters. */
    8565             :   false, /* isEliminatable.  Not relevant for setters. */
    8566             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8567             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8568             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8569             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8570             : };
    8571             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8572             : static_assert(0 < 1, "There is no slot for us");
    8573             : static const JSJitInfo border_left_style_setterinfo = {
    8574             :   { (JSJitGetterOp)set_border_left_style },
    8575             :   { prototypes::id::CSS2Properties },
    8576             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8577             :   JSJitInfo::Setter,
    8578             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8579             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8580             :   false,  /* isInfallible. False in setters. */
    8581             :   false,  /* isMovable.  Not relevant for setters. */
    8582             :   false, /* isEliminatable.  Not relevant for setters. */
    8583             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8584             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8585             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8586             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8587             : };
    8588             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8589             : static_assert(0 < 1, "There is no slot for us");
    8590             : 
    8591             : static bool
    8592           0 : get_borderLeftWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8593             : {
    8594           0 :   binding_detail::FastErrorResult rv;
    8595           0 :   DOMString result;
    8596           0 :   self->GetBorderLeftWidth(result, rv);
    8597           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8598           0 :     return false;
    8599             :   }
    8600           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8601           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8602           0 :     return false;
    8603             :   }
    8604           0 :   return true;
    8605             : }
    8606             : 
    8607             : static bool
    8608           0 : set_borderLeftWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8609             : {
    8610           0 :   binding_detail::FakeString arg0;
    8611           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8612           0 :     return false;
    8613             :   }
    8614           0 :   binding_detail::FastErrorResult rv;
    8615           0 :   self->SetBorderLeftWidth(NonNullHelper(Constify(arg0)), rv);
    8616           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8617           0 :     return false;
    8618             :   }
    8619           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8620             : 
    8621           0 :   return true;
    8622             : }
    8623             : 
    8624             : static const JSJitInfo borderLeftWidth_getterinfo = {
    8625             :   { (JSJitGetterOp)get_borderLeftWidth },
    8626             :   { prototypes::id::CSS2Properties },
    8627             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8628             :   JSJitInfo::Getter,
    8629             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8630             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8631             :   false,  /* isInfallible. False in setters. */
    8632             :   false,  /* isMovable.  Not relevant for setters. */
    8633             :   false, /* isEliminatable.  Not relevant for setters. */
    8634             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8635             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8636             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8637             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8638             : };
    8639             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8640             : static_assert(0 < 1, "There is no slot for us");
    8641             : static const JSJitInfo borderLeftWidth_setterinfo = {
    8642             :   { (JSJitGetterOp)set_borderLeftWidth },
    8643             :   { prototypes::id::CSS2Properties },
    8644             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8645             :   JSJitInfo::Setter,
    8646             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8647             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8648             :   false,  /* isInfallible. False in setters. */
    8649             :   false,  /* isMovable.  Not relevant for setters. */
    8650             :   false, /* isEliminatable.  Not relevant for setters. */
    8651             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8652             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8653             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8654             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8655             : };
    8656             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8657             : static_assert(0 < 1, "There is no slot for us");
    8658             : 
    8659             : static bool
    8660           0 : get_border_left_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8661             : {
    8662           0 :   binding_detail::FastErrorResult rv;
    8663           0 :   DOMString result;
    8664           0 :   self->GetBorderLeftWidth(result, rv);
    8665           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8666           0 :     return false;
    8667             :   }
    8668           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8669           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8670           0 :     return false;
    8671             :   }
    8672           0 :   return true;
    8673             : }
    8674             : 
    8675             : static bool
    8676           0 : set_border_left_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8677             : {
    8678           0 :   binding_detail::FakeString arg0;
    8679           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8680           0 :     return false;
    8681             :   }
    8682           0 :   binding_detail::FastErrorResult rv;
    8683           0 :   self->SetBorderLeftWidth(NonNullHelper(Constify(arg0)), rv);
    8684           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8685           0 :     return false;
    8686             :   }
    8687           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8688             : 
    8689           0 :   return true;
    8690             : }
    8691             : 
    8692             : static const JSJitInfo border_left_width_getterinfo = {
    8693             :   { (JSJitGetterOp)get_border_left_width },
    8694             :   { prototypes::id::CSS2Properties },
    8695             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8696             :   JSJitInfo::Getter,
    8697             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8698             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8699             :   false,  /* isInfallible. False in setters. */
    8700             :   false,  /* isMovable.  Not relevant for setters. */
    8701             :   false, /* isEliminatable.  Not relevant for setters. */
    8702             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8703             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8704             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8705             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8706             : };
    8707             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8708             : static_assert(0 < 1, "There is no slot for us");
    8709             : static const JSJitInfo border_left_width_setterinfo = {
    8710             :   { (JSJitGetterOp)set_border_left_width },
    8711             :   { prototypes::id::CSS2Properties },
    8712             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8713             :   JSJitInfo::Setter,
    8714             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8715             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8716             :   false,  /* isInfallible. False in setters. */
    8717             :   false,  /* isMovable.  Not relevant for setters. */
    8718             :   false, /* isEliminatable.  Not relevant for setters. */
    8719             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8720             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8721             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8722             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8723             : };
    8724             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8725             : static_assert(0 < 1, "There is no slot for us");
    8726             : 
    8727             : static bool
    8728           0 : get_borderRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8729             : {
    8730           0 :   binding_detail::FastErrorResult rv;
    8731           0 :   DOMString result;
    8732           0 :   self->GetBorderRadius(result, rv);
    8733           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8734           0 :     return false;
    8735             :   }
    8736           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8737           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8738           0 :     return false;
    8739             :   }
    8740           0 :   return true;
    8741             : }
    8742             : 
    8743             : static bool
    8744           0 : set_borderRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8745             : {
    8746           0 :   binding_detail::FakeString arg0;
    8747           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8748           0 :     return false;
    8749             :   }
    8750           0 :   binding_detail::FastErrorResult rv;
    8751           0 :   self->SetBorderRadius(NonNullHelper(Constify(arg0)), rv);
    8752           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8753           0 :     return false;
    8754             :   }
    8755           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8756             : 
    8757           0 :   return true;
    8758             : }
    8759             : 
    8760             : static const JSJitInfo borderRadius_getterinfo = {
    8761             :   { (JSJitGetterOp)get_borderRadius },
    8762             :   { prototypes::id::CSS2Properties },
    8763             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8764             :   JSJitInfo::Getter,
    8765             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8766             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8767             :   false,  /* isInfallible. False in setters. */
    8768             :   false,  /* isMovable.  Not relevant for setters. */
    8769             :   false, /* isEliminatable.  Not relevant for setters. */
    8770             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8771             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8772             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8773             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8774             : };
    8775             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8776             : static_assert(0 < 1, "There is no slot for us");
    8777             : static const JSJitInfo borderRadius_setterinfo = {
    8778             :   { (JSJitGetterOp)set_borderRadius },
    8779             :   { prototypes::id::CSS2Properties },
    8780             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8781             :   JSJitInfo::Setter,
    8782             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8783             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8784             :   false,  /* isInfallible. False in setters. */
    8785             :   false,  /* isMovable.  Not relevant for setters. */
    8786             :   false, /* isEliminatable.  Not relevant for setters. */
    8787             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8788             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8789             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8790             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8791             : };
    8792             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8793             : static_assert(0 < 1, "There is no slot for us");
    8794             : 
    8795             : static bool
    8796           0 : get_border_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8797             : {
    8798           0 :   binding_detail::FastErrorResult rv;
    8799           0 :   DOMString result;
    8800           0 :   self->GetBorderRadius(result, rv);
    8801           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8802           0 :     return false;
    8803             :   }
    8804           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8805           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8806           0 :     return false;
    8807             :   }
    8808           0 :   return true;
    8809             : }
    8810             : 
    8811             : static bool
    8812           0 : set_border_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8813             : {
    8814           0 :   binding_detail::FakeString arg0;
    8815           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8816           0 :     return false;
    8817             :   }
    8818           0 :   binding_detail::FastErrorResult rv;
    8819           0 :   self->SetBorderRadius(NonNullHelper(Constify(arg0)), rv);
    8820           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8821           0 :     return false;
    8822             :   }
    8823           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8824             : 
    8825           0 :   return true;
    8826             : }
    8827             : 
    8828             : static const JSJitInfo border_radius_getterinfo = {
    8829             :   { (JSJitGetterOp)get_border_radius },
    8830             :   { prototypes::id::CSS2Properties },
    8831             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8832             :   JSJitInfo::Getter,
    8833             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8834             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8835             :   false,  /* isInfallible. False in setters. */
    8836             :   false,  /* isMovable.  Not relevant for setters. */
    8837             :   false, /* isEliminatable.  Not relevant for setters. */
    8838             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8839             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8840             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8841             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8842             : };
    8843             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8844             : static_assert(0 < 1, "There is no slot for us");
    8845             : static const JSJitInfo border_radius_setterinfo = {
    8846             :   { (JSJitGetterOp)set_border_radius },
    8847             :   { prototypes::id::CSS2Properties },
    8848             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8849             :   JSJitInfo::Setter,
    8850             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8851             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8852             :   false,  /* isInfallible. False in setters. */
    8853             :   false,  /* isMovable.  Not relevant for setters. */
    8854             :   false, /* isEliminatable.  Not relevant for setters. */
    8855             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8856             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8857             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8858             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8859             : };
    8860             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8861             : static_assert(0 < 1, "There is no slot for us");
    8862             : 
    8863             : static bool
    8864           0 : get_borderRight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8865             : {
    8866           0 :   binding_detail::FastErrorResult rv;
    8867           0 :   DOMString result;
    8868           0 :   self->GetBorderRight(result, rv);
    8869           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8870           0 :     return false;
    8871             :   }
    8872           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8873           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8874           0 :     return false;
    8875             :   }
    8876           0 :   return true;
    8877             : }
    8878             : 
    8879             : static bool
    8880           0 : set_borderRight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8881             : {
    8882           0 :   binding_detail::FakeString arg0;
    8883           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8884           0 :     return false;
    8885             :   }
    8886           0 :   binding_detail::FastErrorResult rv;
    8887           0 :   self->SetBorderRight(NonNullHelper(Constify(arg0)), rv);
    8888           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8889           0 :     return false;
    8890             :   }
    8891           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8892             : 
    8893           0 :   return true;
    8894             : }
    8895             : 
    8896             : static const JSJitInfo borderRight_getterinfo = {
    8897             :   { (JSJitGetterOp)get_borderRight },
    8898             :   { prototypes::id::CSS2Properties },
    8899             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8900             :   JSJitInfo::Getter,
    8901             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8902             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8903             :   false,  /* isInfallible. False in setters. */
    8904             :   false,  /* isMovable.  Not relevant for setters. */
    8905             :   false, /* isEliminatable.  Not relevant for setters. */
    8906             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8907             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8908             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8909             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8910             : };
    8911             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8912             : static_assert(0 < 1, "There is no slot for us");
    8913             : static const JSJitInfo borderRight_setterinfo = {
    8914             :   { (JSJitGetterOp)set_borderRight },
    8915             :   { prototypes::id::CSS2Properties },
    8916             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8917             :   JSJitInfo::Setter,
    8918             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8919             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8920             :   false,  /* isInfallible. False in setters. */
    8921             :   false,  /* isMovable.  Not relevant for setters. */
    8922             :   false, /* isEliminatable.  Not relevant for setters. */
    8923             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8924             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8925             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8926             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8927             : };
    8928             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8929             : static_assert(0 < 1, "There is no slot for us");
    8930             : 
    8931             : static bool
    8932           0 : get_border_right(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    8933             : {
    8934           0 :   binding_detail::FastErrorResult rv;
    8935           0 :   DOMString result;
    8936           0 :   self->GetBorderRight(result, rv);
    8937           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8938           0 :     return false;
    8939             :   }
    8940           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8941           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    8942           0 :     return false;
    8943             :   }
    8944           0 :   return true;
    8945             : }
    8946             : 
    8947             : static bool
    8948           0 : set_border_right(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    8949             : {
    8950           0 :   binding_detail::FakeString arg0;
    8951           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    8952           0 :     return false;
    8953             :   }
    8954           0 :   binding_detail::FastErrorResult rv;
    8955           0 :   self->SetBorderRight(NonNullHelper(Constify(arg0)), rv);
    8956           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    8957           0 :     return false;
    8958             :   }
    8959           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    8960             : 
    8961           0 :   return true;
    8962             : }
    8963             : 
    8964             : static const JSJitInfo border_right_getterinfo = {
    8965             :   { (JSJitGetterOp)get_border_right },
    8966             :   { prototypes::id::CSS2Properties },
    8967             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8968             :   JSJitInfo::Getter,
    8969             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8970             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    8971             :   false,  /* isInfallible. False in setters. */
    8972             :   false,  /* isMovable.  Not relevant for setters. */
    8973             :   false, /* isEliminatable.  Not relevant for setters. */
    8974             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8975             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8976             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8977             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8978             : };
    8979             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8980             : static_assert(0 < 1, "There is no slot for us");
    8981             : static const JSJitInfo border_right_setterinfo = {
    8982             :   { (JSJitGetterOp)set_border_right },
    8983             :   { prototypes::id::CSS2Properties },
    8984             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    8985             :   JSJitInfo::Setter,
    8986             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    8987             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    8988             :   false,  /* isInfallible. False in setters. */
    8989             :   false,  /* isMovable.  Not relevant for setters. */
    8990             :   false, /* isEliminatable.  Not relevant for setters. */
    8991             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    8992             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    8993             :   false,  /* isTypedMethod.  Only relevant for methods. */
    8994             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    8995             : };
    8996             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    8997             : static_assert(0 < 1, "There is no slot for us");
    8998             : 
    8999             : static bool
    9000           0 : get_borderRightColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9001             : {
    9002           0 :   binding_detail::FastErrorResult rv;
    9003           0 :   DOMString result;
    9004           0 :   self->GetBorderRightColor(result, rv);
    9005           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9006           0 :     return false;
    9007             :   }
    9008           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9009           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9010           0 :     return false;
    9011             :   }
    9012           0 :   return true;
    9013             : }
    9014             : 
    9015             : static bool
    9016           0 : set_borderRightColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9017             : {
    9018           0 :   binding_detail::FakeString arg0;
    9019           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9020           0 :     return false;
    9021             :   }
    9022           0 :   binding_detail::FastErrorResult rv;
    9023           0 :   self->SetBorderRightColor(NonNullHelper(Constify(arg0)), rv);
    9024           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9025           0 :     return false;
    9026             :   }
    9027           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9028             : 
    9029           0 :   return true;
    9030             : }
    9031             : 
    9032             : static const JSJitInfo borderRightColor_getterinfo = {
    9033             :   { (JSJitGetterOp)get_borderRightColor },
    9034             :   { prototypes::id::CSS2Properties },
    9035             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9036             :   JSJitInfo::Getter,
    9037             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9038             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9039             :   false,  /* isInfallible. False in setters. */
    9040             :   false,  /* isMovable.  Not relevant for setters. */
    9041             :   false, /* isEliminatable.  Not relevant for setters. */
    9042             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9043             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9044             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9045             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9046             : };
    9047             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9048             : static_assert(0 < 1, "There is no slot for us");
    9049             : static const JSJitInfo borderRightColor_setterinfo = {
    9050             :   { (JSJitGetterOp)set_borderRightColor },
    9051             :   { prototypes::id::CSS2Properties },
    9052             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9053             :   JSJitInfo::Setter,
    9054             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9055             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9056             :   false,  /* isInfallible. False in setters. */
    9057             :   false,  /* isMovable.  Not relevant for setters. */
    9058             :   false, /* isEliminatable.  Not relevant for setters. */
    9059             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9060             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9061             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9062             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9063             : };
    9064             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9065             : static_assert(0 < 1, "There is no slot for us");
    9066             : 
    9067             : static bool
    9068           0 : get_border_right_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9069             : {
    9070           0 :   binding_detail::FastErrorResult rv;
    9071           0 :   DOMString result;
    9072           0 :   self->GetBorderRightColor(result, rv);
    9073           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9074           0 :     return false;
    9075             :   }
    9076           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9077           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9078           0 :     return false;
    9079             :   }
    9080           0 :   return true;
    9081             : }
    9082             : 
    9083             : static bool
    9084           0 : set_border_right_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9085             : {
    9086           0 :   binding_detail::FakeString arg0;
    9087           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9088           0 :     return false;
    9089             :   }
    9090           0 :   binding_detail::FastErrorResult rv;
    9091           0 :   self->SetBorderRightColor(NonNullHelper(Constify(arg0)), rv);
    9092           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9093           0 :     return false;
    9094             :   }
    9095           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9096             : 
    9097           0 :   return true;
    9098             : }
    9099             : 
    9100             : static const JSJitInfo border_right_color_getterinfo = {
    9101             :   { (JSJitGetterOp)get_border_right_color },
    9102             :   { prototypes::id::CSS2Properties },
    9103             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9104             :   JSJitInfo::Getter,
    9105             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9106             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9107             :   false,  /* isInfallible. False in setters. */
    9108             :   false,  /* isMovable.  Not relevant for setters. */
    9109             :   false, /* isEliminatable.  Not relevant for setters. */
    9110             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9111             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9112             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9113             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9114             : };
    9115             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9116             : static_assert(0 < 1, "There is no slot for us");
    9117             : static const JSJitInfo border_right_color_setterinfo = {
    9118             :   { (JSJitGetterOp)set_border_right_color },
    9119             :   { prototypes::id::CSS2Properties },
    9120             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9121             :   JSJitInfo::Setter,
    9122             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9123             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9124             :   false,  /* isInfallible. False in setters. */
    9125             :   false,  /* isMovable.  Not relevant for setters. */
    9126             :   false, /* isEliminatable.  Not relevant for setters. */
    9127             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9128             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9129             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9130             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9131             : };
    9132             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9133             : static_assert(0 < 1, "There is no slot for us");
    9134             : 
    9135             : static bool
    9136           0 : get_MozBorderRightColors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9137             : {
    9138           0 :   binding_detail::FastErrorResult rv;
    9139           0 :   DOMString result;
    9140           0 :   self->GetMozBorderRightColors(result, rv);
    9141           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9142           0 :     return false;
    9143             :   }
    9144           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9145           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9146           0 :     return false;
    9147             :   }
    9148           0 :   return true;
    9149             : }
    9150             : 
    9151             : static bool
    9152           0 : set_MozBorderRightColors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9153             : {
    9154           0 :   binding_detail::FakeString arg0;
    9155           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9156           0 :     return false;
    9157             :   }
    9158           0 :   binding_detail::FastErrorResult rv;
    9159           0 :   self->SetMozBorderRightColors(NonNullHelper(Constify(arg0)), rv);
    9160           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9161           0 :     return false;
    9162             :   }
    9163           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9164             : 
    9165           0 :   return true;
    9166             : }
    9167             : 
    9168             : static const JSJitInfo MozBorderRightColors_getterinfo = {
    9169             :   { (JSJitGetterOp)get_MozBorderRightColors },
    9170             :   { prototypes::id::CSS2Properties },
    9171             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9172             :   JSJitInfo::Getter,
    9173             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9174             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9175             :   false,  /* isInfallible. False in setters. */
    9176             :   false,  /* isMovable.  Not relevant for setters. */
    9177             :   false, /* isEliminatable.  Not relevant for setters. */
    9178             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9179             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9180             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9181             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9182             : };
    9183             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9184             : static_assert(0 < 1, "There is no slot for us");
    9185             : static const JSJitInfo MozBorderRightColors_setterinfo = {
    9186             :   { (JSJitGetterOp)set_MozBorderRightColors },
    9187             :   { prototypes::id::CSS2Properties },
    9188             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9189             :   JSJitInfo::Setter,
    9190             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9191             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9192             :   false,  /* isInfallible. False in setters. */
    9193             :   false,  /* isMovable.  Not relevant for setters. */
    9194             :   false, /* isEliminatable.  Not relevant for setters. */
    9195             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9196             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9197             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9198             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9199             : };
    9200             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9201             : static_assert(0 < 1, "There is no slot for us");
    9202             : 
    9203             : static bool
    9204           0 : get__moz_border_right_colors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9205             : {
    9206           0 :   binding_detail::FastErrorResult rv;
    9207           0 :   DOMString result;
    9208           0 :   self->GetMozBorderRightColors(result, rv);
    9209           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9210           0 :     return false;
    9211             :   }
    9212           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9213           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9214           0 :     return false;
    9215             :   }
    9216           0 :   return true;
    9217             : }
    9218             : 
    9219             : static bool
    9220           0 : set__moz_border_right_colors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9221             : {
    9222           0 :   binding_detail::FakeString arg0;
    9223           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9224           0 :     return false;
    9225             :   }
    9226           0 :   binding_detail::FastErrorResult rv;
    9227           0 :   self->SetMozBorderRightColors(NonNullHelper(Constify(arg0)), rv);
    9228           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9229           0 :     return false;
    9230             :   }
    9231           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9232             : 
    9233           0 :   return true;
    9234             : }
    9235             : 
    9236             : static const JSJitInfo _moz_border_right_colors_getterinfo = {
    9237             :   { (JSJitGetterOp)get__moz_border_right_colors },
    9238             :   { prototypes::id::CSS2Properties },
    9239             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9240             :   JSJitInfo::Getter,
    9241             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9242             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9243             :   false,  /* isInfallible. False in setters. */
    9244             :   false,  /* isMovable.  Not relevant for setters. */
    9245             :   false, /* isEliminatable.  Not relevant for setters. */
    9246             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9247             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9248             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9249             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9250             : };
    9251             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9252             : static_assert(0 < 1, "There is no slot for us");
    9253             : static const JSJitInfo _moz_border_right_colors_setterinfo = {
    9254             :   { (JSJitGetterOp)set__moz_border_right_colors },
    9255             :   { prototypes::id::CSS2Properties },
    9256             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9257             :   JSJitInfo::Setter,
    9258             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9259             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9260             :   false,  /* isInfallible. False in setters. */
    9261             :   false,  /* isMovable.  Not relevant for setters. */
    9262             :   false, /* isEliminatable.  Not relevant for setters. */
    9263             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9264             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9265             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9266             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9267             : };
    9268             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9269             : static_assert(0 < 1, "There is no slot for us");
    9270             : 
    9271             : static bool
    9272           0 : get_borderRightStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9273             : {
    9274           0 :   binding_detail::FastErrorResult rv;
    9275           0 :   DOMString result;
    9276           0 :   self->GetBorderRightStyle(result, rv);
    9277           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9278           0 :     return false;
    9279             :   }
    9280           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9281           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9282           0 :     return false;
    9283             :   }
    9284           0 :   return true;
    9285             : }
    9286             : 
    9287             : static bool
    9288           0 : set_borderRightStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9289             : {
    9290           0 :   binding_detail::FakeString arg0;
    9291           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9292           0 :     return false;
    9293             :   }
    9294           0 :   binding_detail::FastErrorResult rv;
    9295           0 :   self->SetBorderRightStyle(NonNullHelper(Constify(arg0)), rv);
    9296           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9297           0 :     return false;
    9298             :   }
    9299           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9300             : 
    9301           0 :   return true;
    9302             : }
    9303             : 
    9304             : static const JSJitInfo borderRightStyle_getterinfo = {
    9305             :   { (JSJitGetterOp)get_borderRightStyle },
    9306             :   { prototypes::id::CSS2Properties },
    9307             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9308             :   JSJitInfo::Getter,
    9309             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9310             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9311             :   false,  /* isInfallible. False in setters. */
    9312             :   false,  /* isMovable.  Not relevant for setters. */
    9313             :   false, /* isEliminatable.  Not relevant for setters. */
    9314             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9315             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9316             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9317             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9318             : };
    9319             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9320             : static_assert(0 < 1, "There is no slot for us");
    9321             : static const JSJitInfo borderRightStyle_setterinfo = {
    9322             :   { (JSJitGetterOp)set_borderRightStyle },
    9323             :   { prototypes::id::CSS2Properties },
    9324             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9325             :   JSJitInfo::Setter,
    9326             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9327             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9328             :   false,  /* isInfallible. False in setters. */
    9329             :   false,  /* isMovable.  Not relevant for setters. */
    9330             :   false, /* isEliminatable.  Not relevant for setters. */
    9331             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9332             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9333             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9334             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9335             : };
    9336             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9337             : static_assert(0 < 1, "There is no slot for us");
    9338             : 
    9339             : static bool
    9340           0 : get_border_right_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9341             : {
    9342           0 :   binding_detail::FastErrorResult rv;
    9343           0 :   DOMString result;
    9344           0 :   self->GetBorderRightStyle(result, rv);
    9345           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9346           0 :     return false;
    9347             :   }
    9348           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9349           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9350           0 :     return false;
    9351             :   }
    9352           0 :   return true;
    9353             : }
    9354             : 
    9355             : static bool
    9356           0 : set_border_right_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9357             : {
    9358           0 :   binding_detail::FakeString arg0;
    9359           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9360           0 :     return false;
    9361             :   }
    9362           0 :   binding_detail::FastErrorResult rv;
    9363           0 :   self->SetBorderRightStyle(NonNullHelper(Constify(arg0)), rv);
    9364           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9365           0 :     return false;
    9366             :   }
    9367           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9368             : 
    9369           0 :   return true;
    9370             : }
    9371             : 
    9372             : static const JSJitInfo border_right_style_getterinfo = {
    9373             :   { (JSJitGetterOp)get_border_right_style },
    9374             :   { prototypes::id::CSS2Properties },
    9375             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9376             :   JSJitInfo::Getter,
    9377             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9378             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9379             :   false,  /* isInfallible. False in setters. */
    9380             :   false,  /* isMovable.  Not relevant for setters. */
    9381             :   false, /* isEliminatable.  Not relevant for setters. */
    9382             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9383             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9384             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9385             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9386             : };
    9387             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9388             : static_assert(0 < 1, "There is no slot for us");
    9389             : static const JSJitInfo border_right_style_setterinfo = {
    9390             :   { (JSJitGetterOp)set_border_right_style },
    9391             :   { prototypes::id::CSS2Properties },
    9392             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9393             :   JSJitInfo::Setter,
    9394             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9395             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9396             :   false,  /* isInfallible. False in setters. */
    9397             :   false,  /* isMovable.  Not relevant for setters. */
    9398             :   false, /* isEliminatable.  Not relevant for setters. */
    9399             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9400             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9401             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9402             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9403             : };
    9404             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9405             : static_assert(0 < 1, "There is no slot for us");
    9406             : 
    9407             : static bool
    9408           0 : get_borderRightWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9409             : {
    9410           0 :   binding_detail::FastErrorResult rv;
    9411           0 :   DOMString result;
    9412           0 :   self->GetBorderRightWidth(result, rv);
    9413           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9414           0 :     return false;
    9415             :   }
    9416           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9417           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9418           0 :     return false;
    9419             :   }
    9420           0 :   return true;
    9421             : }
    9422             : 
    9423             : static bool
    9424           0 : set_borderRightWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9425             : {
    9426           0 :   binding_detail::FakeString arg0;
    9427           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9428           0 :     return false;
    9429             :   }
    9430           0 :   binding_detail::FastErrorResult rv;
    9431           0 :   self->SetBorderRightWidth(NonNullHelper(Constify(arg0)), rv);
    9432           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9433           0 :     return false;
    9434             :   }
    9435           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9436             : 
    9437           0 :   return true;
    9438             : }
    9439             : 
    9440             : static const JSJitInfo borderRightWidth_getterinfo = {
    9441             :   { (JSJitGetterOp)get_borderRightWidth },
    9442             :   { prototypes::id::CSS2Properties },
    9443             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9444             :   JSJitInfo::Getter,
    9445             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9446             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9447             :   false,  /* isInfallible. False in setters. */
    9448             :   false,  /* isMovable.  Not relevant for setters. */
    9449             :   false, /* isEliminatable.  Not relevant for setters. */
    9450             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9451             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9452             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9453             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9454             : };
    9455             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9456             : static_assert(0 < 1, "There is no slot for us");
    9457             : static const JSJitInfo borderRightWidth_setterinfo = {
    9458             :   { (JSJitGetterOp)set_borderRightWidth },
    9459             :   { prototypes::id::CSS2Properties },
    9460             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9461             :   JSJitInfo::Setter,
    9462             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9463             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9464             :   false,  /* isInfallible. False in setters. */
    9465             :   false,  /* isMovable.  Not relevant for setters. */
    9466             :   false, /* isEliminatable.  Not relevant for setters. */
    9467             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9468             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9469             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9470             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9471             : };
    9472             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9473             : static_assert(0 < 1, "There is no slot for us");
    9474             : 
    9475             : static bool
    9476           0 : get_border_right_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9477             : {
    9478           0 :   binding_detail::FastErrorResult rv;
    9479           0 :   DOMString result;
    9480           0 :   self->GetBorderRightWidth(result, rv);
    9481           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9482           0 :     return false;
    9483             :   }
    9484           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9485           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9486           0 :     return false;
    9487             :   }
    9488           0 :   return true;
    9489             : }
    9490             : 
    9491             : static bool
    9492           0 : set_border_right_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9493             : {
    9494           0 :   binding_detail::FakeString arg0;
    9495           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9496           0 :     return false;
    9497             :   }
    9498           0 :   binding_detail::FastErrorResult rv;
    9499           0 :   self->SetBorderRightWidth(NonNullHelper(Constify(arg0)), rv);
    9500           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9501           0 :     return false;
    9502             :   }
    9503           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9504             : 
    9505           0 :   return true;
    9506             : }
    9507             : 
    9508             : static const JSJitInfo border_right_width_getterinfo = {
    9509             :   { (JSJitGetterOp)get_border_right_width },
    9510             :   { prototypes::id::CSS2Properties },
    9511             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9512             :   JSJitInfo::Getter,
    9513             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9514             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9515             :   false,  /* isInfallible. False in setters. */
    9516             :   false,  /* isMovable.  Not relevant for setters. */
    9517             :   false, /* isEliminatable.  Not relevant for setters. */
    9518             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9519             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9520             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9521             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9522             : };
    9523             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9524             : static_assert(0 < 1, "There is no slot for us");
    9525             : static const JSJitInfo border_right_width_setterinfo = {
    9526             :   { (JSJitGetterOp)set_border_right_width },
    9527             :   { prototypes::id::CSS2Properties },
    9528             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9529             :   JSJitInfo::Setter,
    9530             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9531             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9532             :   false,  /* isInfallible. False in setters. */
    9533             :   false,  /* isMovable.  Not relevant for setters. */
    9534             :   false, /* isEliminatable.  Not relevant for setters. */
    9535             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9536             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9537             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9538             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9539             : };
    9540             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9541             : static_assert(0 < 1, "There is no slot for us");
    9542             : 
    9543             : static bool
    9544           0 : get_borderSpacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9545             : {
    9546           0 :   binding_detail::FastErrorResult rv;
    9547           0 :   DOMString result;
    9548           0 :   self->GetBorderSpacing(result, rv);
    9549           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9550           0 :     return false;
    9551             :   }
    9552           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9553           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9554           0 :     return false;
    9555             :   }
    9556           0 :   return true;
    9557             : }
    9558             : 
    9559             : static bool
    9560           0 : set_borderSpacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9561             : {
    9562           0 :   binding_detail::FakeString arg0;
    9563           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9564           0 :     return false;
    9565             :   }
    9566           0 :   binding_detail::FastErrorResult rv;
    9567           0 :   self->SetBorderSpacing(NonNullHelper(Constify(arg0)), rv);
    9568           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9569           0 :     return false;
    9570             :   }
    9571           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9572             : 
    9573           0 :   return true;
    9574             : }
    9575             : 
    9576             : static const JSJitInfo borderSpacing_getterinfo = {
    9577             :   { (JSJitGetterOp)get_borderSpacing },
    9578             :   { prototypes::id::CSS2Properties },
    9579             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9580             :   JSJitInfo::Getter,
    9581             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9582             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9583             :   false,  /* isInfallible. False in setters. */
    9584             :   false,  /* isMovable.  Not relevant for setters. */
    9585             :   false, /* isEliminatable.  Not relevant for setters. */
    9586             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9587             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9588             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9589             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9590             : };
    9591             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9592             : static_assert(0 < 1, "There is no slot for us");
    9593             : static const JSJitInfo borderSpacing_setterinfo = {
    9594             :   { (JSJitGetterOp)set_borderSpacing },
    9595             :   { prototypes::id::CSS2Properties },
    9596             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9597             :   JSJitInfo::Setter,
    9598             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9599             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9600             :   false,  /* isInfallible. False in setters. */
    9601             :   false,  /* isMovable.  Not relevant for setters. */
    9602             :   false, /* isEliminatable.  Not relevant for setters. */
    9603             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9604             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9605             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9606             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9607             : };
    9608             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9609             : static_assert(0 < 1, "There is no slot for us");
    9610             : 
    9611             : static bool
    9612           0 : get_border_spacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9613             : {
    9614           0 :   binding_detail::FastErrorResult rv;
    9615           0 :   DOMString result;
    9616           0 :   self->GetBorderSpacing(result, rv);
    9617           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9618           0 :     return false;
    9619             :   }
    9620           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9621           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9622           0 :     return false;
    9623             :   }
    9624           0 :   return true;
    9625             : }
    9626             : 
    9627             : static bool
    9628           0 : set_border_spacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9629             : {
    9630           0 :   binding_detail::FakeString arg0;
    9631           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9632           0 :     return false;
    9633             :   }
    9634           0 :   binding_detail::FastErrorResult rv;
    9635           0 :   self->SetBorderSpacing(NonNullHelper(Constify(arg0)), rv);
    9636           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9637           0 :     return false;
    9638             :   }
    9639           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9640             : 
    9641           0 :   return true;
    9642             : }
    9643             : 
    9644             : static const JSJitInfo border_spacing_getterinfo = {
    9645             :   { (JSJitGetterOp)get_border_spacing },
    9646             :   { prototypes::id::CSS2Properties },
    9647             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9648             :   JSJitInfo::Getter,
    9649             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9650             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9651             :   false,  /* isInfallible. False in setters. */
    9652             :   false,  /* isMovable.  Not relevant for setters. */
    9653             :   false, /* isEliminatable.  Not relevant for setters. */
    9654             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9655             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9656             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9657             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9658             : };
    9659             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9660             : static_assert(0 < 1, "There is no slot for us");
    9661             : static const JSJitInfo border_spacing_setterinfo = {
    9662             :   { (JSJitGetterOp)set_border_spacing },
    9663             :   { prototypes::id::CSS2Properties },
    9664             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9665             :   JSJitInfo::Setter,
    9666             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9667             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9668             :   false,  /* isInfallible. False in setters. */
    9669             :   false,  /* isMovable.  Not relevant for setters. */
    9670             :   false, /* isEliminatable.  Not relevant for setters. */
    9671             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9672             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9673             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9674             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9675             : };
    9676             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9677             : static_assert(0 < 1, "There is no slot for us");
    9678             : 
    9679             : static bool
    9680           0 : get_borderStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9681             : {
    9682           0 :   binding_detail::FastErrorResult rv;
    9683           0 :   DOMString result;
    9684           0 :   self->GetBorderStyle(result, rv);
    9685           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9686           0 :     return false;
    9687             :   }
    9688           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9689           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9690           0 :     return false;
    9691             :   }
    9692           0 :   return true;
    9693             : }
    9694             : 
    9695             : static bool
    9696           0 : set_borderStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9697             : {
    9698           0 :   binding_detail::FakeString arg0;
    9699           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9700           0 :     return false;
    9701             :   }
    9702           0 :   binding_detail::FastErrorResult rv;
    9703           0 :   self->SetBorderStyle(NonNullHelper(Constify(arg0)), rv);
    9704           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9705           0 :     return false;
    9706             :   }
    9707           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9708             : 
    9709           0 :   return true;
    9710             : }
    9711             : 
    9712             : static const JSJitInfo borderStyle_getterinfo = {
    9713             :   { (JSJitGetterOp)get_borderStyle },
    9714             :   { prototypes::id::CSS2Properties },
    9715             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9716             :   JSJitInfo::Getter,
    9717             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9718             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9719             :   false,  /* isInfallible. False in setters. */
    9720             :   false,  /* isMovable.  Not relevant for setters. */
    9721             :   false, /* isEliminatable.  Not relevant for setters. */
    9722             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9723             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9724             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9725             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9726             : };
    9727             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9728             : static_assert(0 < 1, "There is no slot for us");
    9729             : static const JSJitInfo borderStyle_setterinfo = {
    9730             :   { (JSJitGetterOp)set_borderStyle },
    9731             :   { prototypes::id::CSS2Properties },
    9732             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9733             :   JSJitInfo::Setter,
    9734             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9735             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9736             :   false,  /* isInfallible. False in setters. */
    9737             :   false,  /* isMovable.  Not relevant for setters. */
    9738             :   false, /* isEliminatable.  Not relevant for setters. */
    9739             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9740             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9741             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9742             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9743             : };
    9744             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9745             : static_assert(0 < 1, "There is no slot for us");
    9746             : 
    9747             : static bool
    9748           0 : get_border_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9749             : {
    9750           0 :   binding_detail::FastErrorResult rv;
    9751           0 :   DOMString result;
    9752           0 :   self->GetBorderStyle(result, rv);
    9753           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9754           0 :     return false;
    9755             :   }
    9756           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9757           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9758           0 :     return false;
    9759             :   }
    9760           0 :   return true;
    9761             : }
    9762             : 
    9763             : static bool
    9764           0 : set_border_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9765             : {
    9766           0 :   binding_detail::FakeString arg0;
    9767           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9768           0 :     return false;
    9769             :   }
    9770           0 :   binding_detail::FastErrorResult rv;
    9771           0 :   self->SetBorderStyle(NonNullHelper(Constify(arg0)), rv);
    9772           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9773           0 :     return false;
    9774             :   }
    9775           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9776             : 
    9777           0 :   return true;
    9778             : }
    9779             : 
    9780             : static const JSJitInfo border_style_getterinfo = {
    9781             :   { (JSJitGetterOp)get_border_style },
    9782             :   { prototypes::id::CSS2Properties },
    9783             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9784             :   JSJitInfo::Getter,
    9785             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9786             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9787             :   false,  /* isInfallible. False in setters. */
    9788             :   false,  /* isMovable.  Not relevant for setters. */
    9789             :   false, /* isEliminatable.  Not relevant for setters. */
    9790             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9791             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9792             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9793             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9794             : };
    9795             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9796             : static_assert(0 < 1, "There is no slot for us");
    9797             : static const JSJitInfo border_style_setterinfo = {
    9798             :   { (JSJitGetterOp)set_border_style },
    9799             :   { prototypes::id::CSS2Properties },
    9800             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9801             :   JSJitInfo::Setter,
    9802             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9803             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9804             :   false,  /* isInfallible. False in setters. */
    9805             :   false,  /* isMovable.  Not relevant for setters. */
    9806             :   false, /* isEliminatable.  Not relevant for setters. */
    9807             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9808             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9809             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9810             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9811             : };
    9812             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9813             : static_assert(0 < 1, "There is no slot for us");
    9814             : 
    9815             : static bool
    9816           0 : get_borderTop(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9817             : {
    9818           0 :   binding_detail::FastErrorResult rv;
    9819           0 :   DOMString result;
    9820           0 :   self->GetBorderTop(result, rv);
    9821           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9822           0 :     return false;
    9823             :   }
    9824           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9825           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9826           0 :     return false;
    9827             :   }
    9828           0 :   return true;
    9829             : }
    9830             : 
    9831             : static bool
    9832           0 : set_borderTop(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9833             : {
    9834           0 :   binding_detail::FakeString arg0;
    9835           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9836           0 :     return false;
    9837             :   }
    9838           0 :   binding_detail::FastErrorResult rv;
    9839           0 :   self->SetBorderTop(NonNullHelper(Constify(arg0)), rv);
    9840           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9841           0 :     return false;
    9842             :   }
    9843           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9844             : 
    9845           0 :   return true;
    9846             : }
    9847             : 
    9848             : static const JSJitInfo borderTop_getterinfo = {
    9849             :   { (JSJitGetterOp)get_borderTop },
    9850             :   { prototypes::id::CSS2Properties },
    9851             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9852             :   JSJitInfo::Getter,
    9853             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9854             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9855             :   false,  /* isInfallible. False in setters. */
    9856             :   false,  /* isMovable.  Not relevant for setters. */
    9857             :   false, /* isEliminatable.  Not relevant for setters. */
    9858             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9859             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9860             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9861             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9862             : };
    9863             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9864             : static_assert(0 < 1, "There is no slot for us");
    9865             : static const JSJitInfo borderTop_setterinfo = {
    9866             :   { (JSJitGetterOp)set_borderTop },
    9867             :   { prototypes::id::CSS2Properties },
    9868             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9869             :   JSJitInfo::Setter,
    9870             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9871             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9872             :   false,  /* isInfallible. False in setters. */
    9873             :   false,  /* isMovable.  Not relevant for setters. */
    9874             :   false, /* isEliminatable.  Not relevant for setters. */
    9875             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9876             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9877             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9878             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9879             : };
    9880             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9881             : static_assert(0 < 1, "There is no slot for us");
    9882             : 
    9883             : static bool
    9884           0 : get_border_top(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9885             : {
    9886           0 :   binding_detail::FastErrorResult rv;
    9887           0 :   DOMString result;
    9888           0 :   self->GetBorderTop(result, rv);
    9889           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9890           0 :     return false;
    9891             :   }
    9892           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9893           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9894           0 :     return false;
    9895             :   }
    9896           0 :   return true;
    9897             : }
    9898             : 
    9899             : static bool
    9900           0 : set_border_top(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9901             : {
    9902           0 :   binding_detail::FakeString arg0;
    9903           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9904           0 :     return false;
    9905             :   }
    9906           0 :   binding_detail::FastErrorResult rv;
    9907           0 :   self->SetBorderTop(NonNullHelper(Constify(arg0)), rv);
    9908           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9909           0 :     return false;
    9910             :   }
    9911           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9912             : 
    9913           0 :   return true;
    9914             : }
    9915             : 
    9916             : static const JSJitInfo border_top_getterinfo = {
    9917             :   { (JSJitGetterOp)get_border_top },
    9918             :   { prototypes::id::CSS2Properties },
    9919             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9920             :   JSJitInfo::Getter,
    9921             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9922             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9923             :   false,  /* isInfallible. False in setters. */
    9924             :   false,  /* isMovable.  Not relevant for setters. */
    9925             :   false, /* isEliminatable.  Not relevant for setters. */
    9926             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9927             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9928             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9929             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9930             : };
    9931             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9932             : static_assert(0 < 1, "There is no slot for us");
    9933             : static const JSJitInfo border_top_setterinfo = {
    9934             :   { (JSJitGetterOp)set_border_top },
    9935             :   { prototypes::id::CSS2Properties },
    9936             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9937             :   JSJitInfo::Setter,
    9938             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9939             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
    9940             :   false,  /* isInfallible. False in setters. */
    9941             :   false,  /* isMovable.  Not relevant for setters. */
    9942             :   false, /* isEliminatable.  Not relevant for setters. */
    9943             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9944             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9945             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9946             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9947             : };
    9948             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
    9949             : static_assert(0 < 1, "There is no slot for us");
    9950             : 
    9951             : static bool
    9952           0 : get_borderTopColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
    9953             : {
    9954           0 :   binding_detail::FastErrorResult rv;
    9955           0 :   DOMString result;
    9956           0 :   self->GetBorderTopColor(result, rv);
    9957           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9958           0 :     return false;
    9959             :   }
    9960           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9961           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
    9962           0 :     return false;
    9963             :   }
    9964           0 :   return true;
    9965             : }
    9966             : 
    9967             : static bool
    9968           0 : set_borderTopColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
    9969             : {
    9970           0 :   binding_detail::FakeString arg0;
    9971           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    9972           0 :     return false;
    9973             :   }
    9974           0 :   binding_detail::FastErrorResult rv;
    9975           0 :   self->SetBorderTopColor(NonNullHelper(Constify(arg0)), rv);
    9976           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
    9977           0 :     return false;
    9978             :   }
    9979           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
    9980             : 
    9981           0 :   return true;
    9982             : }
    9983             : 
    9984             : static const JSJitInfo borderTopColor_getterinfo = {
    9985             :   { (JSJitGetterOp)get_borderTopColor },
    9986             :   { prototypes::id::CSS2Properties },
    9987             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
    9988             :   JSJitInfo::Getter,
    9989             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
    9990             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
    9991             :   false,  /* isInfallible. False in setters. */
    9992             :   false,  /* isMovable.  Not relevant for setters. */
    9993             :   false, /* isEliminatable.  Not relevant for setters. */
    9994             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
    9995             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
    9996             :   false,  /* isTypedMethod.  Only relevant for methods. */
    9997             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
    9998             : };
    9999             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10000             : static_assert(0 < 1, "There is no slot for us");
   10001             : static const JSJitInfo borderTopColor_setterinfo = {
   10002             :   { (JSJitGetterOp)set_borderTopColor },
   10003             :   { prototypes::id::CSS2Properties },
   10004             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10005             :   JSJitInfo::Setter,
   10006             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10007             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10008             :   false,  /* isInfallible. False in setters. */
   10009             :   false,  /* isMovable.  Not relevant for setters. */
   10010             :   false, /* isEliminatable.  Not relevant for setters. */
   10011             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10012             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10013             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10014             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10015             : };
   10016             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10017             : static_assert(0 < 1, "There is no slot for us");
   10018             : 
   10019             : static bool
   10020           0 : get_border_top_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10021             : {
   10022           0 :   binding_detail::FastErrorResult rv;
   10023           0 :   DOMString result;
   10024           0 :   self->GetBorderTopColor(result, rv);
   10025           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10026           0 :     return false;
   10027             :   }
   10028           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10029           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10030           0 :     return false;
   10031             :   }
   10032           0 :   return true;
   10033             : }
   10034             : 
   10035             : static bool
   10036           0 : set_border_top_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10037             : {
   10038           0 :   binding_detail::FakeString arg0;
   10039           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10040           0 :     return false;
   10041             :   }
   10042           0 :   binding_detail::FastErrorResult rv;
   10043           0 :   self->SetBorderTopColor(NonNullHelper(Constify(arg0)), rv);
   10044           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10045           0 :     return false;
   10046             :   }
   10047           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10048             : 
   10049           0 :   return true;
   10050             : }
   10051             : 
   10052             : static const JSJitInfo border_top_color_getterinfo = {
   10053             :   { (JSJitGetterOp)get_border_top_color },
   10054             :   { prototypes::id::CSS2Properties },
   10055             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10056             :   JSJitInfo::Getter,
   10057             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10058             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10059             :   false,  /* isInfallible. False in setters. */
   10060             :   false,  /* isMovable.  Not relevant for setters. */
   10061             :   false, /* isEliminatable.  Not relevant for setters. */
   10062             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10063             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10064             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10065             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10066             : };
   10067             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10068             : static_assert(0 < 1, "There is no slot for us");
   10069             : static const JSJitInfo border_top_color_setterinfo = {
   10070             :   { (JSJitGetterOp)set_border_top_color },
   10071             :   { prototypes::id::CSS2Properties },
   10072             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10073             :   JSJitInfo::Setter,
   10074             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10075             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10076             :   false,  /* isInfallible. False in setters. */
   10077             :   false,  /* isMovable.  Not relevant for setters. */
   10078             :   false, /* isEliminatable.  Not relevant for setters. */
   10079             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10080             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10081             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10082             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10083             : };
   10084             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10085             : static_assert(0 < 1, "There is no slot for us");
   10086             : 
   10087             : static bool
   10088           0 : get_MozBorderTopColors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10089             : {
   10090           0 :   binding_detail::FastErrorResult rv;
   10091           0 :   DOMString result;
   10092           0 :   self->GetMozBorderTopColors(result, rv);
   10093           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10094           0 :     return false;
   10095             :   }
   10096           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10097           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10098           0 :     return false;
   10099             :   }
   10100           0 :   return true;
   10101             : }
   10102             : 
   10103             : static bool
   10104           0 : set_MozBorderTopColors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10105             : {
   10106           0 :   binding_detail::FakeString arg0;
   10107           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10108           0 :     return false;
   10109             :   }
   10110           0 :   binding_detail::FastErrorResult rv;
   10111           0 :   self->SetMozBorderTopColors(NonNullHelper(Constify(arg0)), rv);
   10112           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10113           0 :     return false;
   10114             :   }
   10115           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10116             : 
   10117           0 :   return true;
   10118             : }
   10119             : 
   10120             : static const JSJitInfo MozBorderTopColors_getterinfo = {
   10121             :   { (JSJitGetterOp)get_MozBorderTopColors },
   10122             :   { prototypes::id::CSS2Properties },
   10123             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10124             :   JSJitInfo::Getter,
   10125             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10126             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10127             :   false,  /* isInfallible. False in setters. */
   10128             :   false,  /* isMovable.  Not relevant for setters. */
   10129             :   false, /* isEliminatable.  Not relevant for setters. */
   10130             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10131             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10132             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10133             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10134             : };
   10135             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10136             : static_assert(0 < 1, "There is no slot for us");
   10137             : static const JSJitInfo MozBorderTopColors_setterinfo = {
   10138             :   { (JSJitGetterOp)set_MozBorderTopColors },
   10139             :   { prototypes::id::CSS2Properties },
   10140             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10141             :   JSJitInfo::Setter,
   10142             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10143             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10144             :   false,  /* isInfallible. False in setters. */
   10145             :   false,  /* isMovable.  Not relevant for setters. */
   10146             :   false, /* isEliminatable.  Not relevant for setters. */
   10147             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10148             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10149             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10150             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10151             : };
   10152             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10153             : static_assert(0 < 1, "There is no slot for us");
   10154             : 
   10155             : static bool
   10156           0 : get__moz_border_top_colors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10157             : {
   10158           0 :   binding_detail::FastErrorResult rv;
   10159           0 :   DOMString result;
   10160           0 :   self->GetMozBorderTopColors(result, rv);
   10161           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10162           0 :     return false;
   10163             :   }
   10164           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10165           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10166           0 :     return false;
   10167             :   }
   10168           0 :   return true;
   10169             : }
   10170             : 
   10171             : static bool
   10172           0 : set__moz_border_top_colors(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10173             : {
   10174           0 :   binding_detail::FakeString arg0;
   10175           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10176           0 :     return false;
   10177             :   }
   10178           0 :   binding_detail::FastErrorResult rv;
   10179           0 :   self->SetMozBorderTopColors(NonNullHelper(Constify(arg0)), rv);
   10180           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10181           0 :     return false;
   10182             :   }
   10183           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10184             : 
   10185           0 :   return true;
   10186             : }
   10187             : 
   10188             : static const JSJitInfo _moz_border_top_colors_getterinfo = {
   10189             :   { (JSJitGetterOp)get__moz_border_top_colors },
   10190             :   { prototypes::id::CSS2Properties },
   10191             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10192             :   JSJitInfo::Getter,
   10193             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10194             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10195             :   false,  /* isInfallible. False in setters. */
   10196             :   false,  /* isMovable.  Not relevant for setters. */
   10197             :   false, /* isEliminatable.  Not relevant for setters. */
   10198             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10199             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10200             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10201             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10202             : };
   10203             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10204             : static_assert(0 < 1, "There is no slot for us");
   10205             : static const JSJitInfo _moz_border_top_colors_setterinfo = {
   10206             :   { (JSJitGetterOp)set__moz_border_top_colors },
   10207             :   { prototypes::id::CSS2Properties },
   10208             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10209             :   JSJitInfo::Setter,
   10210             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10211             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10212             :   false,  /* isInfallible. False in setters. */
   10213             :   false,  /* isMovable.  Not relevant for setters. */
   10214             :   false, /* isEliminatable.  Not relevant for setters. */
   10215             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10216             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10217             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10218             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10219             : };
   10220             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10221             : static_assert(0 < 1, "There is no slot for us");
   10222             : 
   10223             : static bool
   10224           0 : get_borderTopLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10225             : {
   10226           0 :   binding_detail::FastErrorResult rv;
   10227           0 :   DOMString result;
   10228           0 :   self->GetBorderTopLeftRadius(result, rv);
   10229           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10230           0 :     return false;
   10231             :   }
   10232           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10233           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10234           0 :     return false;
   10235             :   }
   10236           0 :   return true;
   10237             : }
   10238             : 
   10239             : static bool
   10240           0 : set_borderTopLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10241             : {
   10242           0 :   binding_detail::FakeString arg0;
   10243           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10244           0 :     return false;
   10245             :   }
   10246           0 :   binding_detail::FastErrorResult rv;
   10247           0 :   self->SetBorderTopLeftRadius(NonNullHelper(Constify(arg0)), rv);
   10248           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10249           0 :     return false;
   10250             :   }
   10251           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10252             : 
   10253           0 :   return true;
   10254             : }
   10255             : 
   10256             : static const JSJitInfo borderTopLeftRadius_getterinfo = {
   10257             :   { (JSJitGetterOp)get_borderTopLeftRadius },
   10258             :   { prototypes::id::CSS2Properties },
   10259             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10260             :   JSJitInfo::Getter,
   10261             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10262             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10263             :   false,  /* isInfallible. False in setters. */
   10264             :   false,  /* isMovable.  Not relevant for setters. */
   10265             :   false, /* isEliminatable.  Not relevant for setters. */
   10266             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10267             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10268             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10269             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10270             : };
   10271             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10272             : static_assert(0 < 1, "There is no slot for us");
   10273             : static const JSJitInfo borderTopLeftRadius_setterinfo = {
   10274             :   { (JSJitGetterOp)set_borderTopLeftRadius },
   10275             :   { prototypes::id::CSS2Properties },
   10276             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10277             :   JSJitInfo::Setter,
   10278             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10279             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10280             :   false,  /* isInfallible. False in setters. */
   10281             :   false,  /* isMovable.  Not relevant for setters. */
   10282             :   false, /* isEliminatable.  Not relevant for setters. */
   10283             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10284             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10285             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10286             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10287             : };
   10288             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10289             : static_assert(0 < 1, "There is no slot for us");
   10290             : 
   10291             : static bool
   10292           0 : get_border_top_left_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10293             : {
   10294           0 :   binding_detail::FastErrorResult rv;
   10295           0 :   DOMString result;
   10296           0 :   self->GetBorderTopLeftRadius(result, rv);
   10297           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10298           0 :     return false;
   10299             :   }
   10300           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10301           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10302           0 :     return false;
   10303             :   }
   10304           0 :   return true;
   10305             : }
   10306             : 
   10307             : static bool
   10308           0 : set_border_top_left_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10309             : {
   10310           0 :   binding_detail::FakeString arg0;
   10311           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10312           0 :     return false;
   10313             :   }
   10314           0 :   binding_detail::FastErrorResult rv;
   10315           0 :   self->SetBorderTopLeftRadius(NonNullHelper(Constify(arg0)), rv);
   10316           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10317           0 :     return false;
   10318             :   }
   10319           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10320             : 
   10321           0 :   return true;
   10322             : }
   10323             : 
   10324             : static const JSJitInfo border_top_left_radius_getterinfo = {
   10325             :   { (JSJitGetterOp)get_border_top_left_radius },
   10326             :   { prototypes::id::CSS2Properties },
   10327             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10328             :   JSJitInfo::Getter,
   10329             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10330             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10331             :   false,  /* isInfallible. False in setters. */
   10332             :   false,  /* isMovable.  Not relevant for setters. */
   10333             :   false, /* isEliminatable.  Not relevant for setters. */
   10334             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10335             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10336             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10337             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10338             : };
   10339             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10340             : static_assert(0 < 1, "There is no slot for us");
   10341             : static const JSJitInfo border_top_left_radius_setterinfo = {
   10342             :   { (JSJitGetterOp)set_border_top_left_radius },
   10343             :   { prototypes::id::CSS2Properties },
   10344             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10345             :   JSJitInfo::Setter,
   10346             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10347             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10348             :   false,  /* isInfallible. False in setters. */
   10349             :   false,  /* isMovable.  Not relevant for setters. */
   10350             :   false, /* isEliminatable.  Not relevant for setters. */
   10351             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10352             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10353             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10354             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10355             : };
   10356             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10357             : static_assert(0 < 1, "There is no slot for us");
   10358             : 
   10359             : static bool
   10360           0 : get_borderTopRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10361             : {
   10362           0 :   binding_detail::FastErrorResult rv;
   10363           0 :   DOMString result;
   10364           0 :   self->GetBorderTopRightRadius(result, rv);
   10365           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10366           0 :     return false;
   10367             :   }
   10368           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10369           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10370           0 :     return false;
   10371             :   }
   10372           0 :   return true;
   10373             : }
   10374             : 
   10375             : static bool
   10376           0 : set_borderTopRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10377             : {
   10378           0 :   binding_detail::FakeString arg0;
   10379           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10380           0 :     return false;
   10381             :   }
   10382           0 :   binding_detail::FastErrorResult rv;
   10383           0 :   self->SetBorderTopRightRadius(NonNullHelper(Constify(arg0)), rv);
   10384           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10385           0 :     return false;
   10386             :   }
   10387           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10388             : 
   10389           0 :   return true;
   10390             : }
   10391             : 
   10392             : static const JSJitInfo borderTopRightRadius_getterinfo = {
   10393             :   { (JSJitGetterOp)get_borderTopRightRadius },
   10394             :   { prototypes::id::CSS2Properties },
   10395             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10396             :   JSJitInfo::Getter,
   10397             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10398             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10399             :   false,  /* isInfallible. False in setters. */
   10400             :   false,  /* isMovable.  Not relevant for setters. */
   10401             :   false, /* isEliminatable.  Not relevant for setters. */
   10402             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10403             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10404             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10405             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10406             : };
   10407             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10408             : static_assert(0 < 1, "There is no slot for us");
   10409             : static const JSJitInfo borderTopRightRadius_setterinfo = {
   10410             :   { (JSJitGetterOp)set_borderTopRightRadius },
   10411             :   { prototypes::id::CSS2Properties },
   10412             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10413             :   JSJitInfo::Setter,
   10414             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10415             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10416             :   false,  /* isInfallible. False in setters. */
   10417             :   false,  /* isMovable.  Not relevant for setters. */
   10418             :   false, /* isEliminatable.  Not relevant for setters. */
   10419             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10420             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10421             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10422             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10423             : };
   10424             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10425             : static_assert(0 < 1, "There is no slot for us");
   10426             : 
   10427             : static bool
   10428           0 : get_border_top_right_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10429             : {
   10430           0 :   binding_detail::FastErrorResult rv;
   10431           0 :   DOMString result;
   10432           0 :   self->GetBorderTopRightRadius(result, rv);
   10433           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10434           0 :     return false;
   10435             :   }
   10436           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10437           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10438           0 :     return false;
   10439             :   }
   10440           0 :   return true;
   10441             : }
   10442             : 
   10443             : static bool
   10444           0 : set_border_top_right_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10445             : {
   10446           0 :   binding_detail::FakeString arg0;
   10447           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10448           0 :     return false;
   10449             :   }
   10450           0 :   binding_detail::FastErrorResult rv;
   10451           0 :   self->SetBorderTopRightRadius(NonNullHelper(Constify(arg0)), rv);
   10452           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10453           0 :     return false;
   10454             :   }
   10455           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10456             : 
   10457           0 :   return true;
   10458             : }
   10459             : 
   10460             : static const JSJitInfo border_top_right_radius_getterinfo = {
   10461             :   { (JSJitGetterOp)get_border_top_right_radius },
   10462             :   { prototypes::id::CSS2Properties },
   10463             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10464             :   JSJitInfo::Getter,
   10465             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10466             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10467             :   false,  /* isInfallible. False in setters. */
   10468             :   false,  /* isMovable.  Not relevant for setters. */
   10469             :   false, /* isEliminatable.  Not relevant for setters. */
   10470             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10471             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10472             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10473             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10474             : };
   10475             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10476             : static_assert(0 < 1, "There is no slot for us");
   10477             : static const JSJitInfo border_top_right_radius_setterinfo = {
   10478             :   { (JSJitGetterOp)set_border_top_right_radius },
   10479             :   { prototypes::id::CSS2Properties },
   10480             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10481             :   JSJitInfo::Setter,
   10482             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10483             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10484             :   false,  /* isInfallible. False in setters. */
   10485             :   false,  /* isMovable.  Not relevant for setters. */
   10486             :   false, /* isEliminatable.  Not relevant for setters. */
   10487             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10488             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10489             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10490             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10491             : };
   10492             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10493             : static_assert(0 < 1, "There is no slot for us");
   10494             : 
   10495             : static bool
   10496           0 : get_borderTopStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10497             : {
   10498           0 :   binding_detail::FastErrorResult rv;
   10499           0 :   DOMString result;
   10500           0 :   self->GetBorderTopStyle(result, rv);
   10501           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10502           0 :     return false;
   10503             :   }
   10504           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10505           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10506           0 :     return false;
   10507             :   }
   10508           0 :   return true;
   10509             : }
   10510             : 
   10511             : static bool
   10512           0 : set_borderTopStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10513             : {
   10514           0 :   binding_detail::FakeString arg0;
   10515           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10516           0 :     return false;
   10517             :   }
   10518           0 :   binding_detail::FastErrorResult rv;
   10519           0 :   self->SetBorderTopStyle(NonNullHelper(Constify(arg0)), rv);
   10520           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10521           0 :     return false;
   10522             :   }
   10523           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10524             : 
   10525           0 :   return true;
   10526             : }
   10527             : 
   10528             : static const JSJitInfo borderTopStyle_getterinfo = {
   10529             :   { (JSJitGetterOp)get_borderTopStyle },
   10530             :   { prototypes::id::CSS2Properties },
   10531             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10532             :   JSJitInfo::Getter,
   10533             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10534             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10535             :   false,  /* isInfallible. False in setters. */
   10536             :   false,  /* isMovable.  Not relevant for setters. */
   10537             :   false, /* isEliminatable.  Not relevant for setters. */
   10538             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10539             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10540             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10541             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10542             : };
   10543             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10544             : static_assert(0 < 1, "There is no slot for us");
   10545             : static const JSJitInfo borderTopStyle_setterinfo = {
   10546             :   { (JSJitGetterOp)set_borderTopStyle },
   10547             :   { prototypes::id::CSS2Properties },
   10548             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10549             :   JSJitInfo::Setter,
   10550             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10551             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10552             :   false,  /* isInfallible. False in setters. */
   10553             :   false,  /* isMovable.  Not relevant for setters. */
   10554             :   false, /* isEliminatable.  Not relevant for setters. */
   10555             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10556             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10557             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10558             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10559             : };
   10560             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10561             : static_assert(0 < 1, "There is no slot for us");
   10562             : 
   10563             : static bool
   10564           0 : get_border_top_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10565             : {
   10566           0 :   binding_detail::FastErrorResult rv;
   10567           0 :   DOMString result;
   10568           0 :   self->GetBorderTopStyle(result, rv);
   10569           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10570           0 :     return false;
   10571             :   }
   10572           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10573           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10574           0 :     return false;
   10575             :   }
   10576           0 :   return true;
   10577             : }
   10578             : 
   10579             : static bool
   10580           0 : set_border_top_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10581             : {
   10582           0 :   binding_detail::FakeString arg0;
   10583           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10584           0 :     return false;
   10585             :   }
   10586           0 :   binding_detail::FastErrorResult rv;
   10587           0 :   self->SetBorderTopStyle(NonNullHelper(Constify(arg0)), rv);
   10588           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10589           0 :     return false;
   10590             :   }
   10591           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10592             : 
   10593           0 :   return true;
   10594             : }
   10595             : 
   10596             : static const JSJitInfo border_top_style_getterinfo = {
   10597             :   { (JSJitGetterOp)get_border_top_style },
   10598             :   { prototypes::id::CSS2Properties },
   10599             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10600             :   JSJitInfo::Getter,
   10601             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10602             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10603             :   false,  /* isInfallible. False in setters. */
   10604             :   false,  /* isMovable.  Not relevant for setters. */
   10605             :   false, /* isEliminatable.  Not relevant for setters. */
   10606             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10607             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10608             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10609             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10610             : };
   10611             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10612             : static_assert(0 < 1, "There is no slot for us");
   10613             : static const JSJitInfo border_top_style_setterinfo = {
   10614             :   { (JSJitGetterOp)set_border_top_style },
   10615             :   { prototypes::id::CSS2Properties },
   10616             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10617             :   JSJitInfo::Setter,
   10618             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10619             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10620             :   false,  /* isInfallible. False in setters. */
   10621             :   false,  /* isMovable.  Not relevant for setters. */
   10622             :   false, /* isEliminatable.  Not relevant for setters. */
   10623             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10624             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10625             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10626             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10627             : };
   10628             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10629             : static_assert(0 < 1, "There is no slot for us");
   10630             : 
   10631             : static bool
   10632           0 : get_borderTopWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10633             : {
   10634           0 :   binding_detail::FastErrorResult rv;
   10635           0 :   DOMString result;
   10636           0 :   self->GetBorderTopWidth(result, rv);
   10637           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10638           0 :     return false;
   10639             :   }
   10640           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10641           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10642           0 :     return false;
   10643             :   }
   10644           0 :   return true;
   10645             : }
   10646             : 
   10647             : static bool
   10648           0 : set_borderTopWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10649             : {
   10650           0 :   binding_detail::FakeString arg0;
   10651           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10652           0 :     return false;
   10653             :   }
   10654           0 :   binding_detail::FastErrorResult rv;
   10655           0 :   self->SetBorderTopWidth(NonNullHelper(Constify(arg0)), rv);
   10656           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10657           0 :     return false;
   10658             :   }
   10659           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10660             : 
   10661           0 :   return true;
   10662             : }
   10663             : 
   10664             : static const JSJitInfo borderTopWidth_getterinfo = {
   10665             :   { (JSJitGetterOp)get_borderTopWidth },
   10666             :   { prototypes::id::CSS2Properties },
   10667             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10668             :   JSJitInfo::Getter,
   10669             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10670             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10671             :   false,  /* isInfallible. False in setters. */
   10672             :   false,  /* isMovable.  Not relevant for setters. */
   10673             :   false, /* isEliminatable.  Not relevant for setters. */
   10674             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10675             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10676             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10677             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10678             : };
   10679             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10680             : static_assert(0 < 1, "There is no slot for us");
   10681             : static const JSJitInfo borderTopWidth_setterinfo = {
   10682             :   { (JSJitGetterOp)set_borderTopWidth },
   10683             :   { prototypes::id::CSS2Properties },
   10684             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10685             :   JSJitInfo::Setter,
   10686             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10687             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10688             :   false,  /* isInfallible. False in setters. */
   10689             :   false,  /* isMovable.  Not relevant for setters. */
   10690             :   false, /* isEliminatable.  Not relevant for setters. */
   10691             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10692             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10693             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10694             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10695             : };
   10696             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10697             : static_assert(0 < 1, "There is no slot for us");
   10698             : 
   10699             : static bool
   10700           0 : get_border_top_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10701             : {
   10702           0 :   binding_detail::FastErrorResult rv;
   10703           0 :   DOMString result;
   10704           0 :   self->GetBorderTopWidth(result, rv);
   10705           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10706           0 :     return false;
   10707             :   }
   10708           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10709           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10710           0 :     return false;
   10711             :   }
   10712           0 :   return true;
   10713             : }
   10714             : 
   10715             : static bool
   10716           0 : set_border_top_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10717             : {
   10718           0 :   binding_detail::FakeString arg0;
   10719           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10720           0 :     return false;
   10721             :   }
   10722           0 :   binding_detail::FastErrorResult rv;
   10723           0 :   self->SetBorderTopWidth(NonNullHelper(Constify(arg0)), rv);
   10724           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10725           0 :     return false;
   10726             :   }
   10727           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10728             : 
   10729           0 :   return true;
   10730             : }
   10731             : 
   10732             : static const JSJitInfo border_top_width_getterinfo = {
   10733             :   { (JSJitGetterOp)get_border_top_width },
   10734             :   { prototypes::id::CSS2Properties },
   10735             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10736             :   JSJitInfo::Getter,
   10737             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10738             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10739             :   false,  /* isInfallible. False in setters. */
   10740             :   false,  /* isMovable.  Not relevant for setters. */
   10741             :   false, /* isEliminatable.  Not relevant for setters. */
   10742             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10743             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10744             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10745             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10746             : };
   10747             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10748             : static_assert(0 < 1, "There is no slot for us");
   10749             : static const JSJitInfo border_top_width_setterinfo = {
   10750             :   { (JSJitGetterOp)set_border_top_width },
   10751             :   { prototypes::id::CSS2Properties },
   10752             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10753             :   JSJitInfo::Setter,
   10754             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10755             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10756             :   false,  /* isInfallible. False in setters. */
   10757             :   false,  /* isMovable.  Not relevant for setters. */
   10758             :   false, /* isEliminatable.  Not relevant for setters. */
   10759             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10760             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10761             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10762             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10763             : };
   10764             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10765             : static_assert(0 < 1, "There is no slot for us");
   10766             : 
   10767             : static bool
   10768           0 : get_borderWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10769             : {
   10770           0 :   binding_detail::FastErrorResult rv;
   10771           0 :   DOMString result;
   10772           0 :   self->GetBorderWidth(result, rv);
   10773           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10774           0 :     return false;
   10775             :   }
   10776           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10777           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10778           0 :     return false;
   10779             :   }
   10780           0 :   return true;
   10781             : }
   10782             : 
   10783             : static bool
   10784           0 : set_borderWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10785             : {
   10786           0 :   binding_detail::FakeString arg0;
   10787           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10788           0 :     return false;
   10789             :   }
   10790           0 :   binding_detail::FastErrorResult rv;
   10791           0 :   self->SetBorderWidth(NonNullHelper(Constify(arg0)), rv);
   10792           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10793           0 :     return false;
   10794             :   }
   10795           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10796             : 
   10797           0 :   return true;
   10798             : }
   10799             : 
   10800             : static const JSJitInfo borderWidth_getterinfo = {
   10801             :   { (JSJitGetterOp)get_borderWidth },
   10802             :   { prototypes::id::CSS2Properties },
   10803             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10804             :   JSJitInfo::Getter,
   10805             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10806             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10807             :   false,  /* isInfallible. False in setters. */
   10808             :   false,  /* isMovable.  Not relevant for setters. */
   10809             :   false, /* isEliminatable.  Not relevant for setters. */
   10810             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10811             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10812             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10813             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10814             : };
   10815             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10816             : static_assert(0 < 1, "There is no slot for us");
   10817             : static const JSJitInfo borderWidth_setterinfo = {
   10818             :   { (JSJitGetterOp)set_borderWidth },
   10819             :   { prototypes::id::CSS2Properties },
   10820             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10821             :   JSJitInfo::Setter,
   10822             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10823             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10824             :   false,  /* isInfallible. False in setters. */
   10825             :   false,  /* isMovable.  Not relevant for setters. */
   10826             :   false, /* isEliminatable.  Not relevant for setters. */
   10827             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10828             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10829             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10830             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10831             : };
   10832             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10833             : static_assert(0 < 1, "There is no slot for us");
   10834             : 
   10835             : static bool
   10836           0 : get_border_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10837             : {
   10838           0 :   binding_detail::FastErrorResult rv;
   10839           0 :   DOMString result;
   10840           0 :   self->GetBorderWidth(result, rv);
   10841           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10842           0 :     return false;
   10843             :   }
   10844           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10845           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10846           0 :     return false;
   10847             :   }
   10848           0 :   return true;
   10849             : }
   10850             : 
   10851             : static bool
   10852           0 : set_border_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10853             : {
   10854           0 :   binding_detail::FakeString arg0;
   10855           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10856           0 :     return false;
   10857             :   }
   10858           0 :   binding_detail::FastErrorResult rv;
   10859           0 :   self->SetBorderWidth(NonNullHelper(Constify(arg0)), rv);
   10860           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10861           0 :     return false;
   10862             :   }
   10863           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10864             : 
   10865           0 :   return true;
   10866             : }
   10867             : 
   10868             : static const JSJitInfo border_width_getterinfo = {
   10869             :   { (JSJitGetterOp)get_border_width },
   10870             :   { prototypes::id::CSS2Properties },
   10871             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10872             :   JSJitInfo::Getter,
   10873             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10874             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10875             :   false,  /* isInfallible. False in setters. */
   10876             :   false,  /* isMovable.  Not relevant for setters. */
   10877             :   false, /* isEliminatable.  Not relevant for setters. */
   10878             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10879             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10880             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10881             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10882             : };
   10883             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10884             : static_assert(0 < 1, "There is no slot for us");
   10885             : static const JSJitInfo border_width_setterinfo = {
   10886             :   { (JSJitGetterOp)set_border_width },
   10887             :   { prototypes::id::CSS2Properties },
   10888             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10889             :   JSJitInfo::Setter,
   10890             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10891             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10892             :   false,  /* isInfallible. False in setters. */
   10893             :   false,  /* isMovable.  Not relevant for setters. */
   10894             :   false, /* isEliminatable.  Not relevant for setters. */
   10895             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10896             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10897             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10898             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10899             : };
   10900             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10901             : static_assert(0 < 1, "There is no slot for us");
   10902             : 
   10903             : static bool
   10904           0 : get_bottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10905             : {
   10906           0 :   binding_detail::FastErrorResult rv;
   10907           0 :   DOMString result;
   10908           0 :   self->GetBottom(result, rv);
   10909           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10910           0 :     return false;
   10911             :   }
   10912           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10913           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10914           0 :     return false;
   10915             :   }
   10916           0 :   return true;
   10917             : }
   10918             : 
   10919             : static bool
   10920           0 : set_bottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10921             : {
   10922           0 :   binding_detail::FakeString arg0;
   10923           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10924           0 :     return false;
   10925             :   }
   10926           0 :   binding_detail::FastErrorResult rv;
   10927           0 :   self->SetBottom(NonNullHelper(Constify(arg0)), rv);
   10928           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10929           0 :     return false;
   10930             :   }
   10931           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10932             : 
   10933           0 :   return true;
   10934             : }
   10935             : 
   10936             : static const JSJitInfo bottom_getterinfo = {
   10937             :   { (JSJitGetterOp)get_bottom },
   10938             :   { prototypes::id::CSS2Properties },
   10939             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10940             :   JSJitInfo::Getter,
   10941             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10942             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   10943             :   false,  /* isInfallible. False in setters. */
   10944             :   false,  /* isMovable.  Not relevant for setters. */
   10945             :   false, /* isEliminatable.  Not relevant for setters. */
   10946             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10947             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10948             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10949             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10950             : };
   10951             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10952             : static_assert(0 < 1, "There is no slot for us");
   10953             : static const JSJitInfo bottom_setterinfo = {
   10954             :   { (JSJitGetterOp)set_bottom },
   10955             :   { prototypes::id::CSS2Properties },
   10956             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   10957             :   JSJitInfo::Setter,
   10958             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   10959             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   10960             :   false,  /* isInfallible. False in setters. */
   10961             :   false,  /* isMovable.  Not relevant for setters. */
   10962             :   false, /* isEliminatable.  Not relevant for setters. */
   10963             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   10964             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   10965             :   false,  /* isTypedMethod.  Only relevant for methods. */
   10966             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   10967             : };
   10968             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   10969             : static_assert(0 < 1, "There is no slot for us");
   10970             : 
   10971             : static bool
   10972           0 : get_MozBoxAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   10973             : {
   10974           0 :   binding_detail::FastErrorResult rv;
   10975           0 :   DOMString result;
   10976           0 :   self->GetMozBoxAlign(result, rv);
   10977           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10978           0 :     return false;
   10979             :   }
   10980           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   10981           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   10982           0 :     return false;
   10983             :   }
   10984           0 :   return true;
   10985             : }
   10986             : 
   10987             : static bool
   10988           0 : set_MozBoxAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   10989             : {
   10990           0 :   binding_detail::FakeString arg0;
   10991           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   10992           0 :     return false;
   10993             :   }
   10994           0 :   binding_detail::FastErrorResult rv;
   10995           0 :   self->SetMozBoxAlign(NonNullHelper(Constify(arg0)), rv);
   10996           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   10997           0 :     return false;
   10998             :   }
   10999           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11000             : 
   11001           0 :   return true;
   11002             : }
   11003             : 
   11004             : static const JSJitInfo MozBoxAlign_getterinfo = {
   11005             :   { (JSJitGetterOp)get_MozBoxAlign },
   11006             :   { prototypes::id::CSS2Properties },
   11007             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11008             :   JSJitInfo::Getter,
   11009             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11010             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11011             :   false,  /* isInfallible. False in setters. */
   11012             :   false,  /* isMovable.  Not relevant for setters. */
   11013             :   false, /* isEliminatable.  Not relevant for setters. */
   11014             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11015             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11016             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11017             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11018             : };
   11019             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11020             : static_assert(0 < 1, "There is no slot for us");
   11021             : static const JSJitInfo MozBoxAlign_setterinfo = {
   11022             :   { (JSJitGetterOp)set_MozBoxAlign },
   11023             :   { prototypes::id::CSS2Properties },
   11024             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11025             :   JSJitInfo::Setter,
   11026             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11027             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11028             :   false,  /* isInfallible. False in setters. */
   11029             :   false,  /* isMovable.  Not relevant for setters. */
   11030             :   false, /* isEliminatable.  Not relevant for setters. */
   11031             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11032             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11033             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11034             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11035             : };
   11036             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11037             : static_assert(0 < 1, "There is no slot for us");
   11038             : 
   11039             : static bool
   11040           0 : get__moz_box_align(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11041             : {
   11042           0 :   binding_detail::FastErrorResult rv;
   11043           0 :   DOMString result;
   11044           0 :   self->GetMozBoxAlign(result, rv);
   11045           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11046           0 :     return false;
   11047             :   }
   11048           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11049           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11050           0 :     return false;
   11051             :   }
   11052           0 :   return true;
   11053             : }
   11054             : 
   11055             : static bool
   11056           0 : set__moz_box_align(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11057             : {
   11058           0 :   binding_detail::FakeString arg0;
   11059           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11060           0 :     return false;
   11061             :   }
   11062           0 :   binding_detail::FastErrorResult rv;
   11063           0 :   self->SetMozBoxAlign(NonNullHelper(Constify(arg0)), rv);
   11064           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11065           0 :     return false;
   11066             :   }
   11067           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11068             : 
   11069           0 :   return true;
   11070             : }
   11071             : 
   11072             : static const JSJitInfo _moz_box_align_getterinfo = {
   11073             :   { (JSJitGetterOp)get__moz_box_align },
   11074             :   { prototypes::id::CSS2Properties },
   11075             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11076             :   JSJitInfo::Getter,
   11077             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11078             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11079             :   false,  /* isInfallible. False in setters. */
   11080             :   false,  /* isMovable.  Not relevant for setters. */
   11081             :   false, /* isEliminatable.  Not relevant for setters. */
   11082             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11083             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11084             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11085             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11086             : };
   11087             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11088             : static_assert(0 < 1, "There is no slot for us");
   11089             : static const JSJitInfo _moz_box_align_setterinfo = {
   11090             :   { (JSJitGetterOp)set__moz_box_align },
   11091             :   { prototypes::id::CSS2Properties },
   11092             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11093             :   JSJitInfo::Setter,
   11094             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11095             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11096             :   false,  /* isInfallible. False in setters. */
   11097             :   false,  /* isMovable.  Not relevant for setters. */
   11098             :   false, /* isEliminatable.  Not relevant for setters. */
   11099             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11100             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11101             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11102             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11103             : };
   11104             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11105             : static_assert(0 < 1, "There is no slot for us");
   11106             : 
   11107             : static bool
   11108           0 : get_boxDecorationBreak(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11109             : {
   11110           0 :   binding_detail::FastErrorResult rv;
   11111           0 :   DOMString result;
   11112           0 :   self->GetBoxDecorationBreak(result, rv);
   11113           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11114           0 :     return false;
   11115             :   }
   11116           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11117           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11118           0 :     return false;
   11119             :   }
   11120           0 :   return true;
   11121             : }
   11122             : 
   11123             : static bool
   11124           0 : set_boxDecorationBreak(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11125             : {
   11126           0 :   binding_detail::FakeString arg0;
   11127           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11128           0 :     return false;
   11129             :   }
   11130           0 :   binding_detail::FastErrorResult rv;
   11131           0 :   self->SetBoxDecorationBreak(NonNullHelper(Constify(arg0)), rv);
   11132           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11133           0 :     return false;
   11134             :   }
   11135           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11136             : 
   11137           0 :   return true;
   11138             : }
   11139             : 
   11140             : static const JSJitInfo boxDecorationBreak_getterinfo = {
   11141             :   { (JSJitGetterOp)get_boxDecorationBreak },
   11142             :   { prototypes::id::CSS2Properties },
   11143             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11144             :   JSJitInfo::Getter,
   11145             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11146             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11147             :   false,  /* isInfallible. False in setters. */
   11148             :   false,  /* isMovable.  Not relevant for setters. */
   11149             :   false, /* isEliminatable.  Not relevant for setters. */
   11150             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11151             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11152             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11153             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11154             : };
   11155             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11156             : static_assert(0 < 1, "There is no slot for us");
   11157             : static const JSJitInfo boxDecorationBreak_setterinfo = {
   11158             :   { (JSJitGetterOp)set_boxDecorationBreak },
   11159             :   { prototypes::id::CSS2Properties },
   11160             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11161             :   JSJitInfo::Setter,
   11162             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11163             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11164             :   false,  /* isInfallible. False in setters. */
   11165             :   false,  /* isMovable.  Not relevant for setters. */
   11166             :   false, /* isEliminatable.  Not relevant for setters. */
   11167             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11168             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11169             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11170             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11171             : };
   11172             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11173             : static_assert(0 < 1, "There is no slot for us");
   11174             : 
   11175             : static bool
   11176           0 : get_box_decoration_break(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11177             : {
   11178           0 :   binding_detail::FastErrorResult rv;
   11179           0 :   DOMString result;
   11180           0 :   self->GetBoxDecorationBreak(result, rv);
   11181           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11182           0 :     return false;
   11183             :   }
   11184           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11185           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11186           0 :     return false;
   11187             :   }
   11188           0 :   return true;
   11189             : }
   11190             : 
   11191             : static bool
   11192           0 : set_box_decoration_break(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11193             : {
   11194           0 :   binding_detail::FakeString arg0;
   11195           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11196           0 :     return false;
   11197             :   }
   11198           0 :   binding_detail::FastErrorResult rv;
   11199           0 :   self->SetBoxDecorationBreak(NonNullHelper(Constify(arg0)), rv);
   11200           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11201           0 :     return false;
   11202             :   }
   11203           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11204             : 
   11205           0 :   return true;
   11206             : }
   11207             : 
   11208             : static const JSJitInfo box_decoration_break_getterinfo = {
   11209             :   { (JSJitGetterOp)get_box_decoration_break },
   11210             :   { prototypes::id::CSS2Properties },
   11211             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11212             :   JSJitInfo::Getter,
   11213             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11214             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11215             :   false,  /* isInfallible. False in setters. */
   11216             :   false,  /* isMovable.  Not relevant for setters. */
   11217             :   false, /* isEliminatable.  Not relevant for setters. */
   11218             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11219             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11220             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11221             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11222             : };
   11223             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11224             : static_assert(0 < 1, "There is no slot for us");
   11225             : static const JSJitInfo box_decoration_break_setterinfo = {
   11226             :   { (JSJitGetterOp)set_box_decoration_break },
   11227             :   { prototypes::id::CSS2Properties },
   11228             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11229             :   JSJitInfo::Setter,
   11230             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11231             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11232             :   false,  /* isInfallible. False in setters. */
   11233             :   false,  /* isMovable.  Not relevant for setters. */
   11234             :   false, /* isEliminatable.  Not relevant for setters. */
   11235             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11236             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11237             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11238             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11239             : };
   11240             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11241             : static_assert(0 < 1, "There is no slot for us");
   11242             : 
   11243             : static bool
   11244           0 : get_MozBoxDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11245             : {
   11246           0 :   binding_detail::FastErrorResult rv;
   11247           0 :   DOMString result;
   11248           0 :   self->GetMozBoxDirection(result, rv);
   11249           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11250           0 :     return false;
   11251             :   }
   11252           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11253           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11254           0 :     return false;
   11255             :   }
   11256           0 :   return true;
   11257             : }
   11258             : 
   11259             : static bool
   11260           0 : set_MozBoxDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11261             : {
   11262           0 :   binding_detail::FakeString arg0;
   11263           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11264           0 :     return false;
   11265             :   }
   11266           0 :   binding_detail::FastErrorResult rv;
   11267           0 :   self->SetMozBoxDirection(NonNullHelper(Constify(arg0)), rv);
   11268           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11269           0 :     return false;
   11270             :   }
   11271           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11272             : 
   11273           0 :   return true;
   11274             : }
   11275             : 
   11276             : static const JSJitInfo MozBoxDirection_getterinfo = {
   11277             :   { (JSJitGetterOp)get_MozBoxDirection },
   11278             :   { prototypes::id::CSS2Properties },
   11279             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11280             :   JSJitInfo::Getter,
   11281             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11282             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11283             :   false,  /* isInfallible. False in setters. */
   11284             :   false,  /* isMovable.  Not relevant for setters. */
   11285             :   false, /* isEliminatable.  Not relevant for setters. */
   11286             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11287             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11288             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11289             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11290             : };
   11291             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11292             : static_assert(0 < 1, "There is no slot for us");
   11293             : static const JSJitInfo MozBoxDirection_setterinfo = {
   11294             :   { (JSJitGetterOp)set_MozBoxDirection },
   11295             :   { prototypes::id::CSS2Properties },
   11296             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11297             :   JSJitInfo::Setter,
   11298             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11299             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11300             :   false,  /* isInfallible. False in setters. */
   11301             :   false,  /* isMovable.  Not relevant for setters. */
   11302             :   false, /* isEliminatable.  Not relevant for setters. */
   11303             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11304             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11305             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11306             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11307             : };
   11308             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11309             : static_assert(0 < 1, "There is no slot for us");
   11310             : 
   11311             : static bool
   11312           0 : get__moz_box_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11313             : {
   11314           0 :   binding_detail::FastErrorResult rv;
   11315           0 :   DOMString result;
   11316           0 :   self->GetMozBoxDirection(result, rv);
   11317           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11318           0 :     return false;
   11319             :   }
   11320           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11321           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11322           0 :     return false;
   11323             :   }
   11324           0 :   return true;
   11325             : }
   11326             : 
   11327             : static bool
   11328           0 : set__moz_box_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11329             : {
   11330           0 :   binding_detail::FakeString arg0;
   11331           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11332           0 :     return false;
   11333             :   }
   11334           0 :   binding_detail::FastErrorResult rv;
   11335           0 :   self->SetMozBoxDirection(NonNullHelper(Constify(arg0)), rv);
   11336           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11337           0 :     return false;
   11338             :   }
   11339           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11340             : 
   11341           0 :   return true;
   11342             : }
   11343             : 
   11344             : static const JSJitInfo _moz_box_direction_getterinfo = {
   11345             :   { (JSJitGetterOp)get__moz_box_direction },
   11346             :   { prototypes::id::CSS2Properties },
   11347             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11348             :   JSJitInfo::Getter,
   11349             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11350             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11351             :   false,  /* isInfallible. False in setters. */
   11352             :   false,  /* isMovable.  Not relevant for setters. */
   11353             :   false, /* isEliminatable.  Not relevant for setters. */
   11354             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11355             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11356             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11357             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11358             : };
   11359             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11360             : static_assert(0 < 1, "There is no slot for us");
   11361             : static const JSJitInfo _moz_box_direction_setterinfo = {
   11362             :   { (JSJitGetterOp)set__moz_box_direction },
   11363             :   { prototypes::id::CSS2Properties },
   11364             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11365             :   JSJitInfo::Setter,
   11366             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11367             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11368             :   false,  /* isInfallible. False in setters. */
   11369             :   false,  /* isMovable.  Not relevant for setters. */
   11370             :   false, /* isEliminatable.  Not relevant for setters. */
   11371             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11372             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11373             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11374             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11375             : };
   11376             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11377             : static_assert(0 < 1, "There is no slot for us");
   11378             : 
   11379             : static bool
   11380           0 : get_MozBoxFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11381             : {
   11382           0 :   binding_detail::FastErrorResult rv;
   11383           0 :   DOMString result;
   11384           0 :   self->GetMozBoxFlex(result, rv);
   11385           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11386           0 :     return false;
   11387             :   }
   11388           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11389           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11390           0 :     return false;
   11391             :   }
   11392           0 :   return true;
   11393             : }
   11394             : 
   11395             : static bool
   11396           0 : set_MozBoxFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11397             : {
   11398           0 :   binding_detail::FakeString arg0;
   11399           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11400           0 :     return false;
   11401             :   }
   11402           0 :   binding_detail::FastErrorResult rv;
   11403           0 :   self->SetMozBoxFlex(NonNullHelper(Constify(arg0)), rv);
   11404           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11405           0 :     return false;
   11406             :   }
   11407           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11408             : 
   11409           0 :   return true;
   11410             : }
   11411             : 
   11412             : static const JSJitInfo MozBoxFlex_getterinfo = {
   11413             :   { (JSJitGetterOp)get_MozBoxFlex },
   11414             :   { prototypes::id::CSS2Properties },
   11415             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11416             :   JSJitInfo::Getter,
   11417             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11418             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11419             :   false,  /* isInfallible. False in setters. */
   11420             :   false,  /* isMovable.  Not relevant for setters. */
   11421             :   false, /* isEliminatable.  Not relevant for setters. */
   11422             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11423             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11424             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11425             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11426             : };
   11427             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11428             : static_assert(0 < 1, "There is no slot for us");
   11429             : static const JSJitInfo MozBoxFlex_setterinfo = {
   11430             :   { (JSJitGetterOp)set_MozBoxFlex },
   11431             :   { prototypes::id::CSS2Properties },
   11432             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11433             :   JSJitInfo::Setter,
   11434             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11435             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11436             :   false,  /* isInfallible. False in setters. */
   11437             :   false,  /* isMovable.  Not relevant for setters. */
   11438             :   false, /* isEliminatable.  Not relevant for setters. */
   11439             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11440             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11441             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11442             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11443             : };
   11444             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11445             : static_assert(0 < 1, "There is no slot for us");
   11446             : 
   11447             : static bool
   11448           0 : get__moz_box_flex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11449             : {
   11450           0 :   binding_detail::FastErrorResult rv;
   11451           0 :   DOMString result;
   11452           0 :   self->GetMozBoxFlex(result, rv);
   11453           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11454           0 :     return false;
   11455             :   }
   11456           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11457           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11458           0 :     return false;
   11459             :   }
   11460           0 :   return true;
   11461             : }
   11462             : 
   11463             : static bool
   11464           0 : set__moz_box_flex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11465             : {
   11466           0 :   binding_detail::FakeString arg0;
   11467           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11468           0 :     return false;
   11469             :   }
   11470           0 :   binding_detail::FastErrorResult rv;
   11471           0 :   self->SetMozBoxFlex(NonNullHelper(Constify(arg0)), rv);
   11472           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11473           0 :     return false;
   11474             :   }
   11475           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11476             : 
   11477           0 :   return true;
   11478             : }
   11479             : 
   11480             : static const JSJitInfo _moz_box_flex_getterinfo = {
   11481             :   { (JSJitGetterOp)get__moz_box_flex },
   11482             :   { prototypes::id::CSS2Properties },
   11483             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11484             :   JSJitInfo::Getter,
   11485             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11486             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11487             :   false,  /* isInfallible. False in setters. */
   11488             :   false,  /* isMovable.  Not relevant for setters. */
   11489             :   false, /* isEliminatable.  Not relevant for setters. */
   11490             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11491             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11492             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11493             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11494             : };
   11495             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11496             : static_assert(0 < 1, "There is no slot for us");
   11497             : static const JSJitInfo _moz_box_flex_setterinfo = {
   11498             :   { (JSJitGetterOp)set__moz_box_flex },
   11499             :   { prototypes::id::CSS2Properties },
   11500             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11501             :   JSJitInfo::Setter,
   11502             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11503             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11504             :   false,  /* isInfallible. False in setters. */
   11505             :   false,  /* isMovable.  Not relevant for setters. */
   11506             :   false, /* isEliminatable.  Not relevant for setters. */
   11507             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11508             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11509             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11510             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11511             : };
   11512             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11513             : static_assert(0 < 1, "There is no slot for us");
   11514             : 
   11515             : static bool
   11516           0 : get_MozBoxOrdinalGroup(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11517             : {
   11518           0 :   binding_detail::FastErrorResult rv;
   11519           0 :   DOMString result;
   11520           0 :   self->GetMozBoxOrdinalGroup(result, rv);
   11521           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11522           0 :     return false;
   11523             :   }
   11524           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11525           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11526           0 :     return false;
   11527             :   }
   11528           0 :   return true;
   11529             : }
   11530             : 
   11531             : static bool
   11532           0 : set_MozBoxOrdinalGroup(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11533             : {
   11534           0 :   binding_detail::FakeString arg0;
   11535           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11536           0 :     return false;
   11537             :   }
   11538           0 :   binding_detail::FastErrorResult rv;
   11539           0 :   self->SetMozBoxOrdinalGroup(NonNullHelper(Constify(arg0)), rv);
   11540           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11541           0 :     return false;
   11542             :   }
   11543           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11544             : 
   11545           0 :   return true;
   11546             : }
   11547             : 
   11548             : static const JSJitInfo MozBoxOrdinalGroup_getterinfo = {
   11549             :   { (JSJitGetterOp)get_MozBoxOrdinalGroup },
   11550             :   { prototypes::id::CSS2Properties },
   11551             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11552             :   JSJitInfo::Getter,
   11553             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11554             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11555             :   false,  /* isInfallible. False in setters. */
   11556             :   false,  /* isMovable.  Not relevant for setters. */
   11557             :   false, /* isEliminatable.  Not relevant for setters. */
   11558             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11559             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11560             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11561             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11562             : };
   11563             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11564             : static_assert(0 < 1, "There is no slot for us");
   11565             : static const JSJitInfo MozBoxOrdinalGroup_setterinfo = {
   11566             :   { (JSJitGetterOp)set_MozBoxOrdinalGroup },
   11567             :   { prototypes::id::CSS2Properties },
   11568             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11569             :   JSJitInfo::Setter,
   11570             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11571             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11572             :   false,  /* isInfallible. False in setters. */
   11573             :   false,  /* isMovable.  Not relevant for setters. */
   11574             :   false, /* isEliminatable.  Not relevant for setters. */
   11575             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11576             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11577             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11578             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11579             : };
   11580             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11581             : static_assert(0 < 1, "There is no slot for us");
   11582             : 
   11583             : static bool
   11584           0 : get__moz_box_ordinal_group(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11585             : {
   11586           0 :   binding_detail::FastErrorResult rv;
   11587           0 :   DOMString result;
   11588           0 :   self->GetMozBoxOrdinalGroup(result, rv);
   11589           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11590           0 :     return false;
   11591             :   }
   11592           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11593           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11594           0 :     return false;
   11595             :   }
   11596           0 :   return true;
   11597             : }
   11598             : 
   11599             : static bool
   11600           0 : set__moz_box_ordinal_group(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11601             : {
   11602           0 :   binding_detail::FakeString arg0;
   11603           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11604           0 :     return false;
   11605             :   }
   11606           0 :   binding_detail::FastErrorResult rv;
   11607           0 :   self->SetMozBoxOrdinalGroup(NonNullHelper(Constify(arg0)), rv);
   11608           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11609           0 :     return false;
   11610             :   }
   11611           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11612             : 
   11613           0 :   return true;
   11614             : }
   11615             : 
   11616             : static const JSJitInfo _moz_box_ordinal_group_getterinfo = {
   11617             :   { (JSJitGetterOp)get__moz_box_ordinal_group },
   11618             :   { prototypes::id::CSS2Properties },
   11619             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11620             :   JSJitInfo::Getter,
   11621             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11622             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11623             :   false,  /* isInfallible. False in setters. */
   11624             :   false,  /* isMovable.  Not relevant for setters. */
   11625             :   false, /* isEliminatable.  Not relevant for setters. */
   11626             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11627             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11628             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11629             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11630             : };
   11631             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11632             : static_assert(0 < 1, "There is no slot for us");
   11633             : static const JSJitInfo _moz_box_ordinal_group_setterinfo = {
   11634             :   { (JSJitGetterOp)set__moz_box_ordinal_group },
   11635             :   { prototypes::id::CSS2Properties },
   11636             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11637             :   JSJitInfo::Setter,
   11638             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11639             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11640             :   false,  /* isInfallible. False in setters. */
   11641             :   false,  /* isMovable.  Not relevant for setters. */
   11642             :   false, /* isEliminatable.  Not relevant for setters. */
   11643             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11644             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11645             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11646             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11647             : };
   11648             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11649             : static_assert(0 < 1, "There is no slot for us");
   11650             : 
   11651             : static bool
   11652           0 : get_MozBoxOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11653             : {
   11654           0 :   binding_detail::FastErrorResult rv;
   11655           0 :   DOMString result;
   11656           0 :   self->GetMozBoxOrient(result, rv);
   11657           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11658           0 :     return false;
   11659             :   }
   11660           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11661           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11662           0 :     return false;
   11663             :   }
   11664           0 :   return true;
   11665             : }
   11666             : 
   11667             : static bool
   11668           0 : set_MozBoxOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11669             : {
   11670           0 :   binding_detail::FakeString arg0;
   11671           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11672           0 :     return false;
   11673             :   }
   11674           0 :   binding_detail::FastErrorResult rv;
   11675           0 :   self->SetMozBoxOrient(NonNullHelper(Constify(arg0)), rv);
   11676           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11677           0 :     return false;
   11678             :   }
   11679           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11680             : 
   11681           0 :   return true;
   11682             : }
   11683             : 
   11684             : static const JSJitInfo MozBoxOrient_getterinfo = {
   11685             :   { (JSJitGetterOp)get_MozBoxOrient },
   11686             :   { prototypes::id::CSS2Properties },
   11687             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11688             :   JSJitInfo::Getter,
   11689             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11690             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11691             :   false,  /* isInfallible. False in setters. */
   11692             :   false,  /* isMovable.  Not relevant for setters. */
   11693             :   false, /* isEliminatable.  Not relevant for setters. */
   11694             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11695             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11696             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11697             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11698             : };
   11699             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11700             : static_assert(0 < 1, "There is no slot for us");
   11701             : static const JSJitInfo MozBoxOrient_setterinfo = {
   11702             :   { (JSJitGetterOp)set_MozBoxOrient },
   11703             :   { prototypes::id::CSS2Properties },
   11704             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11705             :   JSJitInfo::Setter,
   11706             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11707             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11708             :   false,  /* isInfallible. False in setters. */
   11709             :   false,  /* isMovable.  Not relevant for setters. */
   11710             :   false, /* isEliminatable.  Not relevant for setters. */
   11711             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11712             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11713             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11714             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11715             : };
   11716             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11717             : static_assert(0 < 1, "There is no slot for us");
   11718             : 
   11719             : static bool
   11720           0 : get__moz_box_orient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11721             : {
   11722           0 :   binding_detail::FastErrorResult rv;
   11723           0 :   DOMString result;
   11724           0 :   self->GetMozBoxOrient(result, rv);
   11725           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11726           0 :     return false;
   11727             :   }
   11728           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11729           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11730           0 :     return false;
   11731             :   }
   11732           0 :   return true;
   11733             : }
   11734             : 
   11735             : static bool
   11736           0 : set__moz_box_orient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11737             : {
   11738           0 :   binding_detail::FakeString arg0;
   11739           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11740           0 :     return false;
   11741             :   }
   11742           0 :   binding_detail::FastErrorResult rv;
   11743           0 :   self->SetMozBoxOrient(NonNullHelper(Constify(arg0)), rv);
   11744           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11745           0 :     return false;
   11746             :   }
   11747           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11748             : 
   11749           0 :   return true;
   11750             : }
   11751             : 
   11752             : static const JSJitInfo _moz_box_orient_getterinfo = {
   11753             :   { (JSJitGetterOp)get__moz_box_orient },
   11754             :   { prototypes::id::CSS2Properties },
   11755             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11756             :   JSJitInfo::Getter,
   11757             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11758             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11759             :   false,  /* isInfallible. False in setters. */
   11760             :   false,  /* isMovable.  Not relevant for setters. */
   11761             :   false, /* isEliminatable.  Not relevant for setters. */
   11762             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11763             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11764             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11765             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11766             : };
   11767             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11768             : static_assert(0 < 1, "There is no slot for us");
   11769             : static const JSJitInfo _moz_box_orient_setterinfo = {
   11770             :   { (JSJitGetterOp)set__moz_box_orient },
   11771             :   { prototypes::id::CSS2Properties },
   11772             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11773             :   JSJitInfo::Setter,
   11774             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11775             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11776             :   false,  /* isInfallible. False in setters. */
   11777             :   false,  /* isMovable.  Not relevant for setters. */
   11778             :   false, /* isEliminatable.  Not relevant for setters. */
   11779             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11780             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11781             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11782             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11783             : };
   11784             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11785             : static_assert(0 < 1, "There is no slot for us");
   11786             : 
   11787             : static bool
   11788           0 : get_MozBoxPack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11789             : {
   11790           0 :   binding_detail::FastErrorResult rv;
   11791           0 :   DOMString result;
   11792           0 :   self->GetMozBoxPack(result, rv);
   11793           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11794           0 :     return false;
   11795             :   }
   11796           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11797           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11798           0 :     return false;
   11799             :   }
   11800           0 :   return true;
   11801             : }
   11802             : 
   11803             : static bool
   11804           0 : set_MozBoxPack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11805             : {
   11806           0 :   binding_detail::FakeString arg0;
   11807           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11808           0 :     return false;
   11809             :   }
   11810           0 :   binding_detail::FastErrorResult rv;
   11811           0 :   self->SetMozBoxPack(NonNullHelper(Constify(arg0)), rv);
   11812           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11813           0 :     return false;
   11814             :   }
   11815           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11816             : 
   11817           0 :   return true;
   11818             : }
   11819             : 
   11820             : static const JSJitInfo MozBoxPack_getterinfo = {
   11821             :   { (JSJitGetterOp)get_MozBoxPack },
   11822             :   { prototypes::id::CSS2Properties },
   11823             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11824             :   JSJitInfo::Getter,
   11825             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11826             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11827             :   false,  /* isInfallible. False in setters. */
   11828             :   false,  /* isMovable.  Not relevant for setters. */
   11829             :   false, /* isEliminatable.  Not relevant for setters. */
   11830             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11831             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11832             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11833             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11834             : };
   11835             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11836             : static_assert(0 < 1, "There is no slot for us");
   11837             : static const JSJitInfo MozBoxPack_setterinfo = {
   11838             :   { (JSJitGetterOp)set_MozBoxPack },
   11839             :   { prototypes::id::CSS2Properties },
   11840             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11841             :   JSJitInfo::Setter,
   11842             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11843             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11844             :   false,  /* isInfallible. False in setters. */
   11845             :   false,  /* isMovable.  Not relevant for setters. */
   11846             :   false, /* isEliminatable.  Not relevant for setters. */
   11847             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11848             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11849             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11850             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11851             : };
   11852             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11853             : static_assert(0 < 1, "There is no slot for us");
   11854             : 
   11855             : static bool
   11856           0 : get__moz_box_pack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11857             : {
   11858           0 :   binding_detail::FastErrorResult rv;
   11859           0 :   DOMString result;
   11860           0 :   self->GetMozBoxPack(result, rv);
   11861           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11862           0 :     return false;
   11863             :   }
   11864           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11865           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11866           0 :     return false;
   11867             :   }
   11868           0 :   return true;
   11869             : }
   11870             : 
   11871             : static bool
   11872           0 : set__moz_box_pack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11873             : {
   11874           0 :   binding_detail::FakeString arg0;
   11875           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11876           0 :     return false;
   11877             :   }
   11878           0 :   binding_detail::FastErrorResult rv;
   11879           0 :   self->SetMozBoxPack(NonNullHelper(Constify(arg0)), rv);
   11880           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11881           0 :     return false;
   11882             :   }
   11883           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11884             : 
   11885           0 :   return true;
   11886             : }
   11887             : 
   11888             : static const JSJitInfo _moz_box_pack_getterinfo = {
   11889             :   { (JSJitGetterOp)get__moz_box_pack },
   11890             :   { prototypes::id::CSS2Properties },
   11891             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11892             :   JSJitInfo::Getter,
   11893             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11894             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11895             :   false,  /* isInfallible. False in setters. */
   11896             :   false,  /* isMovable.  Not relevant for setters. */
   11897             :   false, /* isEliminatable.  Not relevant for setters. */
   11898             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11899             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11900             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11901             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11902             : };
   11903             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11904             : static_assert(0 < 1, "There is no slot for us");
   11905             : static const JSJitInfo _moz_box_pack_setterinfo = {
   11906             :   { (JSJitGetterOp)set__moz_box_pack },
   11907             :   { prototypes::id::CSS2Properties },
   11908             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11909             :   JSJitInfo::Setter,
   11910             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11911             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11912             :   false,  /* isInfallible. False in setters. */
   11913             :   false,  /* isMovable.  Not relevant for setters. */
   11914             :   false, /* isEliminatable.  Not relevant for setters. */
   11915             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11916             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11917             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11918             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11919             : };
   11920             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11921             : static_assert(0 < 1, "There is no slot for us");
   11922             : 
   11923             : static bool
   11924           0 : get_boxShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11925             : {
   11926           0 :   binding_detail::FastErrorResult rv;
   11927           0 :   DOMString result;
   11928           0 :   self->GetBoxShadow(result, rv);
   11929           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11930           0 :     return false;
   11931             :   }
   11932           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11933           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   11934           0 :     return false;
   11935             :   }
   11936           0 :   return true;
   11937             : }
   11938             : 
   11939             : static bool
   11940           0 : set_boxShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   11941             : {
   11942           0 :   binding_detail::FakeString arg0;
   11943           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   11944           0 :     return false;
   11945             :   }
   11946           0 :   binding_detail::FastErrorResult rv;
   11947           0 :   self->SetBoxShadow(NonNullHelper(Constify(arg0)), rv);
   11948           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11949           0 :     return false;
   11950             :   }
   11951           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   11952             : 
   11953           0 :   return true;
   11954             : }
   11955             : 
   11956             : static const JSJitInfo boxShadow_getterinfo = {
   11957             :   { (JSJitGetterOp)get_boxShadow },
   11958             :   { prototypes::id::CSS2Properties },
   11959             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11960             :   JSJitInfo::Getter,
   11961             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11962             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   11963             :   false,  /* isInfallible. False in setters. */
   11964             :   false,  /* isMovable.  Not relevant for setters. */
   11965             :   false, /* isEliminatable.  Not relevant for setters. */
   11966             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11967             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11968             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11969             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11970             : };
   11971             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11972             : static_assert(0 < 1, "There is no slot for us");
   11973             : static const JSJitInfo boxShadow_setterinfo = {
   11974             :   { (JSJitGetterOp)set_boxShadow },
   11975             :   { prototypes::id::CSS2Properties },
   11976             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   11977             :   JSJitInfo::Setter,
   11978             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   11979             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   11980             :   false,  /* isInfallible. False in setters. */
   11981             :   false,  /* isMovable.  Not relevant for setters. */
   11982             :   false, /* isEliminatable.  Not relevant for setters. */
   11983             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   11984             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   11985             :   false,  /* isTypedMethod.  Only relevant for methods. */
   11986             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   11987             : };
   11988             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   11989             : static_assert(0 < 1, "There is no slot for us");
   11990             : 
   11991             : static bool
   11992           0 : get_box_shadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   11993             : {
   11994           0 :   binding_detail::FastErrorResult rv;
   11995           0 :   DOMString result;
   11996           0 :   self->GetBoxShadow(result, rv);
   11997           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   11998           0 :     return false;
   11999             :   }
   12000           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12001           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12002           0 :     return false;
   12003             :   }
   12004           0 :   return true;
   12005             : }
   12006             : 
   12007             : static bool
   12008           0 : set_box_shadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12009             : {
   12010           0 :   binding_detail::FakeString arg0;
   12011           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12012           0 :     return false;
   12013             :   }
   12014           0 :   binding_detail::FastErrorResult rv;
   12015           0 :   self->SetBoxShadow(NonNullHelper(Constify(arg0)), rv);
   12016           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12017           0 :     return false;
   12018             :   }
   12019           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12020             : 
   12021           0 :   return true;
   12022             : }
   12023             : 
   12024             : static const JSJitInfo box_shadow_getterinfo = {
   12025             :   { (JSJitGetterOp)get_box_shadow },
   12026             :   { prototypes::id::CSS2Properties },
   12027             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12028             :   JSJitInfo::Getter,
   12029             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12030             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12031             :   false,  /* isInfallible. False in setters. */
   12032             :   false,  /* isMovable.  Not relevant for setters. */
   12033             :   false, /* isEliminatable.  Not relevant for setters. */
   12034             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12035             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12036             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12037             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12038             : };
   12039             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12040             : static_assert(0 < 1, "There is no slot for us");
   12041             : static const JSJitInfo box_shadow_setterinfo = {
   12042             :   { (JSJitGetterOp)set_box_shadow },
   12043             :   { prototypes::id::CSS2Properties },
   12044             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12045             :   JSJitInfo::Setter,
   12046             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12047             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12048             :   false,  /* isInfallible. False in setters. */
   12049             :   false,  /* isMovable.  Not relevant for setters. */
   12050             :   false, /* isEliminatable.  Not relevant for setters. */
   12051             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12052             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12053             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12054             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12055             : };
   12056             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12057             : static_assert(0 < 1, "There is no slot for us");
   12058             : 
   12059             : static bool
   12060           0 : get_boxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12061             : {
   12062           0 :   binding_detail::FastErrorResult rv;
   12063           0 :   DOMString result;
   12064           0 :   self->GetBoxSizing(result, rv);
   12065           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12066           0 :     return false;
   12067             :   }
   12068           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12069           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12070           0 :     return false;
   12071             :   }
   12072           0 :   return true;
   12073             : }
   12074             : 
   12075             : static bool
   12076           0 : set_boxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12077             : {
   12078           0 :   binding_detail::FakeString arg0;
   12079           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12080           0 :     return false;
   12081             :   }
   12082           0 :   binding_detail::FastErrorResult rv;
   12083           0 :   self->SetBoxSizing(NonNullHelper(Constify(arg0)), rv);
   12084           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12085           0 :     return false;
   12086             :   }
   12087           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12088             : 
   12089           0 :   return true;
   12090             : }
   12091             : 
   12092             : static const JSJitInfo boxSizing_getterinfo = {
   12093             :   { (JSJitGetterOp)get_boxSizing },
   12094             :   { prototypes::id::CSS2Properties },
   12095             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12096             :   JSJitInfo::Getter,
   12097             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12098             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12099             :   false,  /* isInfallible. False in setters. */
   12100             :   false,  /* isMovable.  Not relevant for setters. */
   12101             :   false, /* isEliminatable.  Not relevant for setters. */
   12102             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12103             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12104             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12105             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12106             : };
   12107             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12108             : static_assert(0 < 1, "There is no slot for us");
   12109             : static const JSJitInfo boxSizing_setterinfo = {
   12110             :   { (JSJitGetterOp)set_boxSizing },
   12111             :   { prototypes::id::CSS2Properties },
   12112             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12113             :   JSJitInfo::Setter,
   12114             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12115             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12116             :   false,  /* isInfallible. False in setters. */
   12117             :   false,  /* isMovable.  Not relevant for setters. */
   12118             :   false, /* isEliminatable.  Not relevant for setters. */
   12119             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12120             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12121             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12122             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12123             : };
   12124             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12125             : static_assert(0 < 1, "There is no slot for us");
   12126             : 
   12127             : static bool
   12128           0 : get_box_sizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12129             : {
   12130           0 :   binding_detail::FastErrorResult rv;
   12131           0 :   DOMString result;
   12132           0 :   self->GetBoxSizing(result, rv);
   12133           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12134           0 :     return false;
   12135             :   }
   12136           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12137           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12138           0 :     return false;
   12139             :   }
   12140           0 :   return true;
   12141             : }
   12142             : 
   12143             : static bool
   12144           0 : set_box_sizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12145             : {
   12146           0 :   binding_detail::FakeString arg0;
   12147           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12148           0 :     return false;
   12149             :   }
   12150           0 :   binding_detail::FastErrorResult rv;
   12151           0 :   self->SetBoxSizing(NonNullHelper(Constify(arg0)), rv);
   12152           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12153           0 :     return false;
   12154             :   }
   12155           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12156             : 
   12157           0 :   return true;
   12158             : }
   12159             : 
   12160             : static const JSJitInfo box_sizing_getterinfo = {
   12161             :   { (JSJitGetterOp)get_box_sizing },
   12162             :   { prototypes::id::CSS2Properties },
   12163             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12164             :   JSJitInfo::Getter,
   12165             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12166             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12167             :   false,  /* isInfallible. False in setters. */
   12168             :   false,  /* isMovable.  Not relevant for setters. */
   12169             :   false, /* isEliminatable.  Not relevant for setters. */
   12170             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12171             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12172             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12173             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12174             : };
   12175             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12176             : static_assert(0 < 1, "There is no slot for us");
   12177             : static const JSJitInfo box_sizing_setterinfo = {
   12178             :   { (JSJitGetterOp)set_box_sizing },
   12179             :   { prototypes::id::CSS2Properties },
   12180             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12181             :   JSJitInfo::Setter,
   12182             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12183             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12184             :   false,  /* isInfallible. False in setters. */
   12185             :   false,  /* isMovable.  Not relevant for setters. */
   12186             :   false, /* isEliminatable.  Not relevant for setters. */
   12187             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12188             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12189             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12190             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12191             : };
   12192             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12193             : static_assert(0 < 1, "There is no slot for us");
   12194             : 
   12195             : static bool
   12196           0 : get_captionSide(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12197             : {
   12198           0 :   binding_detail::FastErrorResult rv;
   12199           0 :   DOMString result;
   12200           0 :   self->GetCaptionSide(result, rv);
   12201           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12202           0 :     return false;
   12203             :   }
   12204           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12205           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12206           0 :     return false;
   12207             :   }
   12208           0 :   return true;
   12209             : }
   12210             : 
   12211             : static bool
   12212           0 : set_captionSide(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12213             : {
   12214           0 :   binding_detail::FakeString arg0;
   12215           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12216           0 :     return false;
   12217             :   }
   12218           0 :   binding_detail::FastErrorResult rv;
   12219           0 :   self->SetCaptionSide(NonNullHelper(Constify(arg0)), rv);
   12220           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12221           0 :     return false;
   12222             :   }
   12223           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12224             : 
   12225           0 :   return true;
   12226             : }
   12227             : 
   12228             : static const JSJitInfo captionSide_getterinfo = {
   12229             :   { (JSJitGetterOp)get_captionSide },
   12230             :   { prototypes::id::CSS2Properties },
   12231             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12232             :   JSJitInfo::Getter,
   12233             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12234             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12235             :   false,  /* isInfallible. False in setters. */
   12236             :   false,  /* isMovable.  Not relevant for setters. */
   12237             :   false, /* isEliminatable.  Not relevant for setters. */
   12238             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12239             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12240             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12241             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12242             : };
   12243             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12244             : static_assert(0 < 1, "There is no slot for us");
   12245             : static const JSJitInfo captionSide_setterinfo = {
   12246             :   { (JSJitGetterOp)set_captionSide },
   12247             :   { prototypes::id::CSS2Properties },
   12248             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12249             :   JSJitInfo::Setter,
   12250             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12251             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12252             :   false,  /* isInfallible. False in setters. */
   12253             :   false,  /* isMovable.  Not relevant for setters. */
   12254             :   false, /* isEliminatable.  Not relevant for setters. */
   12255             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12256             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12257             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12258             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12259             : };
   12260             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12261             : static_assert(0 < 1, "There is no slot for us");
   12262             : 
   12263             : static bool
   12264           0 : get_caption_side(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12265             : {
   12266           0 :   binding_detail::FastErrorResult rv;
   12267           0 :   DOMString result;
   12268           0 :   self->GetCaptionSide(result, rv);
   12269           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12270           0 :     return false;
   12271             :   }
   12272           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12273           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12274           0 :     return false;
   12275             :   }
   12276           0 :   return true;
   12277             : }
   12278             : 
   12279             : static bool
   12280           0 : set_caption_side(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12281             : {
   12282           0 :   binding_detail::FakeString arg0;
   12283           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12284           0 :     return false;
   12285             :   }
   12286           0 :   binding_detail::FastErrorResult rv;
   12287           0 :   self->SetCaptionSide(NonNullHelper(Constify(arg0)), rv);
   12288           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12289           0 :     return false;
   12290             :   }
   12291           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12292             : 
   12293           0 :   return true;
   12294             : }
   12295             : 
   12296             : static const JSJitInfo caption_side_getterinfo = {
   12297             :   { (JSJitGetterOp)get_caption_side },
   12298             :   { prototypes::id::CSS2Properties },
   12299             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12300             :   JSJitInfo::Getter,
   12301             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12302             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12303             :   false,  /* isInfallible. False in setters. */
   12304             :   false,  /* isMovable.  Not relevant for setters. */
   12305             :   false, /* isEliminatable.  Not relevant for setters. */
   12306             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12307             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12308             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12309             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12310             : };
   12311             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12312             : static_assert(0 < 1, "There is no slot for us");
   12313             : static const JSJitInfo caption_side_setterinfo = {
   12314             :   { (JSJitGetterOp)set_caption_side },
   12315             :   { prototypes::id::CSS2Properties },
   12316             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12317             :   JSJitInfo::Setter,
   12318             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12319             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12320             :   false,  /* isInfallible. False in setters. */
   12321             :   false,  /* isMovable.  Not relevant for setters. */
   12322             :   false, /* isEliminatable.  Not relevant for setters. */
   12323             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12324             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12325             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12326             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12327             : };
   12328             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12329             : static_assert(0 < 1, "There is no slot for us");
   12330             : 
   12331             : static bool
   12332           0 : get_caretColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12333             : {
   12334           0 :   binding_detail::FastErrorResult rv;
   12335           0 :   DOMString result;
   12336           0 :   self->GetCaretColor(result, rv);
   12337           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12338           0 :     return false;
   12339             :   }
   12340           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12341           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12342           0 :     return false;
   12343             :   }
   12344           0 :   return true;
   12345             : }
   12346             : 
   12347             : static bool
   12348           0 : set_caretColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12349             : {
   12350           0 :   binding_detail::FakeString arg0;
   12351           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12352           0 :     return false;
   12353             :   }
   12354           0 :   binding_detail::FastErrorResult rv;
   12355           0 :   self->SetCaretColor(NonNullHelper(Constify(arg0)), rv);
   12356           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12357           0 :     return false;
   12358             :   }
   12359           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12360             : 
   12361           0 :   return true;
   12362             : }
   12363             : 
   12364             : static const JSJitInfo caretColor_getterinfo = {
   12365             :   { (JSJitGetterOp)get_caretColor },
   12366             :   { prototypes::id::CSS2Properties },
   12367             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12368             :   JSJitInfo::Getter,
   12369             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12370             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12371             :   false,  /* isInfallible. False in setters. */
   12372             :   false,  /* isMovable.  Not relevant for setters. */
   12373             :   false, /* isEliminatable.  Not relevant for setters. */
   12374             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12375             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12376             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12377             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12378             : };
   12379             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12380             : static_assert(0 < 1, "There is no slot for us");
   12381             : static const JSJitInfo caretColor_setterinfo = {
   12382             :   { (JSJitGetterOp)set_caretColor },
   12383             :   { prototypes::id::CSS2Properties },
   12384             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12385             :   JSJitInfo::Setter,
   12386             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12387             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12388             :   false,  /* isInfallible. False in setters. */
   12389             :   false,  /* isMovable.  Not relevant for setters. */
   12390             :   false, /* isEliminatable.  Not relevant for setters. */
   12391             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12392             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12393             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12394             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12395             : };
   12396             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12397             : static_assert(0 < 1, "There is no slot for us");
   12398             : 
   12399             : static bool
   12400           0 : get_caret_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12401             : {
   12402           0 :   binding_detail::FastErrorResult rv;
   12403           0 :   DOMString result;
   12404           0 :   self->GetCaretColor(result, rv);
   12405           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12406           0 :     return false;
   12407             :   }
   12408           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12409           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12410           0 :     return false;
   12411             :   }
   12412           0 :   return true;
   12413             : }
   12414             : 
   12415             : static bool
   12416           0 : set_caret_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12417             : {
   12418           0 :   binding_detail::FakeString arg0;
   12419           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12420           0 :     return false;
   12421             :   }
   12422           0 :   binding_detail::FastErrorResult rv;
   12423           0 :   self->SetCaretColor(NonNullHelper(Constify(arg0)), rv);
   12424           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12425           0 :     return false;
   12426             :   }
   12427           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12428             : 
   12429           0 :   return true;
   12430             : }
   12431             : 
   12432             : static const JSJitInfo caret_color_getterinfo = {
   12433             :   { (JSJitGetterOp)get_caret_color },
   12434             :   { prototypes::id::CSS2Properties },
   12435             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12436             :   JSJitInfo::Getter,
   12437             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12438             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12439             :   false,  /* isInfallible. False in setters. */
   12440             :   false,  /* isMovable.  Not relevant for setters. */
   12441             :   false, /* isEliminatable.  Not relevant for setters. */
   12442             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12443             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12444             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12445             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12446             : };
   12447             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12448             : static_assert(0 < 1, "There is no slot for us");
   12449             : static const JSJitInfo caret_color_setterinfo = {
   12450             :   { (JSJitGetterOp)set_caret_color },
   12451             :   { prototypes::id::CSS2Properties },
   12452             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12453             :   JSJitInfo::Setter,
   12454             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12455             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12456             :   false,  /* isInfallible. False in setters. */
   12457             :   false,  /* isMovable.  Not relevant for setters. */
   12458             :   false, /* isEliminatable.  Not relevant for setters. */
   12459             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12460             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12461             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12462             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12463             : };
   12464             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12465             : static_assert(0 < 1, "There is no slot for us");
   12466             : 
   12467             : static bool
   12468           0 : get_clear(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12469             : {
   12470           0 :   binding_detail::FastErrorResult rv;
   12471           0 :   DOMString result;
   12472           0 :   self->GetClear(result, rv);
   12473           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12474           0 :     return false;
   12475             :   }
   12476           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12477           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12478           0 :     return false;
   12479             :   }
   12480           0 :   return true;
   12481             : }
   12482             : 
   12483             : static bool
   12484           0 : set_clear(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12485             : {
   12486           0 :   binding_detail::FakeString arg0;
   12487           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12488           0 :     return false;
   12489             :   }
   12490           0 :   binding_detail::FastErrorResult rv;
   12491           0 :   self->SetClear(NonNullHelper(Constify(arg0)), rv);
   12492           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12493           0 :     return false;
   12494             :   }
   12495           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12496             : 
   12497           0 :   return true;
   12498             : }
   12499             : 
   12500             : static const JSJitInfo clear_getterinfo = {
   12501             :   { (JSJitGetterOp)get_clear },
   12502             :   { prototypes::id::CSS2Properties },
   12503             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12504             :   JSJitInfo::Getter,
   12505             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12506             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12507             :   false,  /* isInfallible. False in setters. */
   12508             :   false,  /* isMovable.  Not relevant for setters. */
   12509             :   false, /* isEliminatable.  Not relevant for setters. */
   12510             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12511             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12512             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12513             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12514             : };
   12515             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12516             : static_assert(0 < 1, "There is no slot for us");
   12517             : static const JSJitInfo clear_setterinfo = {
   12518             :   { (JSJitGetterOp)set_clear },
   12519             :   { prototypes::id::CSS2Properties },
   12520             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12521             :   JSJitInfo::Setter,
   12522             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12523             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12524             :   false,  /* isInfallible. False in setters. */
   12525             :   false,  /* isMovable.  Not relevant for setters. */
   12526             :   false, /* isEliminatable.  Not relevant for setters. */
   12527             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12528             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12529             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12530             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12531             : };
   12532             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12533             : static_assert(0 < 1, "There is no slot for us");
   12534             : 
   12535             : static bool
   12536           0 : get_clip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12537             : {
   12538           0 :   binding_detail::FastErrorResult rv;
   12539           0 :   DOMString result;
   12540           0 :   self->GetClip(result, rv);
   12541           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12542           0 :     return false;
   12543             :   }
   12544           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12545           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12546           0 :     return false;
   12547             :   }
   12548           0 :   return true;
   12549             : }
   12550             : 
   12551             : static bool
   12552           0 : set_clip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12553             : {
   12554           0 :   binding_detail::FakeString arg0;
   12555           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12556           0 :     return false;
   12557             :   }
   12558           0 :   binding_detail::FastErrorResult rv;
   12559           0 :   self->SetClip(NonNullHelper(Constify(arg0)), rv);
   12560           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12561           0 :     return false;
   12562             :   }
   12563           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12564             : 
   12565           0 :   return true;
   12566             : }
   12567             : 
   12568             : static const JSJitInfo clip_getterinfo = {
   12569             :   { (JSJitGetterOp)get_clip },
   12570             :   { prototypes::id::CSS2Properties },
   12571             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12572             :   JSJitInfo::Getter,
   12573             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12574             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12575             :   false,  /* isInfallible. False in setters. */
   12576             :   false,  /* isMovable.  Not relevant for setters. */
   12577             :   false, /* isEliminatable.  Not relevant for setters. */
   12578             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12579             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12580             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12581             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12582             : };
   12583             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12584             : static_assert(0 < 1, "There is no slot for us");
   12585             : static const JSJitInfo clip_setterinfo = {
   12586             :   { (JSJitGetterOp)set_clip },
   12587             :   { prototypes::id::CSS2Properties },
   12588             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12589             :   JSJitInfo::Setter,
   12590             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12591             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12592             :   false,  /* isInfallible. False in setters. */
   12593             :   false,  /* isMovable.  Not relevant for setters. */
   12594             :   false, /* isEliminatable.  Not relevant for setters. */
   12595             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12596             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12597             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12598             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12599             : };
   12600             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12601             : static_assert(0 < 1, "There is no slot for us");
   12602             : 
   12603             : static bool
   12604           0 : get_clipPath(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12605             : {
   12606           0 :   binding_detail::FastErrorResult rv;
   12607           0 :   DOMString result;
   12608           0 :   self->GetClipPath(result, rv);
   12609           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12610           0 :     return false;
   12611             :   }
   12612           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12613           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12614           0 :     return false;
   12615             :   }
   12616           0 :   return true;
   12617             : }
   12618             : 
   12619             : static bool
   12620           0 : set_clipPath(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12621             : {
   12622           0 :   binding_detail::FakeString arg0;
   12623           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12624           0 :     return false;
   12625             :   }
   12626           0 :   binding_detail::FastErrorResult rv;
   12627           0 :   self->SetClipPath(NonNullHelper(Constify(arg0)), rv);
   12628           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12629           0 :     return false;
   12630             :   }
   12631           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12632             : 
   12633           0 :   return true;
   12634             : }
   12635             : 
   12636             : static const JSJitInfo clipPath_getterinfo = {
   12637             :   { (JSJitGetterOp)get_clipPath },
   12638             :   { prototypes::id::CSS2Properties },
   12639             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12640             :   JSJitInfo::Getter,
   12641             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12642             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12643             :   false,  /* isInfallible. False in setters. */
   12644             :   false,  /* isMovable.  Not relevant for setters. */
   12645             :   false, /* isEliminatable.  Not relevant for setters. */
   12646             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12647             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12648             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12649             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12650             : };
   12651             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12652             : static_assert(0 < 1, "There is no slot for us");
   12653             : static const JSJitInfo clipPath_setterinfo = {
   12654             :   { (JSJitGetterOp)set_clipPath },
   12655             :   { prototypes::id::CSS2Properties },
   12656             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12657             :   JSJitInfo::Setter,
   12658             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12659             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12660             :   false,  /* isInfallible. False in setters. */
   12661             :   false,  /* isMovable.  Not relevant for setters. */
   12662             :   false, /* isEliminatable.  Not relevant for setters. */
   12663             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12664             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12665             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12666             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12667             : };
   12668             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12669             : static_assert(0 < 1, "There is no slot for us");
   12670             : 
   12671             : static bool
   12672           0 : get_clip_path(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12673             : {
   12674           0 :   binding_detail::FastErrorResult rv;
   12675           0 :   DOMString result;
   12676           0 :   self->GetClipPath(result, rv);
   12677           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12678           0 :     return false;
   12679             :   }
   12680           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12681           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12682           0 :     return false;
   12683             :   }
   12684           0 :   return true;
   12685             : }
   12686             : 
   12687             : static bool
   12688           0 : set_clip_path(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12689             : {
   12690           0 :   binding_detail::FakeString arg0;
   12691           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12692           0 :     return false;
   12693             :   }
   12694           0 :   binding_detail::FastErrorResult rv;
   12695           0 :   self->SetClipPath(NonNullHelper(Constify(arg0)), rv);
   12696           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12697           0 :     return false;
   12698             :   }
   12699           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12700             : 
   12701           0 :   return true;
   12702             : }
   12703             : 
   12704             : static const JSJitInfo clip_path_getterinfo = {
   12705             :   { (JSJitGetterOp)get_clip_path },
   12706             :   { prototypes::id::CSS2Properties },
   12707             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12708             :   JSJitInfo::Getter,
   12709             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12710             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12711             :   false,  /* isInfallible. False in setters. */
   12712             :   false,  /* isMovable.  Not relevant for setters. */
   12713             :   false, /* isEliminatable.  Not relevant for setters. */
   12714             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12715             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12716             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12717             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12718             : };
   12719             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12720             : static_assert(0 < 1, "There is no slot for us");
   12721             : static const JSJitInfo clip_path_setterinfo = {
   12722             :   { (JSJitGetterOp)set_clip_path },
   12723             :   { prototypes::id::CSS2Properties },
   12724             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12725             :   JSJitInfo::Setter,
   12726             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12727             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12728             :   false,  /* isInfallible. False in setters. */
   12729             :   false,  /* isMovable.  Not relevant for setters. */
   12730             :   false, /* isEliminatable.  Not relevant for setters. */
   12731             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12732             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12733             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12734             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12735             : };
   12736             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12737             : static_assert(0 < 1, "There is no slot for us");
   12738             : 
   12739             : static bool
   12740           0 : get_clipRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12741             : {
   12742           0 :   binding_detail::FastErrorResult rv;
   12743           0 :   DOMString result;
   12744           0 :   self->GetClipRule(result, rv);
   12745           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12746           0 :     return false;
   12747             :   }
   12748           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12749           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12750           0 :     return false;
   12751             :   }
   12752           0 :   return true;
   12753             : }
   12754             : 
   12755             : static bool
   12756           0 : set_clipRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12757             : {
   12758           0 :   binding_detail::FakeString arg0;
   12759           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12760           0 :     return false;
   12761             :   }
   12762           0 :   binding_detail::FastErrorResult rv;
   12763           0 :   self->SetClipRule(NonNullHelper(Constify(arg0)), rv);
   12764           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12765           0 :     return false;
   12766             :   }
   12767           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12768             : 
   12769           0 :   return true;
   12770             : }
   12771             : 
   12772             : static const JSJitInfo clipRule_getterinfo = {
   12773             :   { (JSJitGetterOp)get_clipRule },
   12774             :   { prototypes::id::CSS2Properties },
   12775             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12776             :   JSJitInfo::Getter,
   12777             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12778             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12779             :   false,  /* isInfallible. False in setters. */
   12780             :   false,  /* isMovable.  Not relevant for setters. */
   12781             :   false, /* isEliminatable.  Not relevant for setters. */
   12782             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12783             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12784             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12785             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12786             : };
   12787             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12788             : static_assert(0 < 1, "There is no slot for us");
   12789             : static const JSJitInfo clipRule_setterinfo = {
   12790             :   { (JSJitGetterOp)set_clipRule },
   12791             :   { prototypes::id::CSS2Properties },
   12792             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12793             :   JSJitInfo::Setter,
   12794             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12795             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12796             :   false,  /* isInfallible. False in setters. */
   12797             :   false,  /* isMovable.  Not relevant for setters. */
   12798             :   false, /* isEliminatable.  Not relevant for setters. */
   12799             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12800             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12801             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12802             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12803             : };
   12804             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12805             : static_assert(0 < 1, "There is no slot for us");
   12806             : 
   12807             : static bool
   12808           0 : get_clip_rule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12809             : {
   12810           0 :   binding_detail::FastErrorResult rv;
   12811           0 :   DOMString result;
   12812           0 :   self->GetClipRule(result, rv);
   12813           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12814           0 :     return false;
   12815             :   }
   12816           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12817           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12818           0 :     return false;
   12819             :   }
   12820           0 :   return true;
   12821             : }
   12822             : 
   12823             : static bool
   12824           0 : set_clip_rule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12825             : {
   12826           0 :   binding_detail::FakeString arg0;
   12827           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12828           0 :     return false;
   12829             :   }
   12830           0 :   binding_detail::FastErrorResult rv;
   12831           0 :   self->SetClipRule(NonNullHelper(Constify(arg0)), rv);
   12832           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12833           0 :     return false;
   12834             :   }
   12835           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12836             : 
   12837           0 :   return true;
   12838             : }
   12839             : 
   12840             : static const JSJitInfo clip_rule_getterinfo = {
   12841             :   { (JSJitGetterOp)get_clip_rule },
   12842             :   { prototypes::id::CSS2Properties },
   12843             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12844             :   JSJitInfo::Getter,
   12845             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12846             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12847             :   false,  /* isInfallible. False in setters. */
   12848             :   false,  /* isMovable.  Not relevant for setters. */
   12849             :   false, /* isEliminatable.  Not relevant for setters. */
   12850             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12851             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12852             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12853             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12854             : };
   12855             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12856             : static_assert(0 < 1, "There is no slot for us");
   12857             : static const JSJitInfo clip_rule_setterinfo = {
   12858             :   { (JSJitGetterOp)set_clip_rule },
   12859             :   { prototypes::id::CSS2Properties },
   12860             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12861             :   JSJitInfo::Setter,
   12862             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12863             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12864             :   false,  /* isInfallible. False in setters. */
   12865             :   false,  /* isMovable.  Not relevant for setters. */
   12866             :   false, /* isEliminatable.  Not relevant for setters. */
   12867             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12868             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12869             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12870             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12871             : };
   12872             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12873             : static_assert(0 < 1, "There is no slot for us");
   12874             : 
   12875             : static bool
   12876           3 : get_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12877             : {
   12878           6 :   binding_detail::FastErrorResult rv;
   12879           6 :   DOMString result;
   12880           3 :   self->GetColor(result, rv);
   12881           3 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12882           0 :     return false;
   12883             :   }
   12884           3 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12885           3 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12886           0 :     return false;
   12887             :   }
   12888           3 :   return true;
   12889             : }
   12890             : 
   12891             : static bool
   12892           0 : set_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12893             : {
   12894           0 :   binding_detail::FakeString arg0;
   12895           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12896           0 :     return false;
   12897             :   }
   12898           0 :   binding_detail::FastErrorResult rv;
   12899           0 :   self->SetColor(NonNullHelper(Constify(arg0)), rv);
   12900           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12901           0 :     return false;
   12902             :   }
   12903           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12904             : 
   12905           0 :   return true;
   12906             : }
   12907             : 
   12908             : static const JSJitInfo color_getterinfo = {
   12909             :   { (JSJitGetterOp)get_color },
   12910             :   { prototypes::id::CSS2Properties },
   12911             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12912             :   JSJitInfo::Getter,
   12913             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12914             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12915             :   false,  /* isInfallible. False in setters. */
   12916             :   false,  /* isMovable.  Not relevant for setters. */
   12917             :   false, /* isEliminatable.  Not relevant for setters. */
   12918             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12919             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12920             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12921             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12922             : };
   12923             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12924             : static_assert(0 < 1, "There is no slot for us");
   12925             : static const JSJitInfo color_setterinfo = {
   12926             :   { (JSJitGetterOp)set_color },
   12927             :   { prototypes::id::CSS2Properties },
   12928             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12929             :   JSJitInfo::Setter,
   12930             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12931             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   12932             :   false,  /* isInfallible. False in setters. */
   12933             :   false,  /* isMovable.  Not relevant for setters. */
   12934             :   false, /* isEliminatable.  Not relevant for setters. */
   12935             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12936             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12937             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12938             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12939             : };
   12940             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12941             : static_assert(0 < 1, "There is no slot for us");
   12942             : 
   12943             : static bool
   12944           0 : get_colorAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   12945             : {
   12946           0 :   binding_detail::FastErrorResult rv;
   12947           0 :   DOMString result;
   12948           0 :   self->GetColorAdjust(result, rv);
   12949           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12950           0 :     return false;
   12951             :   }
   12952           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12953           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   12954           0 :     return false;
   12955             :   }
   12956           0 :   return true;
   12957             : }
   12958             : 
   12959             : static bool
   12960           0 : set_colorAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   12961             : {
   12962           0 :   binding_detail::FakeString arg0;
   12963           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   12964           0 :     return false;
   12965             :   }
   12966           0 :   binding_detail::FastErrorResult rv;
   12967           0 :   self->SetColorAdjust(NonNullHelper(Constify(arg0)), rv);
   12968           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   12969           0 :     return false;
   12970             :   }
   12971           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   12972             : 
   12973           0 :   return true;
   12974             : }
   12975             : 
   12976             : static const JSJitInfo colorAdjust_getterinfo = {
   12977             :   { (JSJitGetterOp)get_colorAdjust },
   12978             :   { prototypes::id::CSS2Properties },
   12979             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12980             :   JSJitInfo::Getter,
   12981             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12982             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   12983             :   false,  /* isInfallible. False in setters. */
   12984             :   false,  /* isMovable.  Not relevant for setters. */
   12985             :   false, /* isEliminatable.  Not relevant for setters. */
   12986             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   12987             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   12988             :   false,  /* isTypedMethod.  Only relevant for methods. */
   12989             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   12990             : };
   12991             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   12992             : static_assert(0 < 1, "There is no slot for us");
   12993             : static const JSJitInfo colorAdjust_setterinfo = {
   12994             :   { (JSJitGetterOp)set_colorAdjust },
   12995             :   { prototypes::id::CSS2Properties },
   12996             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   12997             :   JSJitInfo::Setter,
   12998             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   12999             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13000             :   false,  /* isInfallible. False in setters. */
   13001             :   false,  /* isMovable.  Not relevant for setters. */
   13002             :   false, /* isEliminatable.  Not relevant for setters. */
   13003             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13004             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13005             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13006             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13007             : };
   13008             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13009             : static_assert(0 < 1, "There is no slot for us");
   13010             : 
   13011             : static bool
   13012           0 : get_color_adjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13013             : {
   13014           0 :   binding_detail::FastErrorResult rv;
   13015           0 :   DOMString result;
   13016           0 :   self->GetColorAdjust(result, rv);
   13017           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13018           0 :     return false;
   13019             :   }
   13020           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13021           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13022           0 :     return false;
   13023             :   }
   13024           0 :   return true;
   13025             : }
   13026             : 
   13027             : static bool
   13028           0 : set_color_adjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13029             : {
   13030           0 :   binding_detail::FakeString arg0;
   13031           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13032           0 :     return false;
   13033             :   }
   13034           0 :   binding_detail::FastErrorResult rv;
   13035           0 :   self->SetColorAdjust(NonNullHelper(Constify(arg0)), rv);
   13036           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13037           0 :     return false;
   13038             :   }
   13039           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13040             : 
   13041           0 :   return true;
   13042             : }
   13043             : 
   13044             : static const JSJitInfo color_adjust_getterinfo = {
   13045             :   { (JSJitGetterOp)get_color_adjust },
   13046             :   { prototypes::id::CSS2Properties },
   13047             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13048             :   JSJitInfo::Getter,
   13049             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13050             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13051             :   false,  /* isInfallible. False in setters. */
   13052             :   false,  /* isMovable.  Not relevant for setters. */
   13053             :   false, /* isEliminatable.  Not relevant for setters. */
   13054             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13055             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13056             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13057             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13058             : };
   13059             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13060             : static_assert(0 < 1, "There is no slot for us");
   13061             : static const JSJitInfo color_adjust_setterinfo = {
   13062             :   { (JSJitGetterOp)set_color_adjust },
   13063             :   { prototypes::id::CSS2Properties },
   13064             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13065             :   JSJitInfo::Setter,
   13066             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13067             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13068             :   false,  /* isInfallible. False in setters. */
   13069             :   false,  /* isMovable.  Not relevant for setters. */
   13070             :   false, /* isEliminatable.  Not relevant for setters. */
   13071             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13072             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13073             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13074             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13075             : };
   13076             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13077             : static_assert(0 < 1, "There is no slot for us");
   13078             : 
   13079             : static bool
   13080           0 : get_colorInterpolation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13081             : {
   13082           0 :   binding_detail::FastErrorResult rv;
   13083           0 :   DOMString result;
   13084           0 :   self->GetColorInterpolation(result, rv);
   13085           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13086           0 :     return false;
   13087             :   }
   13088           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13089           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13090           0 :     return false;
   13091             :   }
   13092           0 :   return true;
   13093             : }
   13094             : 
   13095             : static bool
   13096           0 : set_colorInterpolation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13097             : {
   13098           0 :   binding_detail::FakeString arg0;
   13099           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13100           0 :     return false;
   13101             :   }
   13102           0 :   binding_detail::FastErrorResult rv;
   13103           0 :   self->SetColorInterpolation(NonNullHelper(Constify(arg0)), rv);
   13104           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13105           0 :     return false;
   13106             :   }
   13107           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13108             : 
   13109           0 :   return true;
   13110             : }
   13111             : 
   13112             : static const JSJitInfo colorInterpolation_getterinfo = {
   13113             :   { (JSJitGetterOp)get_colorInterpolation },
   13114             :   { prototypes::id::CSS2Properties },
   13115             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13116             :   JSJitInfo::Getter,
   13117             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13118             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13119             :   false,  /* isInfallible. False in setters. */
   13120             :   false,  /* isMovable.  Not relevant for setters. */
   13121             :   false, /* isEliminatable.  Not relevant for setters. */
   13122             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13123             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13124             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13125             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13126             : };
   13127             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13128             : static_assert(0 < 1, "There is no slot for us");
   13129             : static const JSJitInfo colorInterpolation_setterinfo = {
   13130             :   { (JSJitGetterOp)set_colorInterpolation },
   13131             :   { prototypes::id::CSS2Properties },
   13132             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13133             :   JSJitInfo::Setter,
   13134             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13135             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13136             :   false,  /* isInfallible. False in setters. */
   13137             :   false,  /* isMovable.  Not relevant for setters. */
   13138             :   false, /* isEliminatable.  Not relevant for setters. */
   13139             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13140             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13141             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13142             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13143             : };
   13144             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13145             : static_assert(0 < 1, "There is no slot for us");
   13146             : 
   13147             : static bool
   13148           0 : get_color_interpolation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13149             : {
   13150           0 :   binding_detail::FastErrorResult rv;
   13151           0 :   DOMString result;
   13152           0 :   self->GetColorInterpolation(result, rv);
   13153           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13154           0 :     return false;
   13155             :   }
   13156           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13157           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13158           0 :     return false;
   13159             :   }
   13160           0 :   return true;
   13161             : }
   13162             : 
   13163             : static bool
   13164           0 : set_color_interpolation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13165             : {
   13166           0 :   binding_detail::FakeString arg0;
   13167           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13168           0 :     return false;
   13169             :   }
   13170           0 :   binding_detail::FastErrorResult rv;
   13171           0 :   self->SetColorInterpolation(NonNullHelper(Constify(arg0)), rv);
   13172           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13173           0 :     return false;
   13174             :   }
   13175           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13176             : 
   13177           0 :   return true;
   13178             : }
   13179             : 
   13180             : static const JSJitInfo color_interpolation_getterinfo = {
   13181             :   { (JSJitGetterOp)get_color_interpolation },
   13182             :   { prototypes::id::CSS2Properties },
   13183             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13184             :   JSJitInfo::Getter,
   13185             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13186             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13187             :   false,  /* isInfallible. False in setters. */
   13188             :   false,  /* isMovable.  Not relevant for setters. */
   13189             :   false, /* isEliminatable.  Not relevant for setters. */
   13190             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13191             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13192             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13193             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13194             : };
   13195             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13196             : static_assert(0 < 1, "There is no slot for us");
   13197             : static const JSJitInfo color_interpolation_setterinfo = {
   13198             :   { (JSJitGetterOp)set_color_interpolation },
   13199             :   { prototypes::id::CSS2Properties },
   13200             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13201             :   JSJitInfo::Setter,
   13202             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13203             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13204             :   false,  /* isInfallible. False in setters. */
   13205             :   false,  /* isMovable.  Not relevant for setters. */
   13206             :   false, /* isEliminatable.  Not relevant for setters. */
   13207             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13208             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13209             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13210             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13211             : };
   13212             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13213             : static_assert(0 < 1, "There is no slot for us");
   13214             : 
   13215             : static bool
   13216           0 : get_colorInterpolationFilters(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13217             : {
   13218           0 :   binding_detail::FastErrorResult rv;
   13219           0 :   DOMString result;
   13220           0 :   self->GetColorInterpolationFilters(result, rv);
   13221           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13222           0 :     return false;
   13223             :   }
   13224           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13225           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13226           0 :     return false;
   13227             :   }
   13228           0 :   return true;
   13229             : }
   13230             : 
   13231             : static bool
   13232           0 : set_colorInterpolationFilters(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13233             : {
   13234           0 :   binding_detail::FakeString arg0;
   13235           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13236           0 :     return false;
   13237             :   }
   13238           0 :   binding_detail::FastErrorResult rv;
   13239           0 :   self->SetColorInterpolationFilters(NonNullHelper(Constify(arg0)), rv);
   13240           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13241           0 :     return false;
   13242             :   }
   13243           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13244             : 
   13245           0 :   return true;
   13246             : }
   13247             : 
   13248             : static const JSJitInfo colorInterpolationFilters_getterinfo = {
   13249             :   { (JSJitGetterOp)get_colorInterpolationFilters },
   13250             :   { prototypes::id::CSS2Properties },
   13251             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13252             :   JSJitInfo::Getter,
   13253             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13254             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13255             :   false,  /* isInfallible. False in setters. */
   13256             :   false,  /* isMovable.  Not relevant for setters. */
   13257             :   false, /* isEliminatable.  Not relevant for setters. */
   13258             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13259             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13260             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13261             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13262             : };
   13263             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13264             : static_assert(0 < 1, "There is no slot for us");
   13265             : static const JSJitInfo colorInterpolationFilters_setterinfo = {
   13266             :   { (JSJitGetterOp)set_colorInterpolationFilters },
   13267             :   { prototypes::id::CSS2Properties },
   13268             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13269             :   JSJitInfo::Setter,
   13270             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13271             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13272             :   false,  /* isInfallible. False in setters. */
   13273             :   false,  /* isMovable.  Not relevant for setters. */
   13274             :   false, /* isEliminatable.  Not relevant for setters. */
   13275             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13276             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13277             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13278             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13279             : };
   13280             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13281             : static_assert(0 < 1, "There is no slot for us");
   13282             : 
   13283             : static bool
   13284           0 : get_color_interpolation_filters(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13285             : {
   13286           0 :   binding_detail::FastErrorResult rv;
   13287           0 :   DOMString result;
   13288           0 :   self->GetColorInterpolationFilters(result, rv);
   13289           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13290           0 :     return false;
   13291             :   }
   13292           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13293           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13294           0 :     return false;
   13295             :   }
   13296           0 :   return true;
   13297             : }
   13298             : 
   13299             : static bool
   13300           0 : set_color_interpolation_filters(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13301             : {
   13302           0 :   binding_detail::FakeString arg0;
   13303           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13304           0 :     return false;
   13305             :   }
   13306           0 :   binding_detail::FastErrorResult rv;
   13307           0 :   self->SetColorInterpolationFilters(NonNullHelper(Constify(arg0)), rv);
   13308           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13309           0 :     return false;
   13310             :   }
   13311           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13312             : 
   13313           0 :   return true;
   13314             : }
   13315             : 
   13316             : static const JSJitInfo color_interpolation_filters_getterinfo = {
   13317             :   { (JSJitGetterOp)get_color_interpolation_filters },
   13318             :   { prototypes::id::CSS2Properties },
   13319             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13320             :   JSJitInfo::Getter,
   13321             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13322             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13323             :   false,  /* isInfallible. False in setters. */
   13324             :   false,  /* isMovable.  Not relevant for setters. */
   13325             :   false, /* isEliminatable.  Not relevant for setters. */
   13326             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13327             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13328             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13329             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13330             : };
   13331             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13332             : static_assert(0 < 1, "There is no slot for us");
   13333             : static const JSJitInfo color_interpolation_filters_setterinfo = {
   13334             :   { (JSJitGetterOp)set_color_interpolation_filters },
   13335             :   { prototypes::id::CSS2Properties },
   13336             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13337             :   JSJitInfo::Setter,
   13338             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13339             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13340             :   false,  /* isInfallible. False in setters. */
   13341             :   false,  /* isMovable.  Not relevant for setters. */
   13342             :   false, /* isEliminatable.  Not relevant for setters. */
   13343             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13344             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13345             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13346             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13347             : };
   13348             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13349             : static_assert(0 < 1, "There is no slot for us");
   13350             : 
   13351             : static bool
   13352           0 : get_columnCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13353             : {
   13354           0 :   binding_detail::FastErrorResult rv;
   13355           0 :   DOMString result;
   13356           0 :   self->GetColumnCount(result, rv);
   13357           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13358           0 :     return false;
   13359             :   }
   13360           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13361           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13362           0 :     return false;
   13363             :   }
   13364           0 :   return true;
   13365             : }
   13366             : 
   13367             : static bool
   13368           0 : set_columnCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13369             : {
   13370           0 :   binding_detail::FakeString arg0;
   13371           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13372           0 :     return false;
   13373             :   }
   13374           0 :   binding_detail::FastErrorResult rv;
   13375           0 :   self->SetColumnCount(NonNullHelper(Constify(arg0)), rv);
   13376           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13377           0 :     return false;
   13378             :   }
   13379           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13380             : 
   13381           0 :   return true;
   13382             : }
   13383             : 
   13384             : static const JSJitInfo columnCount_getterinfo = {
   13385             :   { (JSJitGetterOp)get_columnCount },
   13386             :   { prototypes::id::CSS2Properties },
   13387             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13388             :   JSJitInfo::Getter,
   13389             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13390             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13391             :   false,  /* isInfallible. False in setters. */
   13392             :   false,  /* isMovable.  Not relevant for setters. */
   13393             :   false, /* isEliminatable.  Not relevant for setters. */
   13394             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13395             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13396             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13397             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13398             : };
   13399             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13400             : static_assert(0 < 1, "There is no slot for us");
   13401             : static const JSJitInfo columnCount_setterinfo = {
   13402             :   { (JSJitGetterOp)set_columnCount },
   13403             :   { prototypes::id::CSS2Properties },
   13404             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13405             :   JSJitInfo::Setter,
   13406             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13407             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13408             :   false,  /* isInfallible. False in setters. */
   13409             :   false,  /* isMovable.  Not relevant for setters. */
   13410             :   false, /* isEliminatable.  Not relevant for setters. */
   13411             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13412             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13413             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13414             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13415             : };
   13416             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13417             : static_assert(0 < 1, "There is no slot for us");
   13418             : 
   13419             : static bool
   13420           0 : get_column_count(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13421             : {
   13422           0 :   binding_detail::FastErrorResult rv;
   13423           0 :   DOMString result;
   13424           0 :   self->GetColumnCount(result, rv);
   13425           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13426           0 :     return false;
   13427             :   }
   13428           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13429           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13430           0 :     return false;
   13431             :   }
   13432           0 :   return true;
   13433             : }
   13434             : 
   13435             : static bool
   13436           0 : set_column_count(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13437             : {
   13438           0 :   binding_detail::FakeString arg0;
   13439           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13440           0 :     return false;
   13441             :   }
   13442           0 :   binding_detail::FastErrorResult rv;
   13443           0 :   self->SetColumnCount(NonNullHelper(Constify(arg0)), rv);
   13444           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13445           0 :     return false;
   13446             :   }
   13447           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13448             : 
   13449           0 :   return true;
   13450             : }
   13451             : 
   13452             : static const JSJitInfo column_count_getterinfo = {
   13453             :   { (JSJitGetterOp)get_column_count },
   13454             :   { prototypes::id::CSS2Properties },
   13455             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13456             :   JSJitInfo::Getter,
   13457             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13458             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13459             :   false,  /* isInfallible. False in setters. */
   13460             :   false,  /* isMovable.  Not relevant for setters. */
   13461             :   false, /* isEliminatable.  Not relevant for setters. */
   13462             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13463             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13464             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13465             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13466             : };
   13467             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13468             : static_assert(0 < 1, "There is no slot for us");
   13469             : static const JSJitInfo column_count_setterinfo = {
   13470             :   { (JSJitGetterOp)set_column_count },
   13471             :   { prototypes::id::CSS2Properties },
   13472             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13473             :   JSJitInfo::Setter,
   13474             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13475             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13476             :   false,  /* isInfallible. False in setters. */
   13477             :   false,  /* isMovable.  Not relevant for setters. */
   13478             :   false, /* isEliminatable.  Not relevant for setters. */
   13479             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13480             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13481             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13482             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13483             : };
   13484             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13485             : static_assert(0 < 1, "There is no slot for us");
   13486             : 
   13487             : static bool
   13488           0 : get_columnFill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13489             : {
   13490           0 :   binding_detail::FastErrorResult rv;
   13491           0 :   DOMString result;
   13492           0 :   self->GetColumnFill(result, rv);
   13493           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13494           0 :     return false;
   13495             :   }
   13496           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13497           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13498           0 :     return false;
   13499             :   }
   13500           0 :   return true;
   13501             : }
   13502             : 
   13503             : static bool
   13504           0 : set_columnFill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13505             : {
   13506           0 :   binding_detail::FakeString arg0;
   13507           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13508           0 :     return false;
   13509             :   }
   13510           0 :   binding_detail::FastErrorResult rv;
   13511           0 :   self->SetColumnFill(NonNullHelper(Constify(arg0)), rv);
   13512           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13513           0 :     return false;
   13514             :   }
   13515           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13516             : 
   13517           0 :   return true;
   13518             : }
   13519             : 
   13520             : static const JSJitInfo columnFill_getterinfo = {
   13521             :   { (JSJitGetterOp)get_columnFill },
   13522             :   { prototypes::id::CSS2Properties },
   13523             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13524             :   JSJitInfo::Getter,
   13525             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13526             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13527             :   false,  /* isInfallible. False in setters. */
   13528             :   false,  /* isMovable.  Not relevant for setters. */
   13529             :   false, /* isEliminatable.  Not relevant for setters. */
   13530             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13531             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13532             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13533             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13534             : };
   13535             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13536             : static_assert(0 < 1, "There is no slot for us");
   13537             : static const JSJitInfo columnFill_setterinfo = {
   13538             :   { (JSJitGetterOp)set_columnFill },
   13539             :   { prototypes::id::CSS2Properties },
   13540             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13541             :   JSJitInfo::Setter,
   13542             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13543             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13544             :   false,  /* isInfallible. False in setters. */
   13545             :   false,  /* isMovable.  Not relevant for setters. */
   13546             :   false, /* isEliminatable.  Not relevant for setters. */
   13547             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13548             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13549             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13550             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13551             : };
   13552             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13553             : static_assert(0 < 1, "There is no slot for us");
   13554             : 
   13555             : static bool
   13556           0 : get_column_fill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13557             : {
   13558           0 :   binding_detail::FastErrorResult rv;
   13559           0 :   DOMString result;
   13560           0 :   self->GetColumnFill(result, rv);
   13561           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13562           0 :     return false;
   13563             :   }
   13564           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13565           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13566           0 :     return false;
   13567             :   }
   13568           0 :   return true;
   13569             : }
   13570             : 
   13571             : static bool
   13572           0 : set_column_fill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13573             : {
   13574           0 :   binding_detail::FakeString arg0;
   13575           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13576           0 :     return false;
   13577             :   }
   13578           0 :   binding_detail::FastErrorResult rv;
   13579           0 :   self->SetColumnFill(NonNullHelper(Constify(arg0)), rv);
   13580           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13581           0 :     return false;
   13582             :   }
   13583           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13584             : 
   13585           0 :   return true;
   13586             : }
   13587             : 
   13588             : static const JSJitInfo column_fill_getterinfo = {
   13589             :   { (JSJitGetterOp)get_column_fill },
   13590             :   { prototypes::id::CSS2Properties },
   13591             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13592             :   JSJitInfo::Getter,
   13593             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13594             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13595             :   false,  /* isInfallible. False in setters. */
   13596             :   false,  /* isMovable.  Not relevant for setters. */
   13597             :   false, /* isEliminatable.  Not relevant for setters. */
   13598             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13599             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13600             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13601             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13602             : };
   13603             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13604             : static_assert(0 < 1, "There is no slot for us");
   13605             : static const JSJitInfo column_fill_setterinfo = {
   13606             :   { (JSJitGetterOp)set_column_fill },
   13607             :   { prototypes::id::CSS2Properties },
   13608             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13609             :   JSJitInfo::Setter,
   13610             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13611             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13612             :   false,  /* isInfallible. False in setters. */
   13613             :   false,  /* isMovable.  Not relevant for setters. */
   13614             :   false, /* isEliminatable.  Not relevant for setters. */
   13615             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13616             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13617             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13618             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13619             : };
   13620             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13621             : static_assert(0 < 1, "There is no slot for us");
   13622             : 
   13623             : static bool
   13624           0 : get_columnGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13625             : {
   13626           0 :   binding_detail::FastErrorResult rv;
   13627           0 :   DOMString result;
   13628           0 :   self->GetColumnGap(result, rv);
   13629           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13630           0 :     return false;
   13631             :   }
   13632           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13633           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13634           0 :     return false;
   13635             :   }
   13636           0 :   return true;
   13637             : }
   13638             : 
   13639             : static bool
   13640           0 : set_columnGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13641             : {
   13642           0 :   binding_detail::FakeString arg0;
   13643           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13644           0 :     return false;
   13645             :   }
   13646           0 :   binding_detail::FastErrorResult rv;
   13647           0 :   self->SetColumnGap(NonNullHelper(Constify(arg0)), rv);
   13648           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13649           0 :     return false;
   13650             :   }
   13651           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13652             : 
   13653           0 :   return true;
   13654             : }
   13655             : 
   13656             : static const JSJitInfo columnGap_getterinfo = {
   13657             :   { (JSJitGetterOp)get_columnGap },
   13658             :   { prototypes::id::CSS2Properties },
   13659             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13660             :   JSJitInfo::Getter,
   13661             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13662             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13663             :   false,  /* isInfallible. False in setters. */
   13664             :   false,  /* isMovable.  Not relevant for setters. */
   13665             :   false, /* isEliminatable.  Not relevant for setters. */
   13666             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13667             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13668             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13669             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13670             : };
   13671             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13672             : static_assert(0 < 1, "There is no slot for us");
   13673             : static const JSJitInfo columnGap_setterinfo = {
   13674             :   { (JSJitGetterOp)set_columnGap },
   13675             :   { prototypes::id::CSS2Properties },
   13676             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13677             :   JSJitInfo::Setter,
   13678             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13679             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13680             :   false,  /* isInfallible. False in setters. */
   13681             :   false,  /* isMovable.  Not relevant for setters. */
   13682             :   false, /* isEliminatable.  Not relevant for setters. */
   13683             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13684             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13685             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13686             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13687             : };
   13688             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13689             : static_assert(0 < 1, "There is no slot for us");
   13690             : 
   13691             : static bool
   13692           0 : get_column_gap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13693             : {
   13694           0 :   binding_detail::FastErrorResult rv;
   13695           0 :   DOMString result;
   13696           0 :   self->GetColumnGap(result, rv);
   13697           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13698           0 :     return false;
   13699             :   }
   13700           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13701           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13702           0 :     return false;
   13703             :   }
   13704           0 :   return true;
   13705             : }
   13706             : 
   13707             : static bool
   13708           0 : set_column_gap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13709             : {
   13710           0 :   binding_detail::FakeString arg0;
   13711           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13712           0 :     return false;
   13713             :   }
   13714           0 :   binding_detail::FastErrorResult rv;
   13715           0 :   self->SetColumnGap(NonNullHelper(Constify(arg0)), rv);
   13716           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13717           0 :     return false;
   13718             :   }
   13719           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13720             : 
   13721           0 :   return true;
   13722             : }
   13723             : 
   13724             : static const JSJitInfo column_gap_getterinfo = {
   13725             :   { (JSJitGetterOp)get_column_gap },
   13726             :   { prototypes::id::CSS2Properties },
   13727             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13728             :   JSJitInfo::Getter,
   13729             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13730             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13731             :   false,  /* isInfallible. False in setters. */
   13732             :   false,  /* isMovable.  Not relevant for setters. */
   13733             :   false, /* isEliminatable.  Not relevant for setters. */
   13734             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13735             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13736             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13737             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13738             : };
   13739             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13740             : static_assert(0 < 1, "There is no slot for us");
   13741             : static const JSJitInfo column_gap_setterinfo = {
   13742             :   { (JSJitGetterOp)set_column_gap },
   13743             :   { prototypes::id::CSS2Properties },
   13744             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13745             :   JSJitInfo::Setter,
   13746             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13747             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13748             :   false,  /* isInfallible. False in setters. */
   13749             :   false,  /* isMovable.  Not relevant for setters. */
   13750             :   false, /* isEliminatable.  Not relevant for setters. */
   13751             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13752             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13753             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13754             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13755             : };
   13756             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13757             : static_assert(0 < 1, "There is no slot for us");
   13758             : 
   13759             : static bool
   13760           0 : get_columnRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13761             : {
   13762           0 :   binding_detail::FastErrorResult rv;
   13763           0 :   DOMString result;
   13764           0 :   self->GetColumnRule(result, rv);
   13765           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13766           0 :     return false;
   13767             :   }
   13768           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13769           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13770           0 :     return false;
   13771             :   }
   13772           0 :   return true;
   13773             : }
   13774             : 
   13775             : static bool
   13776           0 : set_columnRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13777             : {
   13778           0 :   binding_detail::FakeString arg0;
   13779           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13780           0 :     return false;
   13781             :   }
   13782           0 :   binding_detail::FastErrorResult rv;
   13783           0 :   self->SetColumnRule(NonNullHelper(Constify(arg0)), rv);
   13784           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13785           0 :     return false;
   13786             :   }
   13787           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13788             : 
   13789           0 :   return true;
   13790             : }
   13791             : 
   13792             : static const JSJitInfo columnRule_getterinfo = {
   13793             :   { (JSJitGetterOp)get_columnRule },
   13794             :   { prototypes::id::CSS2Properties },
   13795             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13796             :   JSJitInfo::Getter,
   13797             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13798             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13799             :   false,  /* isInfallible. False in setters. */
   13800             :   false,  /* isMovable.  Not relevant for setters. */
   13801             :   false, /* isEliminatable.  Not relevant for setters. */
   13802             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13803             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13804             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13805             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13806             : };
   13807             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13808             : static_assert(0 < 1, "There is no slot for us");
   13809             : static const JSJitInfo columnRule_setterinfo = {
   13810             :   { (JSJitGetterOp)set_columnRule },
   13811             :   { prototypes::id::CSS2Properties },
   13812             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13813             :   JSJitInfo::Setter,
   13814             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13815             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13816             :   false,  /* isInfallible. False in setters. */
   13817             :   false,  /* isMovable.  Not relevant for setters. */
   13818             :   false, /* isEliminatable.  Not relevant for setters. */
   13819             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13820             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13821             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13822             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13823             : };
   13824             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13825             : static_assert(0 < 1, "There is no slot for us");
   13826             : 
   13827             : static bool
   13828           0 : get_column_rule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13829             : {
   13830           0 :   binding_detail::FastErrorResult rv;
   13831           0 :   DOMString result;
   13832           0 :   self->GetColumnRule(result, rv);
   13833           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13834           0 :     return false;
   13835             :   }
   13836           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13837           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13838           0 :     return false;
   13839             :   }
   13840           0 :   return true;
   13841             : }
   13842             : 
   13843             : static bool
   13844           0 : set_column_rule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13845             : {
   13846           0 :   binding_detail::FakeString arg0;
   13847           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13848           0 :     return false;
   13849             :   }
   13850           0 :   binding_detail::FastErrorResult rv;
   13851           0 :   self->SetColumnRule(NonNullHelper(Constify(arg0)), rv);
   13852           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13853           0 :     return false;
   13854             :   }
   13855           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13856             : 
   13857           0 :   return true;
   13858             : }
   13859             : 
   13860             : static const JSJitInfo column_rule_getterinfo = {
   13861             :   { (JSJitGetterOp)get_column_rule },
   13862             :   { prototypes::id::CSS2Properties },
   13863             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13864             :   JSJitInfo::Getter,
   13865             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13866             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13867             :   false,  /* isInfallible. False in setters. */
   13868             :   false,  /* isMovable.  Not relevant for setters. */
   13869             :   false, /* isEliminatable.  Not relevant for setters. */
   13870             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13871             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13872             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13873             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13874             : };
   13875             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13876             : static_assert(0 < 1, "There is no slot for us");
   13877             : static const JSJitInfo column_rule_setterinfo = {
   13878             :   { (JSJitGetterOp)set_column_rule },
   13879             :   { prototypes::id::CSS2Properties },
   13880             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13881             :   JSJitInfo::Setter,
   13882             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13883             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13884             :   false,  /* isInfallible. False in setters. */
   13885             :   false,  /* isMovable.  Not relevant for setters. */
   13886             :   false, /* isEliminatable.  Not relevant for setters. */
   13887             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13888             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13889             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13890             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13891             : };
   13892             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13893             : static_assert(0 < 1, "There is no slot for us");
   13894             : 
   13895             : static bool
   13896           0 : get_columnRuleColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13897             : {
   13898           0 :   binding_detail::FastErrorResult rv;
   13899           0 :   DOMString result;
   13900           0 :   self->GetColumnRuleColor(result, rv);
   13901           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13902           0 :     return false;
   13903             :   }
   13904           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13905           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13906           0 :     return false;
   13907             :   }
   13908           0 :   return true;
   13909             : }
   13910             : 
   13911             : static bool
   13912           0 : set_columnRuleColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13913             : {
   13914           0 :   binding_detail::FakeString arg0;
   13915           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13916           0 :     return false;
   13917             :   }
   13918           0 :   binding_detail::FastErrorResult rv;
   13919           0 :   self->SetColumnRuleColor(NonNullHelper(Constify(arg0)), rv);
   13920           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13921           0 :     return false;
   13922             :   }
   13923           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13924             : 
   13925           0 :   return true;
   13926             : }
   13927             : 
   13928             : static const JSJitInfo columnRuleColor_getterinfo = {
   13929             :   { (JSJitGetterOp)get_columnRuleColor },
   13930             :   { prototypes::id::CSS2Properties },
   13931             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13932             :   JSJitInfo::Getter,
   13933             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13934             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   13935             :   false,  /* isInfallible. False in setters. */
   13936             :   false,  /* isMovable.  Not relevant for setters. */
   13937             :   false, /* isEliminatable.  Not relevant for setters. */
   13938             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13939             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13940             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13941             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13942             : };
   13943             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13944             : static_assert(0 < 1, "There is no slot for us");
   13945             : static const JSJitInfo columnRuleColor_setterinfo = {
   13946             :   { (JSJitGetterOp)set_columnRuleColor },
   13947             :   { prototypes::id::CSS2Properties },
   13948             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   13949             :   JSJitInfo::Setter,
   13950             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   13951             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   13952             :   false,  /* isInfallible. False in setters. */
   13953             :   false,  /* isMovable.  Not relevant for setters. */
   13954             :   false, /* isEliminatable.  Not relevant for setters. */
   13955             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   13956             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   13957             :   false,  /* isTypedMethod.  Only relevant for methods. */
   13958             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   13959             : };
   13960             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   13961             : static_assert(0 < 1, "There is no slot for us");
   13962             : 
   13963             : static bool
   13964           0 : get_column_rule_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   13965             : {
   13966           0 :   binding_detail::FastErrorResult rv;
   13967           0 :   DOMString result;
   13968           0 :   self->GetColumnRuleColor(result, rv);
   13969           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13970           0 :     return false;
   13971             :   }
   13972           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13973           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   13974           0 :     return false;
   13975             :   }
   13976           0 :   return true;
   13977             : }
   13978             : 
   13979             : static bool
   13980           0 : set_column_rule_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   13981             : {
   13982           0 :   binding_detail::FakeString arg0;
   13983           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   13984           0 :     return false;
   13985             :   }
   13986           0 :   binding_detail::FastErrorResult rv;
   13987           0 :   self->SetColumnRuleColor(NonNullHelper(Constify(arg0)), rv);
   13988           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   13989           0 :     return false;
   13990             :   }
   13991           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   13992             : 
   13993           0 :   return true;
   13994             : }
   13995             : 
   13996             : static const JSJitInfo column_rule_color_getterinfo = {
   13997             :   { (JSJitGetterOp)get_column_rule_color },
   13998             :   { prototypes::id::CSS2Properties },
   13999             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14000             :   JSJitInfo::Getter,
   14001             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14002             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14003             :   false,  /* isInfallible. False in setters. */
   14004             :   false,  /* isMovable.  Not relevant for setters. */
   14005             :   false, /* isEliminatable.  Not relevant for setters. */
   14006             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14007             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14008             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14009             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14010             : };
   14011             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14012             : static_assert(0 < 1, "There is no slot for us");
   14013             : static const JSJitInfo column_rule_color_setterinfo = {
   14014             :   { (JSJitGetterOp)set_column_rule_color },
   14015             :   { prototypes::id::CSS2Properties },
   14016             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14017             :   JSJitInfo::Setter,
   14018             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14019             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14020             :   false,  /* isInfallible. False in setters. */
   14021             :   false,  /* isMovable.  Not relevant for setters. */
   14022             :   false, /* isEliminatable.  Not relevant for setters. */
   14023             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14024             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14025             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14026             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14027             : };
   14028             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14029             : static_assert(0 < 1, "There is no slot for us");
   14030             : 
   14031             : static bool
   14032           0 : get_columnRuleStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14033             : {
   14034           0 :   binding_detail::FastErrorResult rv;
   14035           0 :   DOMString result;
   14036           0 :   self->GetColumnRuleStyle(result, rv);
   14037           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14038           0 :     return false;
   14039             :   }
   14040           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14041           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14042           0 :     return false;
   14043             :   }
   14044           0 :   return true;
   14045             : }
   14046             : 
   14047             : static bool
   14048           0 : set_columnRuleStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14049             : {
   14050           0 :   binding_detail::FakeString arg0;
   14051           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14052           0 :     return false;
   14053             :   }
   14054           0 :   binding_detail::FastErrorResult rv;
   14055           0 :   self->SetColumnRuleStyle(NonNullHelper(Constify(arg0)), rv);
   14056           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14057           0 :     return false;
   14058             :   }
   14059           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14060             : 
   14061           0 :   return true;
   14062             : }
   14063             : 
   14064             : static const JSJitInfo columnRuleStyle_getterinfo = {
   14065             :   { (JSJitGetterOp)get_columnRuleStyle },
   14066             :   { prototypes::id::CSS2Properties },
   14067             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14068             :   JSJitInfo::Getter,
   14069             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14070             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14071             :   false,  /* isInfallible. False in setters. */
   14072             :   false,  /* isMovable.  Not relevant for setters. */
   14073             :   false, /* isEliminatable.  Not relevant for setters. */
   14074             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14075             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14076             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14077             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14078             : };
   14079             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14080             : static_assert(0 < 1, "There is no slot for us");
   14081             : static const JSJitInfo columnRuleStyle_setterinfo = {
   14082             :   { (JSJitGetterOp)set_columnRuleStyle },
   14083             :   { prototypes::id::CSS2Properties },
   14084             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14085             :   JSJitInfo::Setter,
   14086             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14087             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14088             :   false,  /* isInfallible. False in setters. */
   14089             :   false,  /* isMovable.  Not relevant for setters. */
   14090             :   false, /* isEliminatable.  Not relevant for setters. */
   14091             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14092             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14093             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14094             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14095             : };
   14096             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14097             : static_assert(0 < 1, "There is no slot for us");
   14098             : 
   14099             : static bool
   14100           0 : get_column_rule_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14101             : {
   14102           0 :   binding_detail::FastErrorResult rv;
   14103           0 :   DOMString result;
   14104           0 :   self->GetColumnRuleStyle(result, rv);
   14105           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14106           0 :     return false;
   14107             :   }
   14108           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14109           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14110           0 :     return false;
   14111             :   }
   14112           0 :   return true;
   14113             : }
   14114             : 
   14115             : static bool
   14116           0 : set_column_rule_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14117             : {
   14118           0 :   binding_detail::FakeString arg0;
   14119           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14120           0 :     return false;
   14121             :   }
   14122           0 :   binding_detail::FastErrorResult rv;
   14123           0 :   self->SetColumnRuleStyle(NonNullHelper(Constify(arg0)), rv);
   14124           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14125           0 :     return false;
   14126             :   }
   14127           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14128             : 
   14129           0 :   return true;
   14130             : }
   14131             : 
   14132             : static const JSJitInfo column_rule_style_getterinfo = {
   14133             :   { (JSJitGetterOp)get_column_rule_style },
   14134             :   { prototypes::id::CSS2Properties },
   14135             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14136             :   JSJitInfo::Getter,
   14137             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14138             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14139             :   false,  /* isInfallible. False in setters. */
   14140             :   false,  /* isMovable.  Not relevant for setters. */
   14141             :   false, /* isEliminatable.  Not relevant for setters. */
   14142             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14143             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14144             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14145             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14146             : };
   14147             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14148             : static_assert(0 < 1, "There is no slot for us");
   14149             : static const JSJitInfo column_rule_style_setterinfo = {
   14150             :   { (JSJitGetterOp)set_column_rule_style },
   14151             :   { prototypes::id::CSS2Properties },
   14152             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14153             :   JSJitInfo::Setter,
   14154             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14155             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14156             :   false,  /* isInfallible. False in setters. */
   14157             :   false,  /* isMovable.  Not relevant for setters. */
   14158             :   false, /* isEliminatable.  Not relevant for setters. */
   14159             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14160             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14161             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14162             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14163             : };
   14164             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14165             : static_assert(0 < 1, "There is no slot for us");
   14166             : 
   14167             : static bool
   14168           0 : get_columnRuleWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14169             : {
   14170           0 :   binding_detail::FastErrorResult rv;
   14171           0 :   DOMString result;
   14172           0 :   self->GetColumnRuleWidth(result, rv);
   14173           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14174           0 :     return false;
   14175             :   }
   14176           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14177           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14178           0 :     return false;
   14179             :   }
   14180           0 :   return true;
   14181             : }
   14182             : 
   14183             : static bool
   14184           0 : set_columnRuleWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14185             : {
   14186           0 :   binding_detail::FakeString arg0;
   14187           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14188           0 :     return false;
   14189             :   }
   14190           0 :   binding_detail::FastErrorResult rv;
   14191           0 :   self->SetColumnRuleWidth(NonNullHelper(Constify(arg0)), rv);
   14192           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14193           0 :     return false;
   14194             :   }
   14195           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14196             : 
   14197           0 :   return true;
   14198             : }
   14199             : 
   14200             : static const JSJitInfo columnRuleWidth_getterinfo = {
   14201             :   { (JSJitGetterOp)get_columnRuleWidth },
   14202             :   { prototypes::id::CSS2Properties },
   14203             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14204             :   JSJitInfo::Getter,
   14205             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14206             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14207             :   false,  /* isInfallible. False in setters. */
   14208             :   false,  /* isMovable.  Not relevant for setters. */
   14209             :   false, /* isEliminatable.  Not relevant for setters. */
   14210             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14211             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14212             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14213             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14214             : };
   14215             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14216             : static_assert(0 < 1, "There is no slot for us");
   14217             : static const JSJitInfo columnRuleWidth_setterinfo = {
   14218             :   { (JSJitGetterOp)set_columnRuleWidth },
   14219             :   { prototypes::id::CSS2Properties },
   14220             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14221             :   JSJitInfo::Setter,
   14222             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14223             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14224             :   false,  /* isInfallible. False in setters. */
   14225             :   false,  /* isMovable.  Not relevant for setters. */
   14226             :   false, /* isEliminatable.  Not relevant for setters. */
   14227             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14228             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14229             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14230             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14231             : };
   14232             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14233             : static_assert(0 < 1, "There is no slot for us");
   14234             : 
   14235             : static bool
   14236           0 : get_column_rule_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14237             : {
   14238           0 :   binding_detail::FastErrorResult rv;
   14239           0 :   DOMString result;
   14240           0 :   self->GetColumnRuleWidth(result, rv);
   14241           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14242           0 :     return false;
   14243             :   }
   14244           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14245           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14246           0 :     return false;
   14247             :   }
   14248           0 :   return true;
   14249             : }
   14250             : 
   14251             : static bool
   14252           0 : set_column_rule_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14253             : {
   14254           0 :   binding_detail::FakeString arg0;
   14255           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14256           0 :     return false;
   14257             :   }
   14258           0 :   binding_detail::FastErrorResult rv;
   14259           0 :   self->SetColumnRuleWidth(NonNullHelper(Constify(arg0)), rv);
   14260           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14261           0 :     return false;
   14262             :   }
   14263           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14264             : 
   14265           0 :   return true;
   14266             : }
   14267             : 
   14268             : static const JSJitInfo column_rule_width_getterinfo = {
   14269             :   { (JSJitGetterOp)get_column_rule_width },
   14270             :   { prototypes::id::CSS2Properties },
   14271             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14272             :   JSJitInfo::Getter,
   14273             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14274             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14275             :   false,  /* isInfallible. False in setters. */
   14276             :   false,  /* isMovable.  Not relevant for setters. */
   14277             :   false, /* isEliminatable.  Not relevant for setters. */
   14278             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14279             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14280             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14281             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14282             : };
   14283             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14284             : static_assert(0 < 1, "There is no slot for us");
   14285             : static const JSJitInfo column_rule_width_setterinfo = {
   14286             :   { (JSJitGetterOp)set_column_rule_width },
   14287             :   { prototypes::id::CSS2Properties },
   14288             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14289             :   JSJitInfo::Setter,
   14290             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14291             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14292             :   false,  /* isInfallible. False in setters. */
   14293             :   false,  /* isMovable.  Not relevant for setters. */
   14294             :   false, /* isEliminatable.  Not relevant for setters. */
   14295             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14296             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14297             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14298             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14299             : };
   14300             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14301             : static_assert(0 < 1, "There is no slot for us");
   14302             : 
   14303             : static bool
   14304           0 : get_columnSpan(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14305             : {
   14306           0 :   binding_detail::FastErrorResult rv;
   14307           0 :   DOMString result;
   14308           0 :   self->GetColumnSpan(result, rv);
   14309           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14310           0 :     return false;
   14311             :   }
   14312           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14313           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14314           0 :     return false;
   14315             :   }
   14316           0 :   return true;
   14317             : }
   14318             : 
   14319             : static bool
   14320           0 : set_columnSpan(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14321             : {
   14322           0 :   binding_detail::FakeString arg0;
   14323           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14324           0 :     return false;
   14325             :   }
   14326           0 :   binding_detail::FastErrorResult rv;
   14327           0 :   self->SetColumnSpan(NonNullHelper(Constify(arg0)), rv);
   14328           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14329           0 :     return false;
   14330             :   }
   14331           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14332             : 
   14333           0 :   return true;
   14334             : }
   14335             : 
   14336             : static const JSJitInfo columnSpan_getterinfo = {
   14337             :   { (JSJitGetterOp)get_columnSpan },
   14338             :   { prototypes::id::CSS2Properties },
   14339             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14340             :   JSJitInfo::Getter,
   14341             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14342             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14343             :   false,  /* isInfallible. False in setters. */
   14344             :   false,  /* isMovable.  Not relevant for setters. */
   14345             :   false, /* isEliminatable.  Not relevant for setters. */
   14346             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14347             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14348             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14349             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14350             : };
   14351             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14352             : static_assert(0 < 1, "There is no slot for us");
   14353             : static const JSJitInfo columnSpan_setterinfo = {
   14354             :   { (JSJitGetterOp)set_columnSpan },
   14355             :   { prototypes::id::CSS2Properties },
   14356             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14357             :   JSJitInfo::Setter,
   14358             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14359             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14360             :   false,  /* isInfallible. False in setters. */
   14361             :   false,  /* isMovable.  Not relevant for setters. */
   14362             :   false, /* isEliminatable.  Not relevant for setters. */
   14363             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14364             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14365             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14366             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14367             : };
   14368             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14369             : static_assert(0 < 1, "There is no slot for us");
   14370             : 
   14371             : static bool
   14372           0 : get_column_span(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14373             : {
   14374           0 :   binding_detail::FastErrorResult rv;
   14375           0 :   DOMString result;
   14376           0 :   self->GetColumnSpan(result, rv);
   14377           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14378           0 :     return false;
   14379             :   }
   14380           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14381           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14382           0 :     return false;
   14383             :   }
   14384           0 :   return true;
   14385             : }
   14386             : 
   14387             : static bool
   14388           0 : set_column_span(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14389             : {
   14390           0 :   binding_detail::FakeString arg0;
   14391           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14392           0 :     return false;
   14393             :   }
   14394           0 :   binding_detail::FastErrorResult rv;
   14395           0 :   self->SetColumnSpan(NonNullHelper(Constify(arg0)), rv);
   14396           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14397           0 :     return false;
   14398             :   }
   14399           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14400             : 
   14401           0 :   return true;
   14402             : }
   14403             : 
   14404             : static const JSJitInfo column_span_getterinfo = {
   14405             :   { (JSJitGetterOp)get_column_span },
   14406             :   { prototypes::id::CSS2Properties },
   14407             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14408             :   JSJitInfo::Getter,
   14409             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14410             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14411             :   false,  /* isInfallible. False in setters. */
   14412             :   false,  /* isMovable.  Not relevant for setters. */
   14413             :   false, /* isEliminatable.  Not relevant for setters. */
   14414             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14415             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14416             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14417             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14418             : };
   14419             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14420             : static_assert(0 < 1, "There is no slot for us");
   14421             : static const JSJitInfo column_span_setterinfo = {
   14422             :   { (JSJitGetterOp)set_column_span },
   14423             :   { prototypes::id::CSS2Properties },
   14424             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14425             :   JSJitInfo::Setter,
   14426             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14427             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14428             :   false,  /* isInfallible. False in setters. */
   14429             :   false,  /* isMovable.  Not relevant for setters. */
   14430             :   false, /* isEliminatable.  Not relevant for setters. */
   14431             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14432             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14433             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14434             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14435             : };
   14436             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14437             : static_assert(0 < 1, "There is no slot for us");
   14438             : 
   14439             : static bool
   14440           0 : get_columnWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14441             : {
   14442           0 :   binding_detail::FastErrorResult rv;
   14443           0 :   DOMString result;
   14444           0 :   self->GetColumnWidth(result, rv);
   14445           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14446           0 :     return false;
   14447             :   }
   14448           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14449           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14450           0 :     return false;
   14451             :   }
   14452           0 :   return true;
   14453             : }
   14454             : 
   14455             : static bool
   14456           0 : set_columnWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14457             : {
   14458           0 :   binding_detail::FakeString arg0;
   14459           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14460           0 :     return false;
   14461             :   }
   14462           0 :   binding_detail::FastErrorResult rv;
   14463           0 :   self->SetColumnWidth(NonNullHelper(Constify(arg0)), rv);
   14464           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14465           0 :     return false;
   14466             :   }
   14467           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14468             : 
   14469           0 :   return true;
   14470             : }
   14471             : 
   14472             : static const JSJitInfo columnWidth_getterinfo = {
   14473             :   { (JSJitGetterOp)get_columnWidth },
   14474             :   { prototypes::id::CSS2Properties },
   14475             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14476             :   JSJitInfo::Getter,
   14477             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14478             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14479             :   false,  /* isInfallible. False in setters. */
   14480             :   false,  /* isMovable.  Not relevant for setters. */
   14481             :   false, /* isEliminatable.  Not relevant for setters. */
   14482             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14483             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14484             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14485             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14486             : };
   14487             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14488             : static_assert(0 < 1, "There is no slot for us");
   14489             : static const JSJitInfo columnWidth_setterinfo = {
   14490             :   { (JSJitGetterOp)set_columnWidth },
   14491             :   { prototypes::id::CSS2Properties },
   14492             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14493             :   JSJitInfo::Setter,
   14494             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14495             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14496             :   false,  /* isInfallible. False in setters. */
   14497             :   false,  /* isMovable.  Not relevant for setters. */
   14498             :   false, /* isEliminatable.  Not relevant for setters. */
   14499             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14500             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14501             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14502             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14503             : };
   14504             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14505             : static_assert(0 < 1, "There is no slot for us");
   14506             : 
   14507             : static bool
   14508           0 : get_column_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14509             : {
   14510           0 :   binding_detail::FastErrorResult rv;
   14511           0 :   DOMString result;
   14512           0 :   self->GetColumnWidth(result, rv);
   14513           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14514           0 :     return false;
   14515             :   }
   14516           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14517           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14518           0 :     return false;
   14519             :   }
   14520           0 :   return true;
   14521             : }
   14522             : 
   14523             : static bool
   14524           0 : set_column_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14525             : {
   14526           0 :   binding_detail::FakeString arg0;
   14527           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14528           0 :     return false;
   14529             :   }
   14530           0 :   binding_detail::FastErrorResult rv;
   14531           0 :   self->SetColumnWidth(NonNullHelper(Constify(arg0)), rv);
   14532           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14533           0 :     return false;
   14534             :   }
   14535           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14536             : 
   14537           0 :   return true;
   14538             : }
   14539             : 
   14540             : static const JSJitInfo column_width_getterinfo = {
   14541             :   { (JSJitGetterOp)get_column_width },
   14542             :   { prototypes::id::CSS2Properties },
   14543             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14544             :   JSJitInfo::Getter,
   14545             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14546             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14547             :   false,  /* isInfallible. False in setters. */
   14548             :   false,  /* isMovable.  Not relevant for setters. */
   14549             :   false, /* isEliminatable.  Not relevant for setters. */
   14550             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14551             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14552             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14553             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14554             : };
   14555             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14556             : static_assert(0 < 1, "There is no slot for us");
   14557             : static const JSJitInfo column_width_setterinfo = {
   14558             :   { (JSJitGetterOp)set_column_width },
   14559             :   { prototypes::id::CSS2Properties },
   14560             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14561             :   JSJitInfo::Setter,
   14562             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14563             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14564             :   false,  /* isInfallible. False in setters. */
   14565             :   false,  /* isMovable.  Not relevant for setters. */
   14566             :   false, /* isEliminatable.  Not relevant for setters. */
   14567             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14568             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14569             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14570             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14571             : };
   14572             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14573             : static_assert(0 < 1, "There is no slot for us");
   14574             : 
   14575             : static bool
   14576           0 : get_columns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14577             : {
   14578           0 :   binding_detail::FastErrorResult rv;
   14579           0 :   DOMString result;
   14580           0 :   self->GetColumns(result, rv);
   14581           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14582           0 :     return false;
   14583             :   }
   14584           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14585           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14586           0 :     return false;
   14587             :   }
   14588           0 :   return true;
   14589             : }
   14590             : 
   14591             : static bool
   14592           0 : set_columns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14593             : {
   14594           0 :   binding_detail::FakeString arg0;
   14595           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14596           0 :     return false;
   14597             :   }
   14598           0 :   binding_detail::FastErrorResult rv;
   14599           0 :   self->SetColumns(NonNullHelper(Constify(arg0)), rv);
   14600           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14601           0 :     return false;
   14602             :   }
   14603           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14604             : 
   14605           0 :   return true;
   14606             : }
   14607             : 
   14608             : static const JSJitInfo columns_getterinfo = {
   14609             :   { (JSJitGetterOp)get_columns },
   14610             :   { prototypes::id::CSS2Properties },
   14611             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14612             :   JSJitInfo::Getter,
   14613             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14614             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14615             :   false,  /* isInfallible. False in setters. */
   14616             :   false,  /* isMovable.  Not relevant for setters. */
   14617             :   false, /* isEliminatable.  Not relevant for setters. */
   14618             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14619             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14620             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14621             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14622             : };
   14623             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14624             : static_assert(0 < 1, "There is no slot for us");
   14625             : static const JSJitInfo columns_setterinfo = {
   14626             :   { (JSJitGetterOp)set_columns },
   14627             :   { prototypes::id::CSS2Properties },
   14628             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14629             :   JSJitInfo::Setter,
   14630             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14631             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14632             :   false,  /* isInfallible. False in setters. */
   14633             :   false,  /* isMovable.  Not relevant for setters. */
   14634             :   false, /* isEliminatable.  Not relevant for setters. */
   14635             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14636             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14637             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14638             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14639             : };
   14640             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14641             : static_assert(0 < 1, "There is no slot for us");
   14642             : 
   14643             : static bool
   14644           0 : get_contain(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14645             : {
   14646           0 :   binding_detail::FastErrorResult rv;
   14647           0 :   DOMString result;
   14648           0 :   self->GetContain(result, rv);
   14649           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14650           0 :     return false;
   14651             :   }
   14652           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14653           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14654           0 :     return false;
   14655             :   }
   14656           0 :   return true;
   14657             : }
   14658             : 
   14659             : static bool
   14660           0 : set_contain(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14661             : {
   14662           0 :   binding_detail::FakeString arg0;
   14663           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14664           0 :     return false;
   14665             :   }
   14666           0 :   binding_detail::FastErrorResult rv;
   14667           0 :   self->SetContain(NonNullHelper(Constify(arg0)), rv);
   14668           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14669           0 :     return false;
   14670             :   }
   14671           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14672             : 
   14673           0 :   return true;
   14674             : }
   14675             : 
   14676             : static const JSJitInfo contain_getterinfo = {
   14677             :   { (JSJitGetterOp)get_contain },
   14678             :   { prototypes::id::CSS2Properties },
   14679             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14680             :   JSJitInfo::Getter,
   14681             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14682             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14683             :   false,  /* isInfallible. False in setters. */
   14684             :   false,  /* isMovable.  Not relevant for setters. */
   14685             :   false, /* isEliminatable.  Not relevant for setters. */
   14686             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14687             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14688             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14689             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14690             : };
   14691             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14692             : static_assert(0 < 1, "There is no slot for us");
   14693             : static const JSJitInfo contain_setterinfo = {
   14694             :   { (JSJitGetterOp)set_contain },
   14695             :   { prototypes::id::CSS2Properties },
   14696             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14697             :   JSJitInfo::Setter,
   14698             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14699             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14700             :   false,  /* isInfallible. False in setters. */
   14701             :   false,  /* isMovable.  Not relevant for setters. */
   14702             :   false, /* isEliminatable.  Not relevant for setters. */
   14703             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14704             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14705             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14706             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14707             : };
   14708             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14709             : static_assert(0 < 1, "There is no slot for us");
   14710             : 
   14711             : static bool
   14712           0 : get_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14713             : {
   14714           0 :   binding_detail::FastErrorResult rv;
   14715           0 :   DOMString result;
   14716           0 :   self->GetContent(result, rv);
   14717           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14718           0 :     return false;
   14719             :   }
   14720           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14721           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14722           0 :     return false;
   14723             :   }
   14724           0 :   return true;
   14725             : }
   14726             : 
   14727             : static bool
   14728           0 : set_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14729             : {
   14730           0 :   binding_detail::FakeString arg0;
   14731           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14732           0 :     return false;
   14733             :   }
   14734           0 :   binding_detail::FastErrorResult rv;
   14735           0 :   self->SetContent(NonNullHelper(Constify(arg0)), rv);
   14736           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14737           0 :     return false;
   14738             :   }
   14739           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14740             : 
   14741           0 :   return true;
   14742             : }
   14743             : 
   14744             : static const JSJitInfo content_getterinfo = {
   14745             :   { (JSJitGetterOp)get_content },
   14746             :   { prototypes::id::CSS2Properties },
   14747             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14748             :   JSJitInfo::Getter,
   14749             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14750             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14751             :   false,  /* isInfallible. False in setters. */
   14752             :   false,  /* isMovable.  Not relevant for setters. */
   14753             :   false, /* isEliminatable.  Not relevant for setters. */
   14754             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14755             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14756             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14757             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14758             : };
   14759             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14760             : static_assert(0 < 1, "There is no slot for us");
   14761             : static const JSJitInfo content_setterinfo = {
   14762             :   { (JSJitGetterOp)set_content },
   14763             :   { prototypes::id::CSS2Properties },
   14764             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14765             :   JSJitInfo::Setter,
   14766             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14767             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14768             :   false,  /* isInfallible. False in setters. */
   14769             :   false,  /* isMovable.  Not relevant for setters. */
   14770             :   false, /* isEliminatable.  Not relevant for setters. */
   14771             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14772             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14773             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14774             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14775             : };
   14776             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14777             : static_assert(0 < 1, "There is no slot for us");
   14778             : 
   14779             : static bool
   14780           0 : get_counterIncrement(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14781             : {
   14782           0 :   binding_detail::FastErrorResult rv;
   14783           0 :   DOMString result;
   14784           0 :   self->GetCounterIncrement(result, rv);
   14785           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14786           0 :     return false;
   14787             :   }
   14788           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14789           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14790           0 :     return false;
   14791             :   }
   14792           0 :   return true;
   14793             : }
   14794             : 
   14795             : static bool
   14796           0 : set_counterIncrement(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14797             : {
   14798           0 :   binding_detail::FakeString arg0;
   14799           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14800           0 :     return false;
   14801             :   }
   14802           0 :   binding_detail::FastErrorResult rv;
   14803           0 :   self->SetCounterIncrement(NonNullHelper(Constify(arg0)), rv);
   14804           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14805           0 :     return false;
   14806             :   }
   14807           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14808             : 
   14809           0 :   return true;
   14810             : }
   14811             : 
   14812             : static const JSJitInfo counterIncrement_getterinfo = {
   14813             :   { (JSJitGetterOp)get_counterIncrement },
   14814             :   { prototypes::id::CSS2Properties },
   14815             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14816             :   JSJitInfo::Getter,
   14817             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14818             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14819             :   false,  /* isInfallible. False in setters. */
   14820             :   false,  /* isMovable.  Not relevant for setters. */
   14821             :   false, /* isEliminatable.  Not relevant for setters. */
   14822             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14823             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14824             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14825             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14826             : };
   14827             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14828             : static_assert(0 < 1, "There is no slot for us");
   14829             : static const JSJitInfo counterIncrement_setterinfo = {
   14830             :   { (JSJitGetterOp)set_counterIncrement },
   14831             :   { prototypes::id::CSS2Properties },
   14832             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14833             :   JSJitInfo::Setter,
   14834             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14835             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14836             :   false,  /* isInfallible. False in setters. */
   14837             :   false,  /* isMovable.  Not relevant for setters. */
   14838             :   false, /* isEliminatable.  Not relevant for setters. */
   14839             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14840             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14841             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14842             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14843             : };
   14844             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14845             : static_assert(0 < 1, "There is no slot for us");
   14846             : 
   14847             : static bool
   14848           0 : get_counter_increment(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14849             : {
   14850           0 :   binding_detail::FastErrorResult rv;
   14851           0 :   DOMString result;
   14852           0 :   self->GetCounterIncrement(result, rv);
   14853           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14854           0 :     return false;
   14855             :   }
   14856           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14857           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14858           0 :     return false;
   14859             :   }
   14860           0 :   return true;
   14861             : }
   14862             : 
   14863             : static bool
   14864           0 : set_counter_increment(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14865             : {
   14866           0 :   binding_detail::FakeString arg0;
   14867           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14868           0 :     return false;
   14869             :   }
   14870           0 :   binding_detail::FastErrorResult rv;
   14871           0 :   self->SetCounterIncrement(NonNullHelper(Constify(arg0)), rv);
   14872           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14873           0 :     return false;
   14874             :   }
   14875           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14876             : 
   14877           0 :   return true;
   14878             : }
   14879             : 
   14880             : static const JSJitInfo counter_increment_getterinfo = {
   14881             :   { (JSJitGetterOp)get_counter_increment },
   14882             :   { prototypes::id::CSS2Properties },
   14883             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14884             :   JSJitInfo::Getter,
   14885             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14886             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14887             :   false,  /* isInfallible. False in setters. */
   14888             :   false,  /* isMovable.  Not relevant for setters. */
   14889             :   false, /* isEliminatable.  Not relevant for setters. */
   14890             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14891             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14892             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14893             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14894             : };
   14895             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14896             : static_assert(0 < 1, "There is no slot for us");
   14897             : static const JSJitInfo counter_increment_setterinfo = {
   14898             :   { (JSJitGetterOp)set_counter_increment },
   14899             :   { prototypes::id::CSS2Properties },
   14900             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14901             :   JSJitInfo::Setter,
   14902             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14903             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14904             :   false,  /* isInfallible. False in setters. */
   14905             :   false,  /* isMovable.  Not relevant for setters. */
   14906             :   false, /* isEliminatable.  Not relevant for setters. */
   14907             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14908             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14909             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14910             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14911             : };
   14912             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14913             : static_assert(0 < 1, "There is no slot for us");
   14914             : 
   14915             : static bool
   14916           0 : get_counterReset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14917             : {
   14918           0 :   binding_detail::FastErrorResult rv;
   14919           0 :   DOMString result;
   14920           0 :   self->GetCounterReset(result, rv);
   14921           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14922           0 :     return false;
   14923             :   }
   14924           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14925           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14926           0 :     return false;
   14927             :   }
   14928           0 :   return true;
   14929             : }
   14930             : 
   14931             : static bool
   14932           0 : set_counterReset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   14933             : {
   14934           0 :   binding_detail::FakeString arg0;
   14935           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   14936           0 :     return false;
   14937             :   }
   14938           0 :   binding_detail::FastErrorResult rv;
   14939           0 :   self->SetCounterReset(NonNullHelper(Constify(arg0)), rv);
   14940           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14941           0 :     return false;
   14942             :   }
   14943           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14944             : 
   14945           0 :   return true;
   14946             : }
   14947             : 
   14948             : static const JSJitInfo counterReset_getterinfo = {
   14949             :   { (JSJitGetterOp)get_counterReset },
   14950             :   { prototypes::id::CSS2Properties },
   14951             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14952             :   JSJitInfo::Getter,
   14953             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14954             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   14955             :   false,  /* isInfallible. False in setters. */
   14956             :   false,  /* isMovable.  Not relevant for setters. */
   14957             :   false, /* isEliminatable.  Not relevant for setters. */
   14958             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14959             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14960             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14961             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14962             : };
   14963             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14964             : static_assert(0 < 1, "There is no slot for us");
   14965             : static const JSJitInfo counterReset_setterinfo = {
   14966             :   { (JSJitGetterOp)set_counterReset },
   14967             :   { prototypes::id::CSS2Properties },
   14968             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   14969             :   JSJitInfo::Setter,
   14970             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   14971             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   14972             :   false,  /* isInfallible. False in setters. */
   14973             :   false,  /* isMovable.  Not relevant for setters. */
   14974             :   false, /* isEliminatable.  Not relevant for setters. */
   14975             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   14976             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   14977             :   false,  /* isTypedMethod.  Only relevant for methods. */
   14978             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   14979             : };
   14980             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   14981             : static_assert(0 < 1, "There is no slot for us");
   14982             : 
   14983             : static bool
   14984           0 : get_counter_reset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   14985             : {
   14986           0 :   binding_detail::FastErrorResult rv;
   14987           0 :   DOMString result;
   14988           0 :   self->GetCounterReset(result, rv);
   14989           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   14990           0 :     return false;
   14991             :   }
   14992           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   14993           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   14994           0 :     return false;
   14995             :   }
   14996           0 :   return true;
   14997             : }
   14998             : 
   14999             : static bool
   15000           0 : set_counter_reset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15001             : {
   15002           0 :   binding_detail::FakeString arg0;
   15003           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15004           0 :     return false;
   15005             :   }
   15006           0 :   binding_detail::FastErrorResult rv;
   15007           0 :   self->SetCounterReset(NonNullHelper(Constify(arg0)), rv);
   15008           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15009           0 :     return false;
   15010             :   }
   15011           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15012             : 
   15013           0 :   return true;
   15014             : }
   15015             : 
   15016             : static const JSJitInfo counter_reset_getterinfo = {
   15017             :   { (JSJitGetterOp)get_counter_reset },
   15018             :   { prototypes::id::CSS2Properties },
   15019             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15020             :   JSJitInfo::Getter,
   15021             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15022             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15023             :   false,  /* isInfallible. False in setters. */
   15024             :   false,  /* isMovable.  Not relevant for setters. */
   15025             :   false, /* isEliminatable.  Not relevant for setters. */
   15026             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15027             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15028             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15029             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15030             : };
   15031             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15032             : static_assert(0 < 1, "There is no slot for us");
   15033             : static const JSJitInfo counter_reset_setterinfo = {
   15034             :   { (JSJitGetterOp)set_counter_reset },
   15035             :   { prototypes::id::CSS2Properties },
   15036             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15037             :   JSJitInfo::Setter,
   15038             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15039             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15040             :   false,  /* isInfallible. False in setters. */
   15041             :   false,  /* isMovable.  Not relevant for setters. */
   15042             :   false, /* isEliminatable.  Not relevant for setters. */
   15043             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15044             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15045             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15046             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15047             : };
   15048             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15049             : static_assert(0 < 1, "There is no slot for us");
   15050             : 
   15051             : static bool
   15052           0 : get_cursor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15053             : {
   15054           0 :   binding_detail::FastErrorResult rv;
   15055           0 :   DOMString result;
   15056           0 :   self->GetCursor(result, rv);
   15057           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15058           0 :     return false;
   15059             :   }
   15060           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15061           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15062           0 :     return false;
   15063             :   }
   15064           0 :   return true;
   15065             : }
   15066             : 
   15067             : static bool
   15068           0 : set_cursor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15069             : {
   15070           0 :   binding_detail::FakeString arg0;
   15071           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15072           0 :     return false;
   15073             :   }
   15074           0 :   binding_detail::FastErrorResult rv;
   15075           0 :   self->SetCursor(NonNullHelper(Constify(arg0)), rv);
   15076           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15077           0 :     return false;
   15078             :   }
   15079           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15080             : 
   15081           0 :   return true;
   15082             : }
   15083             : 
   15084             : static const JSJitInfo cursor_getterinfo = {
   15085             :   { (JSJitGetterOp)get_cursor },
   15086             :   { prototypes::id::CSS2Properties },
   15087             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15088             :   JSJitInfo::Getter,
   15089             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15090             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15091             :   false,  /* isInfallible. False in setters. */
   15092             :   false,  /* isMovable.  Not relevant for setters. */
   15093             :   false, /* isEliminatable.  Not relevant for setters. */
   15094             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15095             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15096             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15097             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15098             : };
   15099             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15100             : static_assert(0 < 1, "There is no slot for us");
   15101             : static const JSJitInfo cursor_setterinfo = {
   15102             :   { (JSJitGetterOp)set_cursor },
   15103             :   { prototypes::id::CSS2Properties },
   15104             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15105             :   JSJitInfo::Setter,
   15106             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15107             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15108             :   false,  /* isInfallible. False in setters. */
   15109             :   false,  /* isMovable.  Not relevant for setters. */
   15110             :   false, /* isEliminatable.  Not relevant for setters. */
   15111             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15112             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15113             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15114             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15115             : };
   15116             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15117             : static_assert(0 < 1, "There is no slot for us");
   15118             : 
   15119             : static bool
   15120           1 : get_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15121             : {
   15122           2 :   binding_detail::FastErrorResult rv;
   15123           2 :   DOMString result;
   15124           1 :   self->GetDirection(result, rv);
   15125           1 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15126           0 :     return false;
   15127             :   }
   15128           1 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15129           1 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15130           0 :     return false;
   15131             :   }
   15132           1 :   return true;
   15133             : }
   15134             : 
   15135             : static bool
   15136           4 : set_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15137             : {
   15138           8 :   binding_detail::FakeString arg0;
   15139           4 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15140           0 :     return false;
   15141             :   }
   15142           8 :   binding_detail::FastErrorResult rv;
   15143           4 :   self->SetDirection(NonNullHelper(Constify(arg0)), rv);
   15144           4 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15145           0 :     return false;
   15146             :   }
   15147           4 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15148             : 
   15149           4 :   return true;
   15150             : }
   15151             : 
   15152             : static const JSJitInfo direction_getterinfo = {
   15153             :   { (JSJitGetterOp)get_direction },
   15154             :   { prototypes::id::CSS2Properties },
   15155             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15156             :   JSJitInfo::Getter,
   15157             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15158             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15159             :   false,  /* isInfallible. False in setters. */
   15160             :   false,  /* isMovable.  Not relevant for setters. */
   15161             :   false, /* isEliminatable.  Not relevant for setters. */
   15162             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15163             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15164             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15165             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15166             : };
   15167             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15168             : static_assert(0 < 1, "There is no slot for us");
   15169             : static const JSJitInfo direction_setterinfo = {
   15170             :   { (JSJitGetterOp)set_direction },
   15171             :   { prototypes::id::CSS2Properties },
   15172             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15173             :   JSJitInfo::Setter,
   15174             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15175             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15176             :   false,  /* isInfallible. False in setters. */
   15177             :   false,  /* isMovable.  Not relevant for setters. */
   15178             :   false, /* isEliminatable.  Not relevant for setters. */
   15179             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15180             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15181             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15182             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15183             : };
   15184             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15185             : static_assert(0 < 1, "There is no slot for us");
   15186             : 
   15187             : static bool
   15188           0 : get_display(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15189             : {
   15190           0 :   binding_detail::FastErrorResult rv;
   15191           0 :   DOMString result;
   15192           0 :   self->GetDisplay(result, rv);
   15193           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15194           0 :     return false;
   15195             :   }
   15196           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15197           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15198           0 :     return false;
   15199             :   }
   15200           0 :   return true;
   15201             : }
   15202             : 
   15203             : static bool
   15204           0 : set_display(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15205             : {
   15206           0 :   binding_detail::FakeString arg0;
   15207           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15208           0 :     return false;
   15209             :   }
   15210           0 :   binding_detail::FastErrorResult rv;
   15211           0 :   self->SetDisplay(NonNullHelper(Constify(arg0)), rv);
   15212           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15213           0 :     return false;
   15214             :   }
   15215           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15216             : 
   15217           0 :   return true;
   15218             : }
   15219             : 
   15220             : static const JSJitInfo display_getterinfo = {
   15221             :   { (JSJitGetterOp)get_display },
   15222             :   { prototypes::id::CSS2Properties },
   15223             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15224             :   JSJitInfo::Getter,
   15225             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15226             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15227             :   false,  /* isInfallible. False in setters. */
   15228             :   false,  /* isMovable.  Not relevant for setters. */
   15229             :   false, /* isEliminatable.  Not relevant for setters. */
   15230             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15231             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15232             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15233             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15234             : };
   15235             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15236             : static_assert(0 < 1, "There is no slot for us");
   15237             : static const JSJitInfo display_setterinfo = {
   15238             :   { (JSJitGetterOp)set_display },
   15239             :   { prototypes::id::CSS2Properties },
   15240             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15241             :   JSJitInfo::Setter,
   15242             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15243             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15244             :   false,  /* isInfallible. False in setters. */
   15245             :   false,  /* isMovable.  Not relevant for setters. */
   15246             :   false, /* isEliminatable.  Not relevant for setters. */
   15247             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15248             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15249             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15250             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15251             : };
   15252             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15253             : static_assert(0 < 1, "There is no slot for us");
   15254             : 
   15255             : static bool
   15256           0 : get_dominantBaseline(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15257             : {
   15258           0 :   binding_detail::FastErrorResult rv;
   15259           0 :   DOMString result;
   15260           0 :   self->GetDominantBaseline(result, rv);
   15261           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15262           0 :     return false;
   15263             :   }
   15264           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15265           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15266           0 :     return false;
   15267             :   }
   15268           0 :   return true;
   15269             : }
   15270             : 
   15271             : static bool
   15272           0 : set_dominantBaseline(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15273             : {
   15274           0 :   binding_detail::FakeString arg0;
   15275           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15276           0 :     return false;
   15277             :   }
   15278           0 :   binding_detail::FastErrorResult rv;
   15279           0 :   self->SetDominantBaseline(NonNullHelper(Constify(arg0)), rv);
   15280           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15281           0 :     return false;
   15282             :   }
   15283           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15284             : 
   15285           0 :   return true;
   15286             : }
   15287             : 
   15288             : static const JSJitInfo dominantBaseline_getterinfo = {
   15289             :   { (JSJitGetterOp)get_dominantBaseline },
   15290             :   { prototypes::id::CSS2Properties },
   15291             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15292             :   JSJitInfo::Getter,
   15293             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15294             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15295             :   false,  /* isInfallible. False in setters. */
   15296             :   false,  /* isMovable.  Not relevant for setters. */
   15297             :   false, /* isEliminatable.  Not relevant for setters. */
   15298             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15299             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15300             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15301             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15302             : };
   15303             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15304             : static_assert(0 < 1, "There is no slot for us");
   15305             : static const JSJitInfo dominantBaseline_setterinfo = {
   15306             :   { (JSJitGetterOp)set_dominantBaseline },
   15307             :   { prototypes::id::CSS2Properties },
   15308             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15309             :   JSJitInfo::Setter,
   15310             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15311             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15312             :   false,  /* isInfallible. False in setters. */
   15313             :   false,  /* isMovable.  Not relevant for setters. */
   15314             :   false, /* isEliminatable.  Not relevant for setters. */
   15315             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15316             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15317             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15318             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15319             : };
   15320             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15321             : static_assert(0 < 1, "There is no slot for us");
   15322             : 
   15323             : static bool
   15324           0 : get_dominant_baseline(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15325             : {
   15326           0 :   binding_detail::FastErrorResult rv;
   15327           0 :   DOMString result;
   15328           0 :   self->GetDominantBaseline(result, rv);
   15329           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15330           0 :     return false;
   15331             :   }
   15332           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15333           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15334           0 :     return false;
   15335             :   }
   15336           0 :   return true;
   15337             : }
   15338             : 
   15339             : static bool
   15340           0 : set_dominant_baseline(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15341             : {
   15342           0 :   binding_detail::FakeString arg0;
   15343           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15344           0 :     return false;
   15345             :   }
   15346           0 :   binding_detail::FastErrorResult rv;
   15347           0 :   self->SetDominantBaseline(NonNullHelper(Constify(arg0)), rv);
   15348           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15349           0 :     return false;
   15350             :   }
   15351           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15352             : 
   15353           0 :   return true;
   15354             : }
   15355             : 
   15356             : static const JSJitInfo dominant_baseline_getterinfo = {
   15357             :   { (JSJitGetterOp)get_dominant_baseline },
   15358             :   { prototypes::id::CSS2Properties },
   15359             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15360             :   JSJitInfo::Getter,
   15361             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15362             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15363             :   false,  /* isInfallible. False in setters. */
   15364             :   false,  /* isMovable.  Not relevant for setters. */
   15365             :   false, /* isEliminatable.  Not relevant for setters. */
   15366             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15367             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15368             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15369             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15370             : };
   15371             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15372             : static_assert(0 < 1, "There is no slot for us");
   15373             : static const JSJitInfo dominant_baseline_setterinfo = {
   15374             :   { (JSJitGetterOp)set_dominant_baseline },
   15375             :   { prototypes::id::CSS2Properties },
   15376             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15377             :   JSJitInfo::Setter,
   15378             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15379             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15380             :   false,  /* isInfallible. False in setters. */
   15381             :   false,  /* isMovable.  Not relevant for setters. */
   15382             :   false, /* isEliminatable.  Not relevant for setters. */
   15383             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15384             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15385             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15386             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15387             : };
   15388             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15389             : static_assert(0 < 1, "There is no slot for us");
   15390             : 
   15391             : static bool
   15392           0 : get_emptyCells(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15393             : {
   15394           0 :   binding_detail::FastErrorResult rv;
   15395           0 :   DOMString result;
   15396           0 :   self->GetEmptyCells(result, rv);
   15397           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15398           0 :     return false;
   15399             :   }
   15400           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15401           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15402           0 :     return false;
   15403             :   }
   15404           0 :   return true;
   15405             : }
   15406             : 
   15407             : static bool
   15408           0 : set_emptyCells(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15409             : {
   15410           0 :   binding_detail::FakeString arg0;
   15411           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15412           0 :     return false;
   15413             :   }
   15414           0 :   binding_detail::FastErrorResult rv;
   15415           0 :   self->SetEmptyCells(NonNullHelper(Constify(arg0)), rv);
   15416           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15417           0 :     return false;
   15418             :   }
   15419           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15420             : 
   15421           0 :   return true;
   15422             : }
   15423             : 
   15424             : static const JSJitInfo emptyCells_getterinfo = {
   15425             :   { (JSJitGetterOp)get_emptyCells },
   15426             :   { prototypes::id::CSS2Properties },
   15427             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15428             :   JSJitInfo::Getter,
   15429             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15430             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15431             :   false,  /* isInfallible. False in setters. */
   15432             :   false,  /* isMovable.  Not relevant for setters. */
   15433             :   false, /* isEliminatable.  Not relevant for setters. */
   15434             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15435             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15436             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15437             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15438             : };
   15439             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15440             : static_assert(0 < 1, "There is no slot for us");
   15441             : static const JSJitInfo emptyCells_setterinfo = {
   15442             :   { (JSJitGetterOp)set_emptyCells },
   15443             :   { prototypes::id::CSS2Properties },
   15444             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15445             :   JSJitInfo::Setter,
   15446             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15447             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15448             :   false,  /* isInfallible. False in setters. */
   15449             :   false,  /* isMovable.  Not relevant for setters. */
   15450             :   false, /* isEliminatable.  Not relevant for setters. */
   15451             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15452             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15453             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15454             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15455             : };
   15456             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15457             : static_assert(0 < 1, "There is no slot for us");
   15458             : 
   15459             : static bool
   15460           0 : get_empty_cells(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15461             : {
   15462           0 :   binding_detail::FastErrorResult rv;
   15463           0 :   DOMString result;
   15464           0 :   self->GetEmptyCells(result, rv);
   15465           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15466           0 :     return false;
   15467             :   }
   15468           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15469           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15470           0 :     return false;
   15471             :   }
   15472           0 :   return true;
   15473             : }
   15474             : 
   15475             : static bool
   15476           0 : set_empty_cells(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15477             : {
   15478           0 :   binding_detail::FakeString arg0;
   15479           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15480           0 :     return false;
   15481             :   }
   15482           0 :   binding_detail::FastErrorResult rv;
   15483           0 :   self->SetEmptyCells(NonNullHelper(Constify(arg0)), rv);
   15484           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15485           0 :     return false;
   15486             :   }
   15487           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15488             : 
   15489           0 :   return true;
   15490             : }
   15491             : 
   15492             : static const JSJitInfo empty_cells_getterinfo = {
   15493             :   { (JSJitGetterOp)get_empty_cells },
   15494             :   { prototypes::id::CSS2Properties },
   15495             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15496             :   JSJitInfo::Getter,
   15497             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15498             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15499             :   false,  /* isInfallible. False in setters. */
   15500             :   false,  /* isMovable.  Not relevant for setters. */
   15501             :   false, /* isEliminatable.  Not relevant for setters. */
   15502             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15503             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15504             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15505             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15506             : };
   15507             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15508             : static_assert(0 < 1, "There is no slot for us");
   15509             : static const JSJitInfo empty_cells_setterinfo = {
   15510             :   { (JSJitGetterOp)set_empty_cells },
   15511             :   { prototypes::id::CSS2Properties },
   15512             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15513             :   JSJitInfo::Setter,
   15514             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15515             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15516             :   false,  /* isInfallible. False in setters. */
   15517             :   false,  /* isMovable.  Not relevant for setters. */
   15518             :   false, /* isEliminatable.  Not relevant for setters. */
   15519             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15520             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15521             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15522             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15523             : };
   15524             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15525             : static_assert(0 < 1, "There is no slot for us");
   15526             : 
   15527             : static bool
   15528           0 : get_fill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15529             : {
   15530           0 :   binding_detail::FastErrorResult rv;
   15531           0 :   DOMString result;
   15532           0 :   self->GetFill(result, rv);
   15533           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15534           0 :     return false;
   15535             :   }
   15536           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15537           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15538           0 :     return false;
   15539             :   }
   15540           0 :   return true;
   15541             : }
   15542             : 
   15543             : static bool
   15544           0 : set_fill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15545             : {
   15546           0 :   binding_detail::FakeString arg0;
   15547           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15548           0 :     return false;
   15549             :   }
   15550           0 :   binding_detail::FastErrorResult rv;
   15551           0 :   self->SetFill(NonNullHelper(Constify(arg0)), rv);
   15552           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15553           0 :     return false;
   15554             :   }
   15555           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15556             : 
   15557           0 :   return true;
   15558             : }
   15559             : 
   15560             : static const JSJitInfo fill_getterinfo = {
   15561             :   { (JSJitGetterOp)get_fill },
   15562             :   { prototypes::id::CSS2Properties },
   15563             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15564             :   JSJitInfo::Getter,
   15565             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15566             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15567             :   false,  /* isInfallible. False in setters. */
   15568             :   false,  /* isMovable.  Not relevant for setters. */
   15569             :   false, /* isEliminatable.  Not relevant for setters. */
   15570             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15571             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15572             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15573             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15574             : };
   15575             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15576             : static_assert(0 < 1, "There is no slot for us");
   15577             : static const JSJitInfo fill_setterinfo = {
   15578             :   { (JSJitGetterOp)set_fill },
   15579             :   { prototypes::id::CSS2Properties },
   15580             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15581             :   JSJitInfo::Setter,
   15582             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15583             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15584             :   false,  /* isInfallible. False in setters. */
   15585             :   false,  /* isMovable.  Not relevant for setters. */
   15586             :   false, /* isEliminatable.  Not relevant for setters. */
   15587             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15588             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15589             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15590             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15591             : };
   15592             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15593             : static_assert(0 < 1, "There is no slot for us");
   15594             : 
   15595             : static bool
   15596           0 : get_fillOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15597             : {
   15598           0 :   binding_detail::FastErrorResult rv;
   15599           0 :   DOMString result;
   15600           0 :   self->GetFillOpacity(result, rv);
   15601           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15602           0 :     return false;
   15603             :   }
   15604           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15605           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15606           0 :     return false;
   15607             :   }
   15608           0 :   return true;
   15609             : }
   15610             : 
   15611             : static bool
   15612           0 : set_fillOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15613             : {
   15614           0 :   binding_detail::FakeString arg0;
   15615           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15616           0 :     return false;
   15617             :   }
   15618           0 :   binding_detail::FastErrorResult rv;
   15619           0 :   self->SetFillOpacity(NonNullHelper(Constify(arg0)), rv);
   15620           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15621           0 :     return false;
   15622             :   }
   15623           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15624             : 
   15625           0 :   return true;
   15626             : }
   15627             : 
   15628             : static const JSJitInfo fillOpacity_getterinfo = {
   15629             :   { (JSJitGetterOp)get_fillOpacity },
   15630             :   { prototypes::id::CSS2Properties },
   15631             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15632             :   JSJitInfo::Getter,
   15633             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15634             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15635             :   false,  /* isInfallible. False in setters. */
   15636             :   false,  /* isMovable.  Not relevant for setters. */
   15637             :   false, /* isEliminatable.  Not relevant for setters. */
   15638             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15639             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15640             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15641             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15642             : };
   15643             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15644             : static_assert(0 < 1, "There is no slot for us");
   15645             : static const JSJitInfo fillOpacity_setterinfo = {
   15646             :   { (JSJitGetterOp)set_fillOpacity },
   15647             :   { prototypes::id::CSS2Properties },
   15648             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15649             :   JSJitInfo::Setter,
   15650             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15651             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15652             :   false,  /* isInfallible. False in setters. */
   15653             :   false,  /* isMovable.  Not relevant for setters. */
   15654             :   false, /* isEliminatable.  Not relevant for setters. */
   15655             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15656             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15657             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15658             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15659             : };
   15660             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15661             : static_assert(0 < 1, "There is no slot for us");
   15662             : 
   15663             : static bool
   15664           0 : get_fill_opacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15665             : {
   15666           0 :   binding_detail::FastErrorResult rv;
   15667           0 :   DOMString result;
   15668           0 :   self->GetFillOpacity(result, rv);
   15669           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15670           0 :     return false;
   15671             :   }
   15672           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15673           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15674           0 :     return false;
   15675             :   }
   15676           0 :   return true;
   15677             : }
   15678             : 
   15679             : static bool
   15680           0 : set_fill_opacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15681             : {
   15682           0 :   binding_detail::FakeString arg0;
   15683           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15684           0 :     return false;
   15685             :   }
   15686           0 :   binding_detail::FastErrorResult rv;
   15687           0 :   self->SetFillOpacity(NonNullHelper(Constify(arg0)), rv);
   15688           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15689           0 :     return false;
   15690             :   }
   15691           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15692             : 
   15693           0 :   return true;
   15694             : }
   15695             : 
   15696             : static const JSJitInfo fill_opacity_getterinfo = {
   15697             :   { (JSJitGetterOp)get_fill_opacity },
   15698             :   { prototypes::id::CSS2Properties },
   15699             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15700             :   JSJitInfo::Getter,
   15701             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15702             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15703             :   false,  /* isInfallible. False in setters. */
   15704             :   false,  /* isMovable.  Not relevant for setters. */
   15705             :   false, /* isEliminatable.  Not relevant for setters. */
   15706             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15707             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15708             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15709             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15710             : };
   15711             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15712             : static_assert(0 < 1, "There is no slot for us");
   15713             : static const JSJitInfo fill_opacity_setterinfo = {
   15714             :   { (JSJitGetterOp)set_fill_opacity },
   15715             :   { prototypes::id::CSS2Properties },
   15716             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15717             :   JSJitInfo::Setter,
   15718             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15719             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15720             :   false,  /* isInfallible. False in setters. */
   15721             :   false,  /* isMovable.  Not relevant for setters. */
   15722             :   false, /* isEliminatable.  Not relevant for setters. */
   15723             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15724             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15725             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15726             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15727             : };
   15728             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15729             : static_assert(0 < 1, "There is no slot for us");
   15730             : 
   15731             : static bool
   15732           0 : get_fillRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15733             : {
   15734           0 :   binding_detail::FastErrorResult rv;
   15735           0 :   DOMString result;
   15736           0 :   self->GetFillRule(result, rv);
   15737           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15738           0 :     return false;
   15739             :   }
   15740           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15741           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15742           0 :     return false;
   15743             :   }
   15744           0 :   return true;
   15745             : }
   15746             : 
   15747             : static bool
   15748           0 : set_fillRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15749             : {
   15750           0 :   binding_detail::FakeString arg0;
   15751           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15752           0 :     return false;
   15753             :   }
   15754           0 :   binding_detail::FastErrorResult rv;
   15755           0 :   self->SetFillRule(NonNullHelper(Constify(arg0)), rv);
   15756           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15757           0 :     return false;
   15758             :   }
   15759           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15760             : 
   15761           0 :   return true;
   15762             : }
   15763             : 
   15764             : static const JSJitInfo fillRule_getterinfo = {
   15765             :   { (JSJitGetterOp)get_fillRule },
   15766             :   { prototypes::id::CSS2Properties },
   15767             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15768             :   JSJitInfo::Getter,
   15769             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15770             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15771             :   false,  /* isInfallible. False in setters. */
   15772             :   false,  /* isMovable.  Not relevant for setters. */
   15773             :   false, /* isEliminatable.  Not relevant for setters. */
   15774             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15775             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15776             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15777             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15778             : };
   15779             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15780             : static_assert(0 < 1, "There is no slot for us");
   15781             : static const JSJitInfo fillRule_setterinfo = {
   15782             :   { (JSJitGetterOp)set_fillRule },
   15783             :   { prototypes::id::CSS2Properties },
   15784             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15785             :   JSJitInfo::Setter,
   15786             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15787             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15788             :   false,  /* isInfallible. False in setters. */
   15789             :   false,  /* isMovable.  Not relevant for setters. */
   15790             :   false, /* isEliminatable.  Not relevant for setters. */
   15791             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15792             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15793             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15794             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15795             : };
   15796             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15797             : static_assert(0 < 1, "There is no slot for us");
   15798             : 
   15799             : static bool
   15800           0 : get_fill_rule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15801             : {
   15802           0 :   binding_detail::FastErrorResult rv;
   15803           0 :   DOMString result;
   15804           0 :   self->GetFillRule(result, rv);
   15805           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15806           0 :     return false;
   15807             :   }
   15808           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15809           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15810           0 :     return false;
   15811             :   }
   15812           0 :   return true;
   15813             : }
   15814             : 
   15815             : static bool
   15816           0 : set_fill_rule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15817             : {
   15818           0 :   binding_detail::FakeString arg0;
   15819           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15820           0 :     return false;
   15821             :   }
   15822           0 :   binding_detail::FastErrorResult rv;
   15823           0 :   self->SetFillRule(NonNullHelper(Constify(arg0)), rv);
   15824           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15825           0 :     return false;
   15826             :   }
   15827           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15828             : 
   15829           0 :   return true;
   15830             : }
   15831             : 
   15832             : static const JSJitInfo fill_rule_getterinfo = {
   15833             :   { (JSJitGetterOp)get_fill_rule },
   15834             :   { prototypes::id::CSS2Properties },
   15835             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15836             :   JSJitInfo::Getter,
   15837             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15838             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15839             :   false,  /* isInfallible. False in setters. */
   15840             :   false,  /* isMovable.  Not relevant for setters. */
   15841             :   false, /* isEliminatable.  Not relevant for setters. */
   15842             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15843             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15844             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15845             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15846             : };
   15847             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15848             : static_assert(0 < 1, "There is no slot for us");
   15849             : static const JSJitInfo fill_rule_setterinfo = {
   15850             :   { (JSJitGetterOp)set_fill_rule },
   15851             :   { prototypes::id::CSS2Properties },
   15852             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15853             :   JSJitInfo::Setter,
   15854             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15855             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15856             :   false,  /* isInfallible. False in setters. */
   15857             :   false,  /* isMovable.  Not relevant for setters. */
   15858             :   false, /* isEliminatable.  Not relevant for setters. */
   15859             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15860             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15861             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15862             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15863             : };
   15864             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15865             : static_assert(0 < 1, "There is no slot for us");
   15866             : 
   15867             : static bool
   15868           0 : get_filter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15869             : {
   15870           0 :   binding_detail::FastErrorResult rv;
   15871           0 :   DOMString result;
   15872           0 :   self->GetFilter(result, rv);
   15873           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15874           0 :     return false;
   15875             :   }
   15876           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15877           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15878           0 :     return false;
   15879             :   }
   15880           0 :   return true;
   15881             : }
   15882             : 
   15883             : static bool
   15884           0 : set_filter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15885             : {
   15886           0 :   binding_detail::FakeString arg0;
   15887           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15888           0 :     return false;
   15889             :   }
   15890           0 :   binding_detail::FastErrorResult rv;
   15891           0 :   self->SetFilter(NonNullHelper(Constify(arg0)), rv);
   15892           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15893           0 :     return false;
   15894             :   }
   15895           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15896             : 
   15897           0 :   return true;
   15898             : }
   15899             : 
   15900             : static const JSJitInfo filter_getterinfo = {
   15901             :   { (JSJitGetterOp)get_filter },
   15902             :   { prototypes::id::CSS2Properties },
   15903             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15904             :   JSJitInfo::Getter,
   15905             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15906             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15907             :   false,  /* isInfallible. False in setters. */
   15908             :   false,  /* isMovable.  Not relevant for setters. */
   15909             :   false, /* isEliminatable.  Not relevant for setters. */
   15910             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15911             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15912             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15913             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15914             : };
   15915             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15916             : static_assert(0 < 1, "There is no slot for us");
   15917             : static const JSJitInfo filter_setterinfo = {
   15918             :   { (JSJitGetterOp)set_filter },
   15919             :   { prototypes::id::CSS2Properties },
   15920             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15921             :   JSJitInfo::Setter,
   15922             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15923             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15924             :   false,  /* isInfallible. False in setters. */
   15925             :   false,  /* isMovable.  Not relevant for setters. */
   15926             :   false, /* isEliminatable.  Not relevant for setters. */
   15927             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15928             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15929             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15930             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15931             : };
   15932             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15933             : static_assert(0 < 1, "There is no slot for us");
   15934             : 
   15935             : static bool
   15936           0 : get_flex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   15937             : {
   15938           0 :   binding_detail::FastErrorResult rv;
   15939           0 :   DOMString result;
   15940           0 :   self->GetFlex(result, rv);
   15941           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15942           0 :     return false;
   15943             :   }
   15944           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15945           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   15946           0 :     return false;
   15947             :   }
   15948           0 :   return true;
   15949             : }
   15950             : 
   15951             : static bool
   15952           0 : set_flex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   15953             : {
   15954           0 :   binding_detail::FakeString arg0;
   15955           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   15956           0 :     return false;
   15957             :   }
   15958           0 :   binding_detail::FastErrorResult rv;
   15959           0 :   self->SetFlex(NonNullHelper(Constify(arg0)), rv);
   15960           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   15961           0 :     return false;
   15962             :   }
   15963           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   15964             : 
   15965           0 :   return true;
   15966             : }
   15967             : 
   15968             : static const JSJitInfo flex_getterinfo = {
   15969             :   { (JSJitGetterOp)get_flex },
   15970             :   { prototypes::id::CSS2Properties },
   15971             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15972             :   JSJitInfo::Getter,
   15973             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15974             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   15975             :   false,  /* isInfallible. False in setters. */
   15976             :   false,  /* isMovable.  Not relevant for setters. */
   15977             :   false, /* isEliminatable.  Not relevant for setters. */
   15978             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15979             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15980             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15981             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15982             : };
   15983             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   15984             : static_assert(0 < 1, "There is no slot for us");
   15985             : static const JSJitInfo flex_setterinfo = {
   15986             :   { (JSJitGetterOp)set_flex },
   15987             :   { prototypes::id::CSS2Properties },
   15988             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   15989             :   JSJitInfo::Setter,
   15990             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   15991             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   15992             :   false,  /* isInfallible. False in setters. */
   15993             :   false,  /* isMovable.  Not relevant for setters. */
   15994             :   false, /* isEliminatable.  Not relevant for setters. */
   15995             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   15996             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   15997             :   false,  /* isTypedMethod.  Only relevant for methods. */
   15998             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   15999             : };
   16000             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16001             : static_assert(0 < 1, "There is no slot for us");
   16002             : 
   16003             : static bool
   16004           0 : get_flexBasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16005             : {
   16006           0 :   binding_detail::FastErrorResult rv;
   16007           0 :   DOMString result;
   16008           0 :   self->GetFlexBasis(result, rv);
   16009           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16010           0 :     return false;
   16011             :   }
   16012           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16013           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16014           0 :     return false;
   16015             :   }
   16016           0 :   return true;
   16017             : }
   16018             : 
   16019             : static bool
   16020           0 : set_flexBasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16021             : {
   16022           0 :   binding_detail::FakeString arg0;
   16023           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16024           0 :     return false;
   16025             :   }
   16026           0 :   binding_detail::FastErrorResult rv;
   16027           0 :   self->SetFlexBasis(NonNullHelper(Constify(arg0)), rv);
   16028           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16029           0 :     return false;
   16030             :   }
   16031           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16032             : 
   16033           0 :   return true;
   16034             : }
   16035             : 
   16036             : static const JSJitInfo flexBasis_getterinfo = {
   16037             :   { (JSJitGetterOp)get_flexBasis },
   16038             :   { prototypes::id::CSS2Properties },
   16039             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16040             :   JSJitInfo::Getter,
   16041             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16042             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16043             :   false,  /* isInfallible. False in setters. */
   16044             :   false,  /* isMovable.  Not relevant for setters. */
   16045             :   false, /* isEliminatable.  Not relevant for setters. */
   16046             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16047             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16048             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16049             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16050             : };
   16051             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16052             : static_assert(0 < 1, "There is no slot for us");
   16053             : static const JSJitInfo flexBasis_setterinfo = {
   16054             :   { (JSJitGetterOp)set_flexBasis },
   16055             :   { prototypes::id::CSS2Properties },
   16056             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16057             :   JSJitInfo::Setter,
   16058             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16059             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16060             :   false,  /* isInfallible. False in setters. */
   16061             :   false,  /* isMovable.  Not relevant for setters. */
   16062             :   false, /* isEliminatable.  Not relevant for setters. */
   16063             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16064             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16065             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16066             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16067             : };
   16068             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16069             : static_assert(0 < 1, "There is no slot for us");
   16070             : 
   16071             : static bool
   16072           0 : get_flex_basis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16073             : {
   16074           0 :   binding_detail::FastErrorResult rv;
   16075           0 :   DOMString result;
   16076           0 :   self->GetFlexBasis(result, rv);
   16077           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16078           0 :     return false;
   16079             :   }
   16080           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16081           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16082           0 :     return false;
   16083             :   }
   16084           0 :   return true;
   16085             : }
   16086             : 
   16087             : static bool
   16088           0 : set_flex_basis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16089             : {
   16090           0 :   binding_detail::FakeString arg0;
   16091           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16092           0 :     return false;
   16093             :   }
   16094           0 :   binding_detail::FastErrorResult rv;
   16095           0 :   self->SetFlexBasis(NonNullHelper(Constify(arg0)), rv);
   16096           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16097           0 :     return false;
   16098             :   }
   16099           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16100             : 
   16101           0 :   return true;
   16102             : }
   16103             : 
   16104             : static const JSJitInfo flex_basis_getterinfo = {
   16105             :   { (JSJitGetterOp)get_flex_basis },
   16106             :   { prototypes::id::CSS2Properties },
   16107             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16108             :   JSJitInfo::Getter,
   16109             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16110             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16111             :   false,  /* isInfallible. False in setters. */
   16112             :   false,  /* isMovable.  Not relevant for setters. */
   16113             :   false, /* isEliminatable.  Not relevant for setters. */
   16114             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16115             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16116             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16117             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16118             : };
   16119             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16120             : static_assert(0 < 1, "There is no slot for us");
   16121             : static const JSJitInfo flex_basis_setterinfo = {
   16122             :   { (JSJitGetterOp)set_flex_basis },
   16123             :   { prototypes::id::CSS2Properties },
   16124             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16125             :   JSJitInfo::Setter,
   16126             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16127             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16128             :   false,  /* isInfallible. False in setters. */
   16129             :   false,  /* isMovable.  Not relevant for setters. */
   16130             :   false, /* isEliminatable.  Not relevant for setters. */
   16131             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16132             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16133             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16134             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16135             : };
   16136             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16137             : static_assert(0 < 1, "There is no slot for us");
   16138             : 
   16139             : static bool
   16140           0 : get_flexDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16141             : {
   16142           0 :   binding_detail::FastErrorResult rv;
   16143           0 :   DOMString result;
   16144           0 :   self->GetFlexDirection(result, rv);
   16145           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16146           0 :     return false;
   16147             :   }
   16148           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16149           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16150           0 :     return false;
   16151             :   }
   16152           0 :   return true;
   16153             : }
   16154             : 
   16155             : static bool
   16156           0 : set_flexDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16157             : {
   16158           0 :   binding_detail::FakeString arg0;
   16159           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16160           0 :     return false;
   16161             :   }
   16162           0 :   binding_detail::FastErrorResult rv;
   16163           0 :   self->SetFlexDirection(NonNullHelper(Constify(arg0)), rv);
   16164           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16165           0 :     return false;
   16166             :   }
   16167           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16168             : 
   16169           0 :   return true;
   16170             : }
   16171             : 
   16172             : static const JSJitInfo flexDirection_getterinfo = {
   16173             :   { (JSJitGetterOp)get_flexDirection },
   16174             :   { prototypes::id::CSS2Properties },
   16175             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16176             :   JSJitInfo::Getter,
   16177             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16178             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16179             :   false,  /* isInfallible. False in setters. */
   16180             :   false,  /* isMovable.  Not relevant for setters. */
   16181             :   false, /* isEliminatable.  Not relevant for setters. */
   16182             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16183             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16184             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16185             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16186             : };
   16187             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16188             : static_assert(0 < 1, "There is no slot for us");
   16189             : static const JSJitInfo flexDirection_setterinfo = {
   16190             :   { (JSJitGetterOp)set_flexDirection },
   16191             :   { prototypes::id::CSS2Properties },
   16192             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16193             :   JSJitInfo::Setter,
   16194             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16195             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16196             :   false,  /* isInfallible. False in setters. */
   16197             :   false,  /* isMovable.  Not relevant for setters. */
   16198             :   false, /* isEliminatable.  Not relevant for setters. */
   16199             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16200             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16201             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16202             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16203             : };
   16204             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16205             : static_assert(0 < 1, "There is no slot for us");
   16206             : 
   16207             : static bool
   16208           0 : get_flex_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16209             : {
   16210           0 :   binding_detail::FastErrorResult rv;
   16211           0 :   DOMString result;
   16212           0 :   self->GetFlexDirection(result, rv);
   16213           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16214           0 :     return false;
   16215             :   }
   16216           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16217           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16218           0 :     return false;
   16219             :   }
   16220           0 :   return true;
   16221             : }
   16222             : 
   16223             : static bool
   16224           0 : set_flex_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16225             : {
   16226           0 :   binding_detail::FakeString arg0;
   16227           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16228           0 :     return false;
   16229             :   }
   16230           0 :   binding_detail::FastErrorResult rv;
   16231           0 :   self->SetFlexDirection(NonNullHelper(Constify(arg0)), rv);
   16232           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16233           0 :     return false;
   16234             :   }
   16235           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16236             : 
   16237           0 :   return true;
   16238             : }
   16239             : 
   16240             : static const JSJitInfo flex_direction_getterinfo = {
   16241             :   { (JSJitGetterOp)get_flex_direction },
   16242             :   { prototypes::id::CSS2Properties },
   16243             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16244             :   JSJitInfo::Getter,
   16245             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16246             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16247             :   false,  /* isInfallible. False in setters. */
   16248             :   false,  /* isMovable.  Not relevant for setters. */
   16249             :   false, /* isEliminatable.  Not relevant for setters. */
   16250             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16251             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16252             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16253             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16254             : };
   16255             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16256             : static_assert(0 < 1, "There is no slot for us");
   16257             : static const JSJitInfo flex_direction_setterinfo = {
   16258             :   { (JSJitGetterOp)set_flex_direction },
   16259             :   { prototypes::id::CSS2Properties },
   16260             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16261             :   JSJitInfo::Setter,
   16262             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16263             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16264             :   false,  /* isInfallible. False in setters. */
   16265             :   false,  /* isMovable.  Not relevant for setters. */
   16266             :   false, /* isEliminatable.  Not relevant for setters. */
   16267             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16268             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16269             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16270             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16271             : };
   16272             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16273             : static_assert(0 < 1, "There is no slot for us");
   16274             : 
   16275             : static bool
   16276           0 : get_flexFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16277             : {
   16278           0 :   binding_detail::FastErrorResult rv;
   16279           0 :   DOMString result;
   16280           0 :   self->GetFlexFlow(result, rv);
   16281           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16282           0 :     return false;
   16283             :   }
   16284           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16285           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16286           0 :     return false;
   16287             :   }
   16288           0 :   return true;
   16289             : }
   16290             : 
   16291             : static bool
   16292           0 : set_flexFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16293             : {
   16294           0 :   binding_detail::FakeString arg0;
   16295           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16296           0 :     return false;
   16297             :   }
   16298           0 :   binding_detail::FastErrorResult rv;
   16299           0 :   self->SetFlexFlow(NonNullHelper(Constify(arg0)), rv);
   16300           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16301           0 :     return false;
   16302             :   }
   16303           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16304             : 
   16305           0 :   return true;
   16306             : }
   16307             : 
   16308             : static const JSJitInfo flexFlow_getterinfo = {
   16309             :   { (JSJitGetterOp)get_flexFlow },
   16310             :   { prototypes::id::CSS2Properties },
   16311             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16312             :   JSJitInfo::Getter,
   16313             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16314             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16315             :   false,  /* isInfallible. False in setters. */
   16316             :   false,  /* isMovable.  Not relevant for setters. */
   16317             :   false, /* isEliminatable.  Not relevant for setters. */
   16318             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16319             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16320             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16321             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16322             : };
   16323             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16324             : static_assert(0 < 1, "There is no slot for us");
   16325             : static const JSJitInfo flexFlow_setterinfo = {
   16326             :   { (JSJitGetterOp)set_flexFlow },
   16327             :   { prototypes::id::CSS2Properties },
   16328             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16329             :   JSJitInfo::Setter,
   16330             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16331             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16332             :   false,  /* isInfallible. False in setters. */
   16333             :   false,  /* isMovable.  Not relevant for setters. */
   16334             :   false, /* isEliminatable.  Not relevant for setters. */
   16335             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16336             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16337             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16338             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16339             : };
   16340             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16341             : static_assert(0 < 1, "There is no slot for us");
   16342             : 
   16343             : static bool
   16344           0 : get_flex_flow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16345             : {
   16346           0 :   binding_detail::FastErrorResult rv;
   16347           0 :   DOMString result;
   16348           0 :   self->GetFlexFlow(result, rv);
   16349           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16350           0 :     return false;
   16351             :   }
   16352           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16353           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16354           0 :     return false;
   16355             :   }
   16356           0 :   return true;
   16357             : }
   16358             : 
   16359             : static bool
   16360           0 : set_flex_flow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16361             : {
   16362           0 :   binding_detail::FakeString arg0;
   16363           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16364           0 :     return false;
   16365             :   }
   16366           0 :   binding_detail::FastErrorResult rv;
   16367           0 :   self->SetFlexFlow(NonNullHelper(Constify(arg0)), rv);
   16368           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16369           0 :     return false;
   16370             :   }
   16371           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16372             : 
   16373           0 :   return true;
   16374             : }
   16375             : 
   16376             : static const JSJitInfo flex_flow_getterinfo = {
   16377             :   { (JSJitGetterOp)get_flex_flow },
   16378             :   { prototypes::id::CSS2Properties },
   16379             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16380             :   JSJitInfo::Getter,
   16381             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16382             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16383             :   false,  /* isInfallible. False in setters. */
   16384             :   false,  /* isMovable.  Not relevant for setters. */
   16385             :   false, /* isEliminatable.  Not relevant for setters. */
   16386             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16387             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16388             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16389             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16390             : };
   16391             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16392             : static_assert(0 < 1, "There is no slot for us");
   16393             : static const JSJitInfo flex_flow_setterinfo = {
   16394             :   { (JSJitGetterOp)set_flex_flow },
   16395             :   { prototypes::id::CSS2Properties },
   16396             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16397             :   JSJitInfo::Setter,
   16398             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16399             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16400             :   false,  /* isInfallible. False in setters. */
   16401             :   false,  /* isMovable.  Not relevant for setters. */
   16402             :   false, /* isEliminatable.  Not relevant for setters. */
   16403             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16404             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16405             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16406             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16407             : };
   16408             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16409             : static_assert(0 < 1, "There is no slot for us");
   16410             : 
   16411             : static bool
   16412           0 : get_flexGrow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16413             : {
   16414           0 :   binding_detail::FastErrorResult rv;
   16415           0 :   DOMString result;
   16416           0 :   self->GetFlexGrow(result, rv);
   16417           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16418           0 :     return false;
   16419             :   }
   16420           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16421           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16422           0 :     return false;
   16423             :   }
   16424           0 :   return true;
   16425             : }
   16426             : 
   16427             : static bool
   16428           0 : set_flexGrow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16429             : {
   16430           0 :   binding_detail::FakeString arg0;
   16431           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16432           0 :     return false;
   16433             :   }
   16434           0 :   binding_detail::FastErrorResult rv;
   16435           0 :   self->SetFlexGrow(NonNullHelper(Constify(arg0)), rv);
   16436           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16437           0 :     return false;
   16438             :   }
   16439           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16440             : 
   16441           0 :   return true;
   16442             : }
   16443             : 
   16444             : static const JSJitInfo flexGrow_getterinfo = {
   16445             :   { (JSJitGetterOp)get_flexGrow },
   16446             :   { prototypes::id::CSS2Properties },
   16447             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16448             :   JSJitInfo::Getter,
   16449             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16450             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16451             :   false,  /* isInfallible. False in setters. */
   16452             :   false,  /* isMovable.  Not relevant for setters. */
   16453             :   false, /* isEliminatable.  Not relevant for setters. */
   16454             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16455             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16456             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16457             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16458             : };
   16459             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16460             : static_assert(0 < 1, "There is no slot for us");
   16461             : static const JSJitInfo flexGrow_setterinfo = {
   16462             :   { (JSJitGetterOp)set_flexGrow },
   16463             :   { prototypes::id::CSS2Properties },
   16464             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16465             :   JSJitInfo::Setter,
   16466             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16467             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16468             :   false,  /* isInfallible. False in setters. */
   16469             :   false,  /* isMovable.  Not relevant for setters. */
   16470             :   false, /* isEliminatable.  Not relevant for setters. */
   16471             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16472             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16473             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16474             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16475             : };
   16476             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16477             : static_assert(0 < 1, "There is no slot for us");
   16478             : 
   16479             : static bool
   16480           0 : get_flex_grow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16481             : {
   16482           0 :   binding_detail::FastErrorResult rv;
   16483           0 :   DOMString result;
   16484           0 :   self->GetFlexGrow(result, rv);
   16485           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16486           0 :     return false;
   16487             :   }
   16488           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16489           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16490           0 :     return false;
   16491             :   }
   16492           0 :   return true;
   16493             : }
   16494             : 
   16495             : static bool
   16496           0 : set_flex_grow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16497             : {
   16498           0 :   binding_detail::FakeString arg0;
   16499           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16500           0 :     return false;
   16501             :   }
   16502           0 :   binding_detail::FastErrorResult rv;
   16503           0 :   self->SetFlexGrow(NonNullHelper(Constify(arg0)), rv);
   16504           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16505           0 :     return false;
   16506             :   }
   16507           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16508             : 
   16509           0 :   return true;
   16510             : }
   16511             : 
   16512             : static const JSJitInfo flex_grow_getterinfo = {
   16513             :   { (JSJitGetterOp)get_flex_grow },
   16514             :   { prototypes::id::CSS2Properties },
   16515             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16516             :   JSJitInfo::Getter,
   16517             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16518             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16519             :   false,  /* isInfallible. False in setters. */
   16520             :   false,  /* isMovable.  Not relevant for setters. */
   16521             :   false, /* isEliminatable.  Not relevant for setters. */
   16522             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16523             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16524             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16525             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16526             : };
   16527             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16528             : static_assert(0 < 1, "There is no slot for us");
   16529             : static const JSJitInfo flex_grow_setterinfo = {
   16530             :   { (JSJitGetterOp)set_flex_grow },
   16531             :   { prototypes::id::CSS2Properties },
   16532             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16533             :   JSJitInfo::Setter,
   16534             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16535             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16536             :   false,  /* isInfallible. False in setters. */
   16537             :   false,  /* isMovable.  Not relevant for setters. */
   16538             :   false, /* isEliminatable.  Not relevant for setters. */
   16539             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16540             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16541             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16542             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16543             : };
   16544             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16545             : static_assert(0 < 1, "There is no slot for us");
   16546             : 
   16547             : static bool
   16548           0 : get_flexShrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16549             : {
   16550           0 :   binding_detail::FastErrorResult rv;
   16551           0 :   DOMString result;
   16552           0 :   self->GetFlexShrink(result, rv);
   16553           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16554           0 :     return false;
   16555             :   }
   16556           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16557           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16558           0 :     return false;
   16559             :   }
   16560           0 :   return true;
   16561             : }
   16562             : 
   16563             : static bool
   16564           0 : set_flexShrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16565             : {
   16566           0 :   binding_detail::FakeString arg0;
   16567           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16568           0 :     return false;
   16569             :   }
   16570           0 :   binding_detail::FastErrorResult rv;
   16571           0 :   self->SetFlexShrink(NonNullHelper(Constify(arg0)), rv);
   16572           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16573           0 :     return false;
   16574             :   }
   16575           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16576             : 
   16577           0 :   return true;
   16578             : }
   16579             : 
   16580             : static const JSJitInfo flexShrink_getterinfo = {
   16581             :   { (JSJitGetterOp)get_flexShrink },
   16582             :   { prototypes::id::CSS2Properties },
   16583             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16584             :   JSJitInfo::Getter,
   16585             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16586             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16587             :   false,  /* isInfallible. False in setters. */
   16588             :   false,  /* isMovable.  Not relevant for setters. */
   16589             :   false, /* isEliminatable.  Not relevant for setters. */
   16590             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16591             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16592             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16593             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16594             : };
   16595             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16596             : static_assert(0 < 1, "There is no slot for us");
   16597             : static const JSJitInfo flexShrink_setterinfo = {
   16598             :   { (JSJitGetterOp)set_flexShrink },
   16599             :   { prototypes::id::CSS2Properties },
   16600             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16601             :   JSJitInfo::Setter,
   16602             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16603             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16604             :   false,  /* isInfallible. False in setters. */
   16605             :   false,  /* isMovable.  Not relevant for setters. */
   16606             :   false, /* isEliminatable.  Not relevant for setters. */
   16607             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16608             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16609             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16610             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16611             : };
   16612             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16613             : static_assert(0 < 1, "There is no slot for us");
   16614             : 
   16615             : static bool
   16616           0 : get_flex_shrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16617             : {
   16618           0 :   binding_detail::FastErrorResult rv;
   16619           0 :   DOMString result;
   16620           0 :   self->GetFlexShrink(result, rv);
   16621           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16622           0 :     return false;
   16623             :   }
   16624           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16625           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16626           0 :     return false;
   16627             :   }
   16628           0 :   return true;
   16629             : }
   16630             : 
   16631             : static bool
   16632           0 : set_flex_shrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16633             : {
   16634           0 :   binding_detail::FakeString arg0;
   16635           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16636           0 :     return false;
   16637             :   }
   16638           0 :   binding_detail::FastErrorResult rv;
   16639           0 :   self->SetFlexShrink(NonNullHelper(Constify(arg0)), rv);
   16640           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16641           0 :     return false;
   16642             :   }
   16643           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16644             : 
   16645           0 :   return true;
   16646             : }
   16647             : 
   16648             : static const JSJitInfo flex_shrink_getterinfo = {
   16649             :   { (JSJitGetterOp)get_flex_shrink },
   16650             :   { prototypes::id::CSS2Properties },
   16651             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16652             :   JSJitInfo::Getter,
   16653             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16654             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16655             :   false,  /* isInfallible. False in setters. */
   16656             :   false,  /* isMovable.  Not relevant for setters. */
   16657             :   false, /* isEliminatable.  Not relevant for setters. */
   16658             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16659             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16660             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16661             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16662             : };
   16663             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16664             : static_assert(0 < 1, "There is no slot for us");
   16665             : static const JSJitInfo flex_shrink_setterinfo = {
   16666             :   { (JSJitGetterOp)set_flex_shrink },
   16667             :   { prototypes::id::CSS2Properties },
   16668             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16669             :   JSJitInfo::Setter,
   16670             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16671             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16672             :   false,  /* isInfallible. False in setters. */
   16673             :   false,  /* isMovable.  Not relevant for setters. */
   16674             :   false, /* isEliminatable.  Not relevant for setters. */
   16675             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16676             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16677             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16678             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16679             : };
   16680             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16681             : static_assert(0 < 1, "There is no slot for us");
   16682             : 
   16683             : static bool
   16684           0 : get_flexWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16685             : {
   16686           0 :   binding_detail::FastErrorResult rv;
   16687           0 :   DOMString result;
   16688           0 :   self->GetFlexWrap(result, rv);
   16689           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16690           0 :     return false;
   16691             :   }
   16692           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16693           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16694           0 :     return false;
   16695             :   }
   16696           0 :   return true;
   16697             : }
   16698             : 
   16699             : static bool
   16700           0 : set_flexWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16701             : {
   16702           0 :   binding_detail::FakeString arg0;
   16703           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16704           0 :     return false;
   16705             :   }
   16706           0 :   binding_detail::FastErrorResult rv;
   16707           0 :   self->SetFlexWrap(NonNullHelper(Constify(arg0)), rv);
   16708           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16709           0 :     return false;
   16710             :   }
   16711           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16712             : 
   16713           0 :   return true;
   16714             : }
   16715             : 
   16716             : static const JSJitInfo flexWrap_getterinfo = {
   16717             :   { (JSJitGetterOp)get_flexWrap },
   16718             :   { prototypes::id::CSS2Properties },
   16719             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16720             :   JSJitInfo::Getter,
   16721             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16722             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16723             :   false,  /* isInfallible. False in setters. */
   16724             :   false,  /* isMovable.  Not relevant for setters. */
   16725             :   false, /* isEliminatable.  Not relevant for setters. */
   16726             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16727             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16728             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16729             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16730             : };
   16731             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16732             : static_assert(0 < 1, "There is no slot for us");
   16733             : static const JSJitInfo flexWrap_setterinfo = {
   16734             :   { (JSJitGetterOp)set_flexWrap },
   16735             :   { prototypes::id::CSS2Properties },
   16736             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16737             :   JSJitInfo::Setter,
   16738             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16739             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16740             :   false,  /* isInfallible. False in setters. */
   16741             :   false,  /* isMovable.  Not relevant for setters. */
   16742             :   false, /* isEliminatable.  Not relevant for setters. */
   16743             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16744             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16745             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16746             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16747             : };
   16748             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16749             : static_assert(0 < 1, "There is no slot for us");
   16750             : 
   16751             : static bool
   16752           0 : get_flex_wrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16753             : {
   16754           0 :   binding_detail::FastErrorResult rv;
   16755           0 :   DOMString result;
   16756           0 :   self->GetFlexWrap(result, rv);
   16757           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16758           0 :     return false;
   16759             :   }
   16760           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16761           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16762           0 :     return false;
   16763             :   }
   16764           0 :   return true;
   16765             : }
   16766             : 
   16767             : static bool
   16768           0 : set_flex_wrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16769             : {
   16770           0 :   binding_detail::FakeString arg0;
   16771           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16772           0 :     return false;
   16773             :   }
   16774           0 :   binding_detail::FastErrorResult rv;
   16775           0 :   self->SetFlexWrap(NonNullHelper(Constify(arg0)), rv);
   16776           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16777           0 :     return false;
   16778             :   }
   16779           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16780             : 
   16781           0 :   return true;
   16782             : }
   16783             : 
   16784             : static const JSJitInfo flex_wrap_getterinfo = {
   16785             :   { (JSJitGetterOp)get_flex_wrap },
   16786             :   { prototypes::id::CSS2Properties },
   16787             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16788             :   JSJitInfo::Getter,
   16789             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16790             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16791             :   false,  /* isInfallible. False in setters. */
   16792             :   false,  /* isMovable.  Not relevant for setters. */
   16793             :   false, /* isEliminatable.  Not relevant for setters. */
   16794             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16795             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16796             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16797             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16798             : };
   16799             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16800             : static_assert(0 < 1, "There is no slot for us");
   16801             : static const JSJitInfo flex_wrap_setterinfo = {
   16802             :   { (JSJitGetterOp)set_flex_wrap },
   16803             :   { prototypes::id::CSS2Properties },
   16804             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16805             :   JSJitInfo::Setter,
   16806             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16807             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16808             :   false,  /* isInfallible. False in setters. */
   16809             :   false,  /* isMovable.  Not relevant for setters. */
   16810             :   false, /* isEliminatable.  Not relevant for setters. */
   16811             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16812             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16813             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16814             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16815             : };
   16816             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16817             : static_assert(0 < 1, "There is no slot for us");
   16818             : 
   16819             : static bool
   16820           0 : get_cssFloat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16821             : {
   16822           0 :   binding_detail::FastErrorResult rv;
   16823           0 :   DOMString result;
   16824           0 :   self->GetCssFloat(result, rv);
   16825           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16826           0 :     return false;
   16827             :   }
   16828           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16829           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16830           0 :     return false;
   16831             :   }
   16832           0 :   return true;
   16833             : }
   16834             : 
   16835             : static bool
   16836           0 : set_cssFloat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16837             : {
   16838           0 :   binding_detail::FakeString arg0;
   16839           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16840           0 :     return false;
   16841             :   }
   16842           0 :   binding_detail::FastErrorResult rv;
   16843           0 :   self->SetCssFloat(NonNullHelper(Constify(arg0)), rv);
   16844           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16845           0 :     return false;
   16846             :   }
   16847           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16848             : 
   16849           0 :   return true;
   16850             : }
   16851             : 
   16852             : static const JSJitInfo cssFloat_getterinfo = {
   16853             :   { (JSJitGetterOp)get_cssFloat },
   16854             :   { prototypes::id::CSS2Properties },
   16855             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16856             :   JSJitInfo::Getter,
   16857             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16858             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16859             :   false,  /* isInfallible. False in setters. */
   16860             :   false,  /* isMovable.  Not relevant for setters. */
   16861             :   false, /* isEliminatable.  Not relevant for setters. */
   16862             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16863             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16864             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16865             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16866             : };
   16867             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16868             : static_assert(0 < 1, "There is no slot for us");
   16869             : static const JSJitInfo cssFloat_setterinfo = {
   16870             :   { (JSJitGetterOp)set_cssFloat },
   16871             :   { prototypes::id::CSS2Properties },
   16872             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16873             :   JSJitInfo::Setter,
   16874             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16875             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16876             :   false,  /* isInfallible. False in setters. */
   16877             :   false,  /* isMovable.  Not relevant for setters. */
   16878             :   false, /* isEliminatable.  Not relevant for setters. */
   16879             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16880             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16881             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16882             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16883             : };
   16884             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16885             : static_assert(0 < 1, "There is no slot for us");
   16886             : 
   16887             : static bool
   16888           0 : get_float(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16889             : {
   16890           0 :   binding_detail::FastErrorResult rv;
   16891           0 :   DOMString result;
   16892           0 :   self->GetCssFloat(result, rv);
   16893           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16894           0 :     return false;
   16895             :   }
   16896           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16897           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16898           0 :     return false;
   16899             :   }
   16900           0 :   return true;
   16901             : }
   16902             : 
   16903             : static bool
   16904           0 : set_float(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16905             : {
   16906           0 :   binding_detail::FakeString arg0;
   16907           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16908           0 :     return false;
   16909             :   }
   16910           0 :   binding_detail::FastErrorResult rv;
   16911           0 :   self->SetCssFloat(NonNullHelper(Constify(arg0)), rv);
   16912           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16913           0 :     return false;
   16914             :   }
   16915           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16916             : 
   16917           0 :   return true;
   16918             : }
   16919             : 
   16920             : static const JSJitInfo float_getterinfo = {
   16921             :   { (JSJitGetterOp)get_float },
   16922             :   { prototypes::id::CSS2Properties },
   16923             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16924             :   JSJitInfo::Getter,
   16925             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16926             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16927             :   false,  /* isInfallible. False in setters. */
   16928             :   false,  /* isMovable.  Not relevant for setters. */
   16929             :   false, /* isEliminatable.  Not relevant for setters. */
   16930             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16931             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16932             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16933             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16934             : };
   16935             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16936             : static_assert(0 < 1, "There is no slot for us");
   16937             : static const JSJitInfo float_setterinfo = {
   16938             :   { (JSJitGetterOp)set_float },
   16939             :   { prototypes::id::CSS2Properties },
   16940             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16941             :   JSJitInfo::Setter,
   16942             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16943             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   16944             :   false,  /* isInfallible. False in setters. */
   16945             :   false,  /* isMovable.  Not relevant for setters. */
   16946             :   false, /* isEliminatable.  Not relevant for setters. */
   16947             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16948             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   16949             :   false,  /* isTypedMethod.  Only relevant for methods. */
   16950             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   16951             : };
   16952             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   16953             : static_assert(0 < 1, "There is no slot for us");
   16954             : 
   16955             : static bool
   16956           0 : get_MozFloatEdge(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   16957             : {
   16958           0 :   binding_detail::FastErrorResult rv;
   16959           0 :   DOMString result;
   16960           0 :   self->GetMozFloatEdge(result, rv);
   16961           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16962           0 :     return false;
   16963             :   }
   16964           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16965           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   16966           0 :     return false;
   16967             :   }
   16968           0 :   return true;
   16969             : }
   16970             : 
   16971             : static bool
   16972           0 : set_MozFloatEdge(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   16973             : {
   16974           0 :   binding_detail::FakeString arg0;
   16975           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   16976           0 :     return false;
   16977             :   }
   16978           0 :   binding_detail::FastErrorResult rv;
   16979           0 :   self->SetMozFloatEdge(NonNullHelper(Constify(arg0)), rv);
   16980           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   16981           0 :     return false;
   16982             :   }
   16983           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   16984             : 
   16985           0 :   return true;
   16986             : }
   16987             : 
   16988             : static const JSJitInfo MozFloatEdge_getterinfo = {
   16989             :   { (JSJitGetterOp)get_MozFloatEdge },
   16990             :   { prototypes::id::CSS2Properties },
   16991             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   16992             :   JSJitInfo::Getter,
   16993             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   16994             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   16995             :   false,  /* isInfallible. False in setters. */
   16996             :   false,  /* isMovable.  Not relevant for setters. */
   16997             :   false, /* isEliminatable.  Not relevant for setters. */
   16998             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   16999             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17000             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17001             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17002             : };
   17003             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17004             : static_assert(0 < 1, "There is no slot for us");
   17005             : static const JSJitInfo MozFloatEdge_setterinfo = {
   17006             :   { (JSJitGetterOp)set_MozFloatEdge },
   17007             :   { prototypes::id::CSS2Properties },
   17008             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17009             :   JSJitInfo::Setter,
   17010             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17011             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17012             :   false,  /* isInfallible. False in setters. */
   17013             :   false,  /* isMovable.  Not relevant for setters. */
   17014             :   false, /* isEliminatable.  Not relevant for setters. */
   17015             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17016             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17017             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17018             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17019             : };
   17020             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17021             : static_assert(0 < 1, "There is no slot for us");
   17022             : 
   17023             : static bool
   17024           0 : get__moz_float_edge(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17025             : {
   17026           0 :   binding_detail::FastErrorResult rv;
   17027           0 :   DOMString result;
   17028           0 :   self->GetMozFloatEdge(result, rv);
   17029           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17030           0 :     return false;
   17031             :   }
   17032           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17033           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17034           0 :     return false;
   17035             :   }
   17036           0 :   return true;
   17037             : }
   17038             : 
   17039             : static bool
   17040           0 : set__moz_float_edge(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17041             : {
   17042           0 :   binding_detail::FakeString arg0;
   17043           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17044           0 :     return false;
   17045             :   }
   17046           0 :   binding_detail::FastErrorResult rv;
   17047           0 :   self->SetMozFloatEdge(NonNullHelper(Constify(arg0)), rv);
   17048           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17049           0 :     return false;
   17050             :   }
   17051           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17052             : 
   17053           0 :   return true;
   17054             : }
   17055             : 
   17056             : static const JSJitInfo _moz_float_edge_getterinfo = {
   17057             :   { (JSJitGetterOp)get__moz_float_edge },
   17058             :   { prototypes::id::CSS2Properties },
   17059             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17060             :   JSJitInfo::Getter,
   17061             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17062             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17063             :   false,  /* isInfallible. False in setters. */
   17064             :   false,  /* isMovable.  Not relevant for setters. */
   17065             :   false, /* isEliminatable.  Not relevant for setters. */
   17066             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17067             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17068             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17069             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17070             : };
   17071             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17072             : static_assert(0 < 1, "There is no slot for us");
   17073             : static const JSJitInfo _moz_float_edge_setterinfo = {
   17074             :   { (JSJitGetterOp)set__moz_float_edge },
   17075             :   { prototypes::id::CSS2Properties },
   17076             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17077             :   JSJitInfo::Setter,
   17078             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17079             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17080             :   false,  /* isInfallible. False in setters. */
   17081             :   false,  /* isMovable.  Not relevant for setters. */
   17082             :   false, /* isEliminatable.  Not relevant for setters. */
   17083             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17084             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17085             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17086             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17087             : };
   17088             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17089             : static_assert(0 < 1, "There is no slot for us");
   17090             : 
   17091             : static bool
   17092           0 : get_floodColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17093             : {
   17094           0 :   binding_detail::FastErrorResult rv;
   17095           0 :   DOMString result;
   17096           0 :   self->GetFloodColor(result, rv);
   17097           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17098           0 :     return false;
   17099             :   }
   17100           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17101           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17102           0 :     return false;
   17103             :   }
   17104           0 :   return true;
   17105             : }
   17106             : 
   17107             : static bool
   17108           0 : set_floodColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17109             : {
   17110           0 :   binding_detail::FakeString arg0;
   17111           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17112           0 :     return false;
   17113             :   }
   17114           0 :   binding_detail::FastErrorResult rv;
   17115           0 :   self->SetFloodColor(NonNullHelper(Constify(arg0)), rv);
   17116           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17117           0 :     return false;
   17118             :   }
   17119           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17120             : 
   17121           0 :   return true;
   17122             : }
   17123             : 
   17124             : static const JSJitInfo floodColor_getterinfo = {
   17125             :   { (JSJitGetterOp)get_floodColor },
   17126             :   { prototypes::id::CSS2Properties },
   17127             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17128             :   JSJitInfo::Getter,
   17129             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17130             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17131             :   false,  /* isInfallible. False in setters. */
   17132             :   false,  /* isMovable.  Not relevant for setters. */
   17133             :   false, /* isEliminatable.  Not relevant for setters. */
   17134             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17135             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17136             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17137             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17138             : };
   17139             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17140             : static_assert(0 < 1, "There is no slot for us");
   17141             : static const JSJitInfo floodColor_setterinfo = {
   17142             :   { (JSJitGetterOp)set_floodColor },
   17143             :   { prototypes::id::CSS2Properties },
   17144             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17145             :   JSJitInfo::Setter,
   17146             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17147             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17148             :   false,  /* isInfallible. False in setters. */
   17149             :   false,  /* isMovable.  Not relevant for setters. */
   17150             :   false, /* isEliminatable.  Not relevant for setters. */
   17151             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17152             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17153             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17154             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17155             : };
   17156             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17157             : static_assert(0 < 1, "There is no slot for us");
   17158             : 
   17159             : static bool
   17160           0 : get_flood_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17161             : {
   17162           0 :   binding_detail::FastErrorResult rv;
   17163           0 :   DOMString result;
   17164           0 :   self->GetFloodColor(result, rv);
   17165           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17166           0 :     return false;
   17167             :   }
   17168           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17169           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17170           0 :     return false;
   17171             :   }
   17172           0 :   return true;
   17173             : }
   17174             : 
   17175             : static bool
   17176           0 : set_flood_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17177             : {
   17178           0 :   binding_detail::FakeString arg0;
   17179           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17180           0 :     return false;
   17181             :   }
   17182           0 :   binding_detail::FastErrorResult rv;
   17183           0 :   self->SetFloodColor(NonNullHelper(Constify(arg0)), rv);
   17184           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17185           0 :     return false;
   17186             :   }
   17187           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17188             : 
   17189           0 :   return true;
   17190             : }
   17191             : 
   17192             : static const JSJitInfo flood_color_getterinfo = {
   17193             :   { (JSJitGetterOp)get_flood_color },
   17194             :   { prototypes::id::CSS2Properties },
   17195             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17196             :   JSJitInfo::Getter,
   17197             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17198             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17199             :   false,  /* isInfallible. False in setters. */
   17200             :   false,  /* isMovable.  Not relevant for setters. */
   17201             :   false, /* isEliminatable.  Not relevant for setters. */
   17202             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17203             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17204             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17205             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17206             : };
   17207             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17208             : static_assert(0 < 1, "There is no slot for us");
   17209             : static const JSJitInfo flood_color_setterinfo = {
   17210             :   { (JSJitGetterOp)set_flood_color },
   17211             :   { prototypes::id::CSS2Properties },
   17212             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17213             :   JSJitInfo::Setter,
   17214             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17215             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17216             :   false,  /* isInfallible. False in setters. */
   17217             :   false,  /* isMovable.  Not relevant for setters. */
   17218             :   false, /* isEliminatable.  Not relevant for setters. */
   17219             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17220             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17221             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17222             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17223             : };
   17224             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17225             : static_assert(0 < 1, "There is no slot for us");
   17226             : 
   17227             : static bool
   17228           0 : get_floodOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17229             : {
   17230           0 :   binding_detail::FastErrorResult rv;
   17231           0 :   DOMString result;
   17232           0 :   self->GetFloodOpacity(result, rv);
   17233           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17234           0 :     return false;
   17235             :   }
   17236           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17237           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17238           0 :     return false;
   17239             :   }
   17240           0 :   return true;
   17241             : }
   17242             : 
   17243             : static bool
   17244           0 : set_floodOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17245             : {
   17246           0 :   binding_detail::FakeString arg0;
   17247           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17248           0 :     return false;
   17249             :   }
   17250           0 :   binding_detail::FastErrorResult rv;
   17251           0 :   self->SetFloodOpacity(NonNullHelper(Constify(arg0)), rv);
   17252           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17253           0 :     return false;
   17254             :   }
   17255           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17256             : 
   17257           0 :   return true;
   17258             : }
   17259             : 
   17260             : static const JSJitInfo floodOpacity_getterinfo = {
   17261             :   { (JSJitGetterOp)get_floodOpacity },
   17262             :   { prototypes::id::CSS2Properties },
   17263             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17264             :   JSJitInfo::Getter,
   17265             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17266             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17267             :   false,  /* isInfallible. False in setters. */
   17268             :   false,  /* isMovable.  Not relevant for setters. */
   17269             :   false, /* isEliminatable.  Not relevant for setters. */
   17270             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17271             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17272             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17273             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17274             : };
   17275             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17276             : static_assert(0 < 1, "There is no slot for us");
   17277             : static const JSJitInfo floodOpacity_setterinfo = {
   17278             :   { (JSJitGetterOp)set_floodOpacity },
   17279             :   { prototypes::id::CSS2Properties },
   17280             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17281             :   JSJitInfo::Setter,
   17282             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17283             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17284             :   false,  /* isInfallible. False in setters. */
   17285             :   false,  /* isMovable.  Not relevant for setters. */
   17286             :   false, /* isEliminatable.  Not relevant for setters. */
   17287             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17288             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17289             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17290             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17291             : };
   17292             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17293             : static_assert(0 < 1, "There is no slot for us");
   17294             : 
   17295             : static bool
   17296           0 : get_flood_opacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17297             : {
   17298           0 :   binding_detail::FastErrorResult rv;
   17299           0 :   DOMString result;
   17300           0 :   self->GetFloodOpacity(result, rv);
   17301           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17302           0 :     return false;
   17303             :   }
   17304           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17305           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17306           0 :     return false;
   17307             :   }
   17308           0 :   return true;
   17309             : }
   17310             : 
   17311             : static bool
   17312           0 : set_flood_opacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17313             : {
   17314           0 :   binding_detail::FakeString arg0;
   17315           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17316           0 :     return false;
   17317             :   }
   17318           0 :   binding_detail::FastErrorResult rv;
   17319           0 :   self->SetFloodOpacity(NonNullHelper(Constify(arg0)), rv);
   17320           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17321           0 :     return false;
   17322             :   }
   17323           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17324             : 
   17325           0 :   return true;
   17326             : }
   17327             : 
   17328             : static const JSJitInfo flood_opacity_getterinfo = {
   17329             :   { (JSJitGetterOp)get_flood_opacity },
   17330             :   { prototypes::id::CSS2Properties },
   17331             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17332             :   JSJitInfo::Getter,
   17333             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17334             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17335             :   false,  /* isInfallible. False in setters. */
   17336             :   false,  /* isMovable.  Not relevant for setters. */
   17337             :   false, /* isEliminatable.  Not relevant for setters. */
   17338             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17339             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17340             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17341             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17342             : };
   17343             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17344             : static_assert(0 < 1, "There is no slot for us");
   17345             : static const JSJitInfo flood_opacity_setterinfo = {
   17346             :   { (JSJitGetterOp)set_flood_opacity },
   17347             :   { prototypes::id::CSS2Properties },
   17348             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17349             :   JSJitInfo::Setter,
   17350             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17351             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17352             :   false,  /* isInfallible. False in setters. */
   17353             :   false,  /* isMovable.  Not relevant for setters. */
   17354             :   false, /* isEliminatable.  Not relevant for setters. */
   17355             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17356             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17357             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17358             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17359             : };
   17360             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17361             : static_assert(0 < 1, "There is no slot for us");
   17362             : 
   17363             : static bool
   17364           0 : get_font(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17365             : {
   17366           0 :   binding_detail::FastErrorResult rv;
   17367           0 :   DOMString result;
   17368           0 :   self->GetFont(result, rv);
   17369           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17370           0 :     return false;
   17371             :   }
   17372           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17373           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17374           0 :     return false;
   17375             :   }
   17376           0 :   return true;
   17377             : }
   17378             : 
   17379             : static bool
   17380           0 : set_font(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17381             : {
   17382           0 :   binding_detail::FakeString arg0;
   17383           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17384           0 :     return false;
   17385             :   }
   17386           0 :   binding_detail::FastErrorResult rv;
   17387           0 :   self->SetFont(NonNullHelper(Constify(arg0)), rv);
   17388           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17389           0 :     return false;
   17390             :   }
   17391           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17392             : 
   17393           0 :   return true;
   17394             : }
   17395             : 
   17396             : static const JSJitInfo font_getterinfo = {
   17397             :   { (JSJitGetterOp)get_font },
   17398             :   { prototypes::id::CSS2Properties },
   17399             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17400             :   JSJitInfo::Getter,
   17401             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17402             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17403             :   false,  /* isInfallible. False in setters. */
   17404             :   false,  /* isMovable.  Not relevant for setters. */
   17405             :   false, /* isEliminatable.  Not relevant for setters. */
   17406             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17407             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17408             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17409             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17410             : };
   17411             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17412             : static_assert(0 < 1, "There is no slot for us");
   17413             : static const JSJitInfo font_setterinfo = {
   17414             :   { (JSJitGetterOp)set_font },
   17415             :   { prototypes::id::CSS2Properties },
   17416             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17417             :   JSJitInfo::Setter,
   17418             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17419             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17420             :   false,  /* isInfallible. False in setters. */
   17421             :   false,  /* isMovable.  Not relevant for setters. */
   17422             :   false, /* isEliminatable.  Not relevant for setters. */
   17423             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17424             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17425             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17426             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17427             : };
   17428             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17429             : static_assert(0 < 1, "There is no slot for us");
   17430             : 
   17431             : static bool
   17432           0 : get_fontFamily(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17433             : {
   17434           0 :   binding_detail::FastErrorResult rv;
   17435           0 :   DOMString result;
   17436           0 :   self->GetFontFamily(result, rv);
   17437           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17438           0 :     return false;
   17439             :   }
   17440           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17441           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17442           0 :     return false;
   17443             :   }
   17444           0 :   return true;
   17445             : }
   17446             : 
   17447             : static bool
   17448           0 : set_fontFamily(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17449             : {
   17450           0 :   binding_detail::FakeString arg0;
   17451           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17452           0 :     return false;
   17453             :   }
   17454           0 :   binding_detail::FastErrorResult rv;
   17455           0 :   self->SetFontFamily(NonNullHelper(Constify(arg0)), rv);
   17456           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17457           0 :     return false;
   17458             :   }
   17459           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17460             : 
   17461           0 :   return true;
   17462             : }
   17463             : 
   17464             : static const JSJitInfo fontFamily_getterinfo = {
   17465             :   { (JSJitGetterOp)get_fontFamily },
   17466             :   { prototypes::id::CSS2Properties },
   17467             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17468             :   JSJitInfo::Getter,
   17469             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17470             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17471             :   false,  /* isInfallible. False in setters. */
   17472             :   false,  /* isMovable.  Not relevant for setters. */
   17473             :   false, /* isEliminatable.  Not relevant for setters. */
   17474             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17475             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17476             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17477             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17478             : };
   17479             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17480             : static_assert(0 < 1, "There is no slot for us");
   17481             : static const JSJitInfo fontFamily_setterinfo = {
   17482             :   { (JSJitGetterOp)set_fontFamily },
   17483             :   { prototypes::id::CSS2Properties },
   17484             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17485             :   JSJitInfo::Setter,
   17486             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17487             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17488             :   false,  /* isInfallible. False in setters. */
   17489             :   false,  /* isMovable.  Not relevant for setters. */
   17490             :   false, /* isEliminatable.  Not relevant for setters. */
   17491             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17492             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17493             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17494             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17495             : };
   17496             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17497             : static_assert(0 < 1, "There is no slot for us");
   17498             : 
   17499             : static bool
   17500           0 : get_font_family(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17501             : {
   17502           0 :   binding_detail::FastErrorResult rv;
   17503           0 :   DOMString result;
   17504           0 :   self->GetFontFamily(result, rv);
   17505           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17506           0 :     return false;
   17507             :   }
   17508           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17509           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17510           0 :     return false;
   17511             :   }
   17512           0 :   return true;
   17513             : }
   17514             : 
   17515             : static bool
   17516           0 : set_font_family(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17517             : {
   17518           0 :   binding_detail::FakeString arg0;
   17519           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17520           0 :     return false;
   17521             :   }
   17522           0 :   binding_detail::FastErrorResult rv;
   17523           0 :   self->SetFontFamily(NonNullHelper(Constify(arg0)), rv);
   17524           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17525           0 :     return false;
   17526             :   }
   17527           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17528             : 
   17529           0 :   return true;
   17530             : }
   17531             : 
   17532             : static const JSJitInfo font_family_getterinfo = {
   17533             :   { (JSJitGetterOp)get_font_family },
   17534             :   { prototypes::id::CSS2Properties },
   17535             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17536             :   JSJitInfo::Getter,
   17537             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17538             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17539             :   false,  /* isInfallible. False in setters. */
   17540             :   false,  /* isMovable.  Not relevant for setters. */
   17541             :   false, /* isEliminatable.  Not relevant for setters. */
   17542             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17543             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17544             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17545             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17546             : };
   17547             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17548             : static_assert(0 < 1, "There is no slot for us");
   17549             : static const JSJitInfo font_family_setterinfo = {
   17550             :   { (JSJitGetterOp)set_font_family },
   17551             :   { prototypes::id::CSS2Properties },
   17552             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17553             :   JSJitInfo::Setter,
   17554             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17555             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17556             :   false,  /* isInfallible. False in setters. */
   17557             :   false,  /* isMovable.  Not relevant for setters. */
   17558             :   false, /* isEliminatable.  Not relevant for setters. */
   17559             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17560             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17561             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17562             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17563             : };
   17564             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17565             : static_assert(0 < 1, "There is no slot for us");
   17566             : 
   17567             : static bool
   17568           0 : get_fontFeatureSettings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17569             : {
   17570           0 :   binding_detail::FastErrorResult rv;
   17571           0 :   DOMString result;
   17572           0 :   self->GetFontFeatureSettings(result, rv);
   17573           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17574           0 :     return false;
   17575             :   }
   17576           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17577           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17578           0 :     return false;
   17579             :   }
   17580           0 :   return true;
   17581             : }
   17582             : 
   17583             : static bool
   17584           0 : set_fontFeatureSettings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17585             : {
   17586           0 :   binding_detail::FakeString arg0;
   17587           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17588           0 :     return false;
   17589             :   }
   17590           0 :   binding_detail::FastErrorResult rv;
   17591           0 :   self->SetFontFeatureSettings(NonNullHelper(Constify(arg0)), rv);
   17592           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17593           0 :     return false;
   17594             :   }
   17595           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17596             : 
   17597           0 :   return true;
   17598             : }
   17599             : 
   17600             : static const JSJitInfo fontFeatureSettings_getterinfo = {
   17601             :   { (JSJitGetterOp)get_fontFeatureSettings },
   17602             :   { prototypes::id::CSS2Properties },
   17603             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17604             :   JSJitInfo::Getter,
   17605             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17606             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17607             :   false,  /* isInfallible. False in setters. */
   17608             :   false,  /* isMovable.  Not relevant for setters. */
   17609             :   false, /* isEliminatable.  Not relevant for setters. */
   17610             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17611             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17612             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17613             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17614             : };
   17615             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17616             : static_assert(0 < 1, "There is no slot for us");
   17617             : static const JSJitInfo fontFeatureSettings_setterinfo = {
   17618             :   { (JSJitGetterOp)set_fontFeatureSettings },
   17619             :   { prototypes::id::CSS2Properties },
   17620             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17621             :   JSJitInfo::Setter,
   17622             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17623             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17624             :   false,  /* isInfallible. False in setters. */
   17625             :   false,  /* isMovable.  Not relevant for setters. */
   17626             :   false, /* isEliminatable.  Not relevant for setters. */
   17627             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17628             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17629             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17630             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17631             : };
   17632             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17633             : static_assert(0 < 1, "There is no slot for us");
   17634             : 
   17635             : static bool
   17636           0 : get_font_feature_settings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17637             : {
   17638           0 :   binding_detail::FastErrorResult rv;
   17639           0 :   DOMString result;
   17640           0 :   self->GetFontFeatureSettings(result, rv);
   17641           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17642           0 :     return false;
   17643             :   }
   17644           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17645           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17646           0 :     return false;
   17647             :   }
   17648           0 :   return true;
   17649             : }
   17650             : 
   17651             : static bool
   17652           0 : set_font_feature_settings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17653             : {
   17654           0 :   binding_detail::FakeString arg0;
   17655           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17656           0 :     return false;
   17657             :   }
   17658           0 :   binding_detail::FastErrorResult rv;
   17659           0 :   self->SetFontFeatureSettings(NonNullHelper(Constify(arg0)), rv);
   17660           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17661           0 :     return false;
   17662             :   }
   17663           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17664             : 
   17665           0 :   return true;
   17666             : }
   17667             : 
   17668             : static const JSJitInfo font_feature_settings_getterinfo = {
   17669             :   { (JSJitGetterOp)get_font_feature_settings },
   17670             :   { prototypes::id::CSS2Properties },
   17671             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17672             :   JSJitInfo::Getter,
   17673             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17674             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17675             :   false,  /* isInfallible. False in setters. */
   17676             :   false,  /* isMovable.  Not relevant for setters. */
   17677             :   false, /* isEliminatable.  Not relevant for setters. */
   17678             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17679             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17680             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17681             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17682             : };
   17683             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17684             : static_assert(0 < 1, "There is no slot for us");
   17685             : static const JSJitInfo font_feature_settings_setterinfo = {
   17686             :   { (JSJitGetterOp)set_font_feature_settings },
   17687             :   { prototypes::id::CSS2Properties },
   17688             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17689             :   JSJitInfo::Setter,
   17690             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17691             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17692             :   false,  /* isInfallible. False in setters. */
   17693             :   false,  /* isMovable.  Not relevant for setters. */
   17694             :   false, /* isEliminatable.  Not relevant for setters. */
   17695             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17696             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17697             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17698             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17699             : };
   17700             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17701             : static_assert(0 < 1, "There is no slot for us");
   17702             : 
   17703             : static bool
   17704           0 : get_fontKerning(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17705             : {
   17706           0 :   binding_detail::FastErrorResult rv;
   17707           0 :   DOMString result;
   17708           0 :   self->GetFontKerning(result, rv);
   17709           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17710           0 :     return false;
   17711             :   }
   17712           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17713           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17714           0 :     return false;
   17715             :   }
   17716           0 :   return true;
   17717             : }
   17718             : 
   17719             : static bool
   17720           0 : set_fontKerning(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17721             : {
   17722           0 :   binding_detail::FakeString arg0;
   17723           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17724           0 :     return false;
   17725             :   }
   17726           0 :   binding_detail::FastErrorResult rv;
   17727           0 :   self->SetFontKerning(NonNullHelper(Constify(arg0)), rv);
   17728           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17729           0 :     return false;
   17730             :   }
   17731           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17732             : 
   17733           0 :   return true;
   17734             : }
   17735             : 
   17736             : static const JSJitInfo fontKerning_getterinfo = {
   17737             :   { (JSJitGetterOp)get_fontKerning },
   17738             :   { prototypes::id::CSS2Properties },
   17739             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17740             :   JSJitInfo::Getter,
   17741             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17742             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17743             :   false,  /* isInfallible. False in setters. */
   17744             :   false,  /* isMovable.  Not relevant for setters. */
   17745             :   false, /* isEliminatable.  Not relevant for setters. */
   17746             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17747             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17748             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17749             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17750             : };
   17751             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17752             : static_assert(0 < 1, "There is no slot for us");
   17753             : static const JSJitInfo fontKerning_setterinfo = {
   17754             :   { (JSJitGetterOp)set_fontKerning },
   17755             :   { prototypes::id::CSS2Properties },
   17756             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17757             :   JSJitInfo::Setter,
   17758             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17759             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17760             :   false,  /* isInfallible. False in setters. */
   17761             :   false,  /* isMovable.  Not relevant for setters. */
   17762             :   false, /* isEliminatable.  Not relevant for setters. */
   17763             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17764             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17765             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17766             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17767             : };
   17768             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17769             : static_assert(0 < 1, "There is no slot for us");
   17770             : 
   17771             : static bool
   17772           0 : get_font_kerning(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17773             : {
   17774           0 :   binding_detail::FastErrorResult rv;
   17775           0 :   DOMString result;
   17776           0 :   self->GetFontKerning(result, rv);
   17777           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17778           0 :     return false;
   17779             :   }
   17780           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17781           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17782           0 :     return false;
   17783             :   }
   17784           0 :   return true;
   17785             : }
   17786             : 
   17787             : static bool
   17788           0 : set_font_kerning(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17789             : {
   17790           0 :   binding_detail::FakeString arg0;
   17791           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17792           0 :     return false;
   17793             :   }
   17794           0 :   binding_detail::FastErrorResult rv;
   17795           0 :   self->SetFontKerning(NonNullHelper(Constify(arg0)), rv);
   17796           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17797           0 :     return false;
   17798             :   }
   17799           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17800             : 
   17801           0 :   return true;
   17802             : }
   17803             : 
   17804             : static const JSJitInfo font_kerning_getterinfo = {
   17805             :   { (JSJitGetterOp)get_font_kerning },
   17806             :   { prototypes::id::CSS2Properties },
   17807             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17808             :   JSJitInfo::Getter,
   17809             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17810             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17811             :   false,  /* isInfallible. False in setters. */
   17812             :   false,  /* isMovable.  Not relevant for setters. */
   17813             :   false, /* isEliminatable.  Not relevant for setters. */
   17814             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17815             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17816             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17817             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17818             : };
   17819             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17820             : static_assert(0 < 1, "There is no slot for us");
   17821             : static const JSJitInfo font_kerning_setterinfo = {
   17822             :   { (JSJitGetterOp)set_font_kerning },
   17823             :   { prototypes::id::CSS2Properties },
   17824             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17825             :   JSJitInfo::Setter,
   17826             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17827             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17828             :   false,  /* isInfallible. False in setters. */
   17829             :   false,  /* isMovable.  Not relevant for setters. */
   17830             :   false, /* isEliminatable.  Not relevant for setters. */
   17831             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17832             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17833             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17834             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17835             : };
   17836             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17837             : static_assert(0 < 1, "There is no slot for us");
   17838             : 
   17839             : static bool
   17840           0 : get_fontLanguageOverride(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17841             : {
   17842           0 :   binding_detail::FastErrorResult rv;
   17843           0 :   DOMString result;
   17844           0 :   self->GetFontLanguageOverride(result, rv);
   17845           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17846           0 :     return false;
   17847             :   }
   17848           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17849           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17850           0 :     return false;
   17851             :   }
   17852           0 :   return true;
   17853             : }
   17854             : 
   17855             : static bool
   17856           0 : set_fontLanguageOverride(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17857             : {
   17858           0 :   binding_detail::FakeString arg0;
   17859           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17860           0 :     return false;
   17861             :   }
   17862           0 :   binding_detail::FastErrorResult rv;
   17863           0 :   self->SetFontLanguageOverride(NonNullHelper(Constify(arg0)), rv);
   17864           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17865           0 :     return false;
   17866             :   }
   17867           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17868             : 
   17869           0 :   return true;
   17870             : }
   17871             : 
   17872             : static const JSJitInfo fontLanguageOverride_getterinfo = {
   17873             :   { (JSJitGetterOp)get_fontLanguageOverride },
   17874             :   { prototypes::id::CSS2Properties },
   17875             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17876             :   JSJitInfo::Getter,
   17877             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17878             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17879             :   false,  /* isInfallible. False in setters. */
   17880             :   false,  /* isMovable.  Not relevant for setters. */
   17881             :   false, /* isEliminatable.  Not relevant for setters. */
   17882             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17883             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17884             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17885             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17886             : };
   17887             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17888             : static_assert(0 < 1, "There is no slot for us");
   17889             : static const JSJitInfo fontLanguageOverride_setterinfo = {
   17890             :   { (JSJitGetterOp)set_fontLanguageOverride },
   17891             :   { prototypes::id::CSS2Properties },
   17892             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17893             :   JSJitInfo::Setter,
   17894             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17895             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17896             :   false,  /* isInfallible. False in setters. */
   17897             :   false,  /* isMovable.  Not relevant for setters. */
   17898             :   false, /* isEliminatable.  Not relevant for setters. */
   17899             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17900             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17901             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17902             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17903             : };
   17904             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17905             : static_assert(0 < 1, "There is no slot for us");
   17906             : 
   17907             : static bool
   17908           0 : get_font_language_override(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17909             : {
   17910           0 :   binding_detail::FastErrorResult rv;
   17911           0 :   DOMString result;
   17912           0 :   self->GetFontLanguageOverride(result, rv);
   17913           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17914           0 :     return false;
   17915             :   }
   17916           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17917           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17918           0 :     return false;
   17919             :   }
   17920           0 :   return true;
   17921             : }
   17922             : 
   17923             : static bool
   17924           0 : set_font_language_override(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17925             : {
   17926           0 :   binding_detail::FakeString arg0;
   17927           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17928           0 :     return false;
   17929             :   }
   17930           0 :   binding_detail::FastErrorResult rv;
   17931           0 :   self->SetFontLanguageOverride(NonNullHelper(Constify(arg0)), rv);
   17932           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17933           0 :     return false;
   17934             :   }
   17935           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17936             : 
   17937           0 :   return true;
   17938             : }
   17939             : 
   17940             : static const JSJitInfo font_language_override_getterinfo = {
   17941             :   { (JSJitGetterOp)get_font_language_override },
   17942             :   { prototypes::id::CSS2Properties },
   17943             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17944             :   JSJitInfo::Getter,
   17945             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17946             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   17947             :   false,  /* isInfallible. False in setters. */
   17948             :   false,  /* isMovable.  Not relevant for setters. */
   17949             :   false, /* isEliminatable.  Not relevant for setters. */
   17950             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17951             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17952             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17953             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17954             : };
   17955             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17956             : static_assert(0 < 1, "There is no slot for us");
   17957             : static const JSJitInfo font_language_override_setterinfo = {
   17958             :   { (JSJitGetterOp)set_font_language_override },
   17959             :   { prototypes::id::CSS2Properties },
   17960             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   17961             :   JSJitInfo::Setter,
   17962             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   17963             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   17964             :   false,  /* isInfallible. False in setters. */
   17965             :   false,  /* isMovable.  Not relevant for setters. */
   17966             :   false, /* isEliminatable.  Not relevant for setters. */
   17967             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   17968             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   17969             :   false,  /* isTypedMethod.  Only relevant for methods. */
   17970             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   17971             : };
   17972             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   17973             : static_assert(0 < 1, "There is no slot for us");
   17974             : 
   17975             : static bool
   17976           0 : get_fontSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   17977             : {
   17978           0 :   binding_detail::FastErrorResult rv;
   17979           0 :   DOMString result;
   17980           0 :   self->GetFontSize(result, rv);
   17981           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   17982           0 :     return false;
   17983             :   }
   17984           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   17985           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   17986           0 :     return false;
   17987             :   }
   17988           0 :   return true;
   17989             : }
   17990             : 
   17991             : static bool
   17992           0 : set_fontSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   17993             : {
   17994           0 :   binding_detail::FakeString arg0;
   17995           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   17996           0 :     return false;
   17997             :   }
   17998           0 :   binding_detail::FastErrorResult rv;
   17999           0 :   self->SetFontSize(NonNullHelper(Constify(arg0)), rv);
   18000           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18001           0 :     return false;
   18002             :   }
   18003           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18004             : 
   18005           0 :   return true;
   18006             : }
   18007             : 
   18008             : static const JSJitInfo fontSize_getterinfo = {
   18009             :   { (JSJitGetterOp)get_fontSize },
   18010             :   { prototypes::id::CSS2Properties },
   18011             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18012             :   JSJitInfo::Getter,
   18013             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18014             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18015             :   false,  /* isInfallible. False in setters. */
   18016             :   false,  /* isMovable.  Not relevant for setters. */
   18017             :   false, /* isEliminatable.  Not relevant for setters. */
   18018             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18019             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18020             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18021             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18022             : };
   18023             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18024             : static_assert(0 < 1, "There is no slot for us");
   18025             : static const JSJitInfo fontSize_setterinfo = {
   18026             :   { (JSJitGetterOp)set_fontSize },
   18027             :   { prototypes::id::CSS2Properties },
   18028             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18029             :   JSJitInfo::Setter,
   18030             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18031             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18032             :   false,  /* isInfallible. False in setters. */
   18033             :   false,  /* isMovable.  Not relevant for setters. */
   18034             :   false, /* isEliminatable.  Not relevant for setters. */
   18035             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18036             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18037             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18038             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18039             : };
   18040             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18041             : static_assert(0 < 1, "There is no slot for us");
   18042             : 
   18043             : static bool
   18044           0 : get_font_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18045             : {
   18046           0 :   binding_detail::FastErrorResult rv;
   18047           0 :   DOMString result;
   18048           0 :   self->GetFontSize(result, rv);
   18049           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18050           0 :     return false;
   18051             :   }
   18052           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18053           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18054           0 :     return false;
   18055             :   }
   18056           0 :   return true;
   18057             : }
   18058             : 
   18059             : static bool
   18060           0 : set_font_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18061             : {
   18062           0 :   binding_detail::FakeString arg0;
   18063           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18064           0 :     return false;
   18065             :   }
   18066           0 :   binding_detail::FastErrorResult rv;
   18067           0 :   self->SetFontSize(NonNullHelper(Constify(arg0)), rv);
   18068           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18069           0 :     return false;
   18070             :   }
   18071           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18072             : 
   18073           0 :   return true;
   18074             : }
   18075             : 
   18076             : static const JSJitInfo font_size_getterinfo = {
   18077             :   { (JSJitGetterOp)get_font_size },
   18078             :   { prototypes::id::CSS2Properties },
   18079             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18080             :   JSJitInfo::Getter,
   18081             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18082             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18083             :   false,  /* isInfallible. False in setters. */
   18084             :   false,  /* isMovable.  Not relevant for setters. */
   18085             :   false, /* isEliminatable.  Not relevant for setters. */
   18086             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18087             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18088             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18089             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18090             : };
   18091             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18092             : static_assert(0 < 1, "There is no slot for us");
   18093             : static const JSJitInfo font_size_setterinfo = {
   18094             :   { (JSJitGetterOp)set_font_size },
   18095             :   { prototypes::id::CSS2Properties },
   18096             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18097             :   JSJitInfo::Setter,
   18098             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18099             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18100             :   false,  /* isInfallible. False in setters. */
   18101             :   false,  /* isMovable.  Not relevant for setters. */
   18102             :   false, /* isEliminatable.  Not relevant for setters. */
   18103             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18104             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18105             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18106             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18107             : };
   18108             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18109             : static_assert(0 < 1, "There is no slot for us");
   18110             : 
   18111             : static bool
   18112           0 : get_fontSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18113             : {
   18114           0 :   binding_detail::FastErrorResult rv;
   18115           0 :   DOMString result;
   18116           0 :   self->GetFontSizeAdjust(result, rv);
   18117           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18118           0 :     return false;
   18119             :   }
   18120           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18121           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18122           0 :     return false;
   18123             :   }
   18124           0 :   return true;
   18125             : }
   18126             : 
   18127             : static bool
   18128           0 : set_fontSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18129             : {
   18130           0 :   binding_detail::FakeString arg0;
   18131           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18132           0 :     return false;
   18133             :   }
   18134           0 :   binding_detail::FastErrorResult rv;
   18135           0 :   self->SetFontSizeAdjust(NonNullHelper(Constify(arg0)), rv);
   18136           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18137           0 :     return false;
   18138             :   }
   18139           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18140             : 
   18141           0 :   return true;
   18142             : }
   18143             : 
   18144             : static const JSJitInfo fontSizeAdjust_getterinfo = {
   18145             :   { (JSJitGetterOp)get_fontSizeAdjust },
   18146             :   { prototypes::id::CSS2Properties },
   18147             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18148             :   JSJitInfo::Getter,
   18149             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18150             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18151             :   false,  /* isInfallible. False in setters. */
   18152             :   false,  /* isMovable.  Not relevant for setters. */
   18153             :   false, /* isEliminatable.  Not relevant for setters. */
   18154             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18155             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18156             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18157             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18158             : };
   18159             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18160             : static_assert(0 < 1, "There is no slot for us");
   18161             : static const JSJitInfo fontSizeAdjust_setterinfo = {
   18162             :   { (JSJitGetterOp)set_fontSizeAdjust },
   18163             :   { prototypes::id::CSS2Properties },
   18164             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18165             :   JSJitInfo::Setter,
   18166             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18167             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18168             :   false,  /* isInfallible. False in setters. */
   18169             :   false,  /* isMovable.  Not relevant for setters. */
   18170             :   false, /* isEliminatable.  Not relevant for setters. */
   18171             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18172             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18173             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18174             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18175             : };
   18176             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18177             : static_assert(0 < 1, "There is no slot for us");
   18178             : 
   18179             : static bool
   18180           0 : get_font_size_adjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18181             : {
   18182           0 :   binding_detail::FastErrorResult rv;
   18183           0 :   DOMString result;
   18184           0 :   self->GetFontSizeAdjust(result, rv);
   18185           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18186           0 :     return false;
   18187             :   }
   18188           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18189           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18190           0 :     return false;
   18191             :   }
   18192           0 :   return true;
   18193             : }
   18194             : 
   18195             : static bool
   18196           0 : set_font_size_adjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18197             : {
   18198           0 :   binding_detail::FakeString arg0;
   18199           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18200           0 :     return false;
   18201             :   }
   18202           0 :   binding_detail::FastErrorResult rv;
   18203           0 :   self->SetFontSizeAdjust(NonNullHelper(Constify(arg0)), rv);
   18204           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18205           0 :     return false;
   18206             :   }
   18207           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18208             : 
   18209           0 :   return true;
   18210             : }
   18211             : 
   18212             : static const JSJitInfo font_size_adjust_getterinfo = {
   18213             :   { (JSJitGetterOp)get_font_size_adjust },
   18214             :   { prototypes::id::CSS2Properties },
   18215             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18216             :   JSJitInfo::Getter,
   18217             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18218             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18219             :   false,  /* isInfallible. False in setters. */
   18220             :   false,  /* isMovable.  Not relevant for setters. */
   18221             :   false, /* isEliminatable.  Not relevant for setters. */
   18222             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18223             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18224             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18225             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18226             : };
   18227             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18228             : static_assert(0 < 1, "There is no slot for us");
   18229             : static const JSJitInfo font_size_adjust_setterinfo = {
   18230             :   { (JSJitGetterOp)set_font_size_adjust },
   18231             :   { prototypes::id::CSS2Properties },
   18232             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18233             :   JSJitInfo::Setter,
   18234             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18235             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18236             :   false,  /* isInfallible. False in setters. */
   18237             :   false,  /* isMovable.  Not relevant for setters. */
   18238             :   false, /* isEliminatable.  Not relevant for setters. */
   18239             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18240             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18241             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18242             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18243             : };
   18244             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18245             : static_assert(0 < 1, "There is no slot for us");
   18246             : 
   18247             : static bool
   18248           0 : get_fontStretch(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18249             : {
   18250           0 :   binding_detail::FastErrorResult rv;
   18251           0 :   DOMString result;
   18252           0 :   self->GetFontStretch(result, rv);
   18253           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18254           0 :     return false;
   18255             :   }
   18256           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18257           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18258           0 :     return false;
   18259             :   }
   18260           0 :   return true;
   18261             : }
   18262             : 
   18263             : static bool
   18264           0 : set_fontStretch(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18265             : {
   18266           0 :   binding_detail::FakeString arg0;
   18267           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18268           0 :     return false;
   18269             :   }
   18270           0 :   binding_detail::FastErrorResult rv;
   18271           0 :   self->SetFontStretch(NonNullHelper(Constify(arg0)), rv);
   18272           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18273           0 :     return false;
   18274             :   }
   18275           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18276             : 
   18277           0 :   return true;
   18278             : }
   18279             : 
   18280             : static const JSJitInfo fontStretch_getterinfo = {
   18281             :   { (JSJitGetterOp)get_fontStretch },
   18282             :   { prototypes::id::CSS2Properties },
   18283             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18284             :   JSJitInfo::Getter,
   18285             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18286             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18287             :   false,  /* isInfallible. False in setters. */
   18288             :   false,  /* isMovable.  Not relevant for setters. */
   18289             :   false, /* isEliminatable.  Not relevant for setters. */
   18290             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18291             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18292             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18293             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18294             : };
   18295             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18296             : static_assert(0 < 1, "There is no slot for us");
   18297             : static const JSJitInfo fontStretch_setterinfo = {
   18298             :   { (JSJitGetterOp)set_fontStretch },
   18299             :   { prototypes::id::CSS2Properties },
   18300             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18301             :   JSJitInfo::Setter,
   18302             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18303             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18304             :   false,  /* isInfallible. False in setters. */
   18305             :   false,  /* isMovable.  Not relevant for setters. */
   18306             :   false, /* isEliminatable.  Not relevant for setters. */
   18307             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18308             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18309             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18310             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18311             : };
   18312             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18313             : static_assert(0 < 1, "There is no slot for us");
   18314             : 
   18315             : static bool
   18316           0 : get_font_stretch(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18317             : {
   18318           0 :   binding_detail::FastErrorResult rv;
   18319           0 :   DOMString result;
   18320           0 :   self->GetFontStretch(result, rv);
   18321           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18322           0 :     return false;
   18323             :   }
   18324           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18325           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18326           0 :     return false;
   18327             :   }
   18328           0 :   return true;
   18329             : }
   18330             : 
   18331             : static bool
   18332           0 : set_font_stretch(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18333             : {
   18334           0 :   binding_detail::FakeString arg0;
   18335           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18336           0 :     return false;
   18337             :   }
   18338           0 :   binding_detail::FastErrorResult rv;
   18339           0 :   self->SetFontStretch(NonNullHelper(Constify(arg0)), rv);
   18340           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18341           0 :     return false;
   18342             :   }
   18343           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18344             : 
   18345           0 :   return true;
   18346             : }
   18347             : 
   18348             : static const JSJitInfo font_stretch_getterinfo = {
   18349             :   { (JSJitGetterOp)get_font_stretch },
   18350             :   { prototypes::id::CSS2Properties },
   18351             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18352             :   JSJitInfo::Getter,
   18353             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18354             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18355             :   false,  /* isInfallible. False in setters. */
   18356             :   false,  /* isMovable.  Not relevant for setters. */
   18357             :   false, /* isEliminatable.  Not relevant for setters. */
   18358             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18359             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18360             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18361             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18362             : };
   18363             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18364             : static_assert(0 < 1, "There is no slot for us");
   18365             : static const JSJitInfo font_stretch_setterinfo = {
   18366             :   { (JSJitGetterOp)set_font_stretch },
   18367             :   { prototypes::id::CSS2Properties },
   18368             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18369             :   JSJitInfo::Setter,
   18370             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18371             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18372             :   false,  /* isInfallible. False in setters. */
   18373             :   false,  /* isMovable.  Not relevant for setters. */
   18374             :   false, /* isEliminatable.  Not relevant for setters. */
   18375             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18376             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18377             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18378             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18379             : };
   18380             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18381             : static_assert(0 < 1, "There is no slot for us");
   18382             : 
   18383             : static bool
   18384           0 : get_fontStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18385             : {
   18386           0 :   binding_detail::FastErrorResult rv;
   18387           0 :   DOMString result;
   18388           0 :   self->GetFontStyle(result, rv);
   18389           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18390           0 :     return false;
   18391             :   }
   18392           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18393           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18394           0 :     return false;
   18395             :   }
   18396           0 :   return true;
   18397             : }
   18398             : 
   18399             : static bool
   18400           0 : set_fontStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18401             : {
   18402           0 :   binding_detail::FakeString arg0;
   18403           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18404           0 :     return false;
   18405             :   }
   18406           0 :   binding_detail::FastErrorResult rv;
   18407           0 :   self->SetFontStyle(NonNullHelper(Constify(arg0)), rv);
   18408           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18409           0 :     return false;
   18410             :   }
   18411           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18412             : 
   18413           0 :   return true;
   18414             : }
   18415             : 
   18416             : static const JSJitInfo fontStyle_getterinfo = {
   18417             :   { (JSJitGetterOp)get_fontStyle },
   18418             :   { prototypes::id::CSS2Properties },
   18419             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18420             :   JSJitInfo::Getter,
   18421             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18422             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18423             :   false,  /* isInfallible. False in setters. */
   18424             :   false,  /* isMovable.  Not relevant for setters. */
   18425             :   false, /* isEliminatable.  Not relevant for setters. */
   18426             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18427             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18428             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18429             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18430             : };
   18431             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18432             : static_assert(0 < 1, "There is no slot for us");
   18433             : static const JSJitInfo fontStyle_setterinfo = {
   18434             :   { (JSJitGetterOp)set_fontStyle },
   18435             :   { prototypes::id::CSS2Properties },
   18436             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18437             :   JSJitInfo::Setter,
   18438             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18439             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18440             :   false,  /* isInfallible. False in setters. */
   18441             :   false,  /* isMovable.  Not relevant for setters. */
   18442             :   false, /* isEliminatable.  Not relevant for setters. */
   18443             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18444             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18445             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18446             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18447             : };
   18448             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18449             : static_assert(0 < 1, "There is no slot for us");
   18450             : 
   18451             : static bool
   18452           0 : get_font_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18453             : {
   18454           0 :   binding_detail::FastErrorResult rv;
   18455           0 :   DOMString result;
   18456           0 :   self->GetFontStyle(result, rv);
   18457           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18458           0 :     return false;
   18459             :   }
   18460           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18461           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18462           0 :     return false;
   18463             :   }
   18464           0 :   return true;
   18465             : }
   18466             : 
   18467             : static bool
   18468           0 : set_font_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18469             : {
   18470           0 :   binding_detail::FakeString arg0;
   18471           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18472           0 :     return false;
   18473             :   }
   18474           0 :   binding_detail::FastErrorResult rv;
   18475           0 :   self->SetFontStyle(NonNullHelper(Constify(arg0)), rv);
   18476           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18477           0 :     return false;
   18478             :   }
   18479           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18480             : 
   18481           0 :   return true;
   18482             : }
   18483             : 
   18484             : static const JSJitInfo font_style_getterinfo = {
   18485             :   { (JSJitGetterOp)get_font_style },
   18486             :   { prototypes::id::CSS2Properties },
   18487             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18488             :   JSJitInfo::Getter,
   18489             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18490             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18491             :   false,  /* isInfallible. False in setters. */
   18492             :   false,  /* isMovable.  Not relevant for setters. */
   18493             :   false, /* isEliminatable.  Not relevant for setters. */
   18494             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18495             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18496             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18497             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18498             : };
   18499             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18500             : static_assert(0 < 1, "There is no slot for us");
   18501             : static const JSJitInfo font_style_setterinfo = {
   18502             :   { (JSJitGetterOp)set_font_style },
   18503             :   { prototypes::id::CSS2Properties },
   18504             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18505             :   JSJitInfo::Setter,
   18506             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18507             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18508             :   false,  /* isInfallible. False in setters. */
   18509             :   false,  /* isMovable.  Not relevant for setters. */
   18510             :   false, /* isEliminatable.  Not relevant for setters. */
   18511             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18512             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18513             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18514             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18515             : };
   18516             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18517             : static_assert(0 < 1, "There is no slot for us");
   18518             : 
   18519             : static bool
   18520           0 : get_fontSynthesis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18521             : {
   18522           0 :   binding_detail::FastErrorResult rv;
   18523           0 :   DOMString result;
   18524           0 :   self->GetFontSynthesis(result, rv);
   18525           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18526           0 :     return false;
   18527             :   }
   18528           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18529           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18530           0 :     return false;
   18531             :   }
   18532           0 :   return true;
   18533             : }
   18534             : 
   18535             : static bool
   18536           0 : set_fontSynthesis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18537             : {
   18538           0 :   binding_detail::FakeString arg0;
   18539           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18540           0 :     return false;
   18541             :   }
   18542           0 :   binding_detail::FastErrorResult rv;
   18543           0 :   self->SetFontSynthesis(NonNullHelper(Constify(arg0)), rv);
   18544           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18545           0 :     return false;
   18546             :   }
   18547           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18548             : 
   18549           0 :   return true;
   18550             : }
   18551             : 
   18552             : static const JSJitInfo fontSynthesis_getterinfo = {
   18553             :   { (JSJitGetterOp)get_fontSynthesis },
   18554             :   { prototypes::id::CSS2Properties },
   18555             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18556             :   JSJitInfo::Getter,
   18557             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18558             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18559             :   false,  /* isInfallible. False in setters. */
   18560             :   false,  /* isMovable.  Not relevant for setters. */
   18561             :   false, /* isEliminatable.  Not relevant for setters. */
   18562             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18563             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18564             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18565             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18566             : };
   18567             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18568             : static_assert(0 < 1, "There is no slot for us");
   18569             : static const JSJitInfo fontSynthesis_setterinfo = {
   18570             :   { (JSJitGetterOp)set_fontSynthesis },
   18571             :   { prototypes::id::CSS2Properties },
   18572             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18573             :   JSJitInfo::Setter,
   18574             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18575             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18576             :   false,  /* isInfallible. False in setters. */
   18577             :   false,  /* isMovable.  Not relevant for setters. */
   18578             :   false, /* isEliminatable.  Not relevant for setters. */
   18579             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18580             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18581             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18582             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18583             : };
   18584             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18585             : static_assert(0 < 1, "There is no slot for us");
   18586             : 
   18587             : static bool
   18588           0 : get_font_synthesis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18589             : {
   18590           0 :   binding_detail::FastErrorResult rv;
   18591           0 :   DOMString result;
   18592           0 :   self->GetFontSynthesis(result, rv);
   18593           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18594           0 :     return false;
   18595             :   }
   18596           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18597           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18598           0 :     return false;
   18599             :   }
   18600           0 :   return true;
   18601             : }
   18602             : 
   18603             : static bool
   18604           0 : set_font_synthesis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18605             : {
   18606           0 :   binding_detail::FakeString arg0;
   18607           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18608           0 :     return false;
   18609             :   }
   18610           0 :   binding_detail::FastErrorResult rv;
   18611           0 :   self->SetFontSynthesis(NonNullHelper(Constify(arg0)), rv);
   18612           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18613           0 :     return false;
   18614             :   }
   18615           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18616             : 
   18617           0 :   return true;
   18618             : }
   18619             : 
   18620             : static const JSJitInfo font_synthesis_getterinfo = {
   18621             :   { (JSJitGetterOp)get_font_synthesis },
   18622             :   { prototypes::id::CSS2Properties },
   18623             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18624             :   JSJitInfo::Getter,
   18625             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18626             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18627             :   false,  /* isInfallible. False in setters. */
   18628             :   false,  /* isMovable.  Not relevant for setters. */
   18629             :   false, /* isEliminatable.  Not relevant for setters. */
   18630             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18631             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18632             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18633             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18634             : };
   18635             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18636             : static_assert(0 < 1, "There is no slot for us");
   18637             : static const JSJitInfo font_synthesis_setterinfo = {
   18638             :   { (JSJitGetterOp)set_font_synthesis },
   18639             :   { prototypes::id::CSS2Properties },
   18640             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18641             :   JSJitInfo::Setter,
   18642             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18643             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18644             :   false,  /* isInfallible. False in setters. */
   18645             :   false,  /* isMovable.  Not relevant for setters. */
   18646             :   false, /* isEliminatable.  Not relevant for setters. */
   18647             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18648             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18649             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18650             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18651             : };
   18652             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18653             : static_assert(0 < 1, "There is no slot for us");
   18654             : 
   18655             : static bool
   18656           0 : get_fontVariant(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18657             : {
   18658           0 :   binding_detail::FastErrorResult rv;
   18659           0 :   DOMString result;
   18660           0 :   self->GetFontVariant(result, rv);
   18661           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18662           0 :     return false;
   18663             :   }
   18664           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18665           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18666           0 :     return false;
   18667             :   }
   18668           0 :   return true;
   18669             : }
   18670             : 
   18671             : static bool
   18672           0 : set_fontVariant(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18673             : {
   18674           0 :   binding_detail::FakeString arg0;
   18675           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18676           0 :     return false;
   18677             :   }
   18678           0 :   binding_detail::FastErrorResult rv;
   18679           0 :   self->SetFontVariant(NonNullHelper(Constify(arg0)), rv);
   18680           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18681           0 :     return false;
   18682             :   }
   18683           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18684             : 
   18685           0 :   return true;
   18686             : }
   18687             : 
   18688             : static const JSJitInfo fontVariant_getterinfo = {
   18689             :   { (JSJitGetterOp)get_fontVariant },
   18690             :   { prototypes::id::CSS2Properties },
   18691             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18692             :   JSJitInfo::Getter,
   18693             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18694             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18695             :   false,  /* isInfallible. False in setters. */
   18696             :   false,  /* isMovable.  Not relevant for setters. */
   18697             :   false, /* isEliminatable.  Not relevant for setters. */
   18698             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18699             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18700             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18701             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18702             : };
   18703             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18704             : static_assert(0 < 1, "There is no slot for us");
   18705             : static const JSJitInfo fontVariant_setterinfo = {
   18706             :   { (JSJitGetterOp)set_fontVariant },
   18707             :   { prototypes::id::CSS2Properties },
   18708             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18709             :   JSJitInfo::Setter,
   18710             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18711             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18712             :   false,  /* isInfallible. False in setters. */
   18713             :   false,  /* isMovable.  Not relevant for setters. */
   18714             :   false, /* isEliminatable.  Not relevant for setters. */
   18715             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18716             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18717             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18718             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18719             : };
   18720             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18721             : static_assert(0 < 1, "There is no slot for us");
   18722             : 
   18723             : static bool
   18724           0 : get_font_variant(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18725             : {
   18726           0 :   binding_detail::FastErrorResult rv;
   18727           0 :   DOMString result;
   18728           0 :   self->GetFontVariant(result, rv);
   18729           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18730           0 :     return false;
   18731             :   }
   18732           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18733           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18734           0 :     return false;
   18735             :   }
   18736           0 :   return true;
   18737             : }
   18738             : 
   18739             : static bool
   18740           0 : set_font_variant(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18741             : {
   18742           0 :   binding_detail::FakeString arg0;
   18743           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18744           0 :     return false;
   18745             :   }
   18746           0 :   binding_detail::FastErrorResult rv;
   18747           0 :   self->SetFontVariant(NonNullHelper(Constify(arg0)), rv);
   18748           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18749           0 :     return false;
   18750             :   }
   18751           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18752             : 
   18753           0 :   return true;
   18754             : }
   18755             : 
   18756             : static const JSJitInfo font_variant_getterinfo = {
   18757             :   { (JSJitGetterOp)get_font_variant },
   18758             :   { prototypes::id::CSS2Properties },
   18759             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18760             :   JSJitInfo::Getter,
   18761             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18762             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18763             :   false,  /* isInfallible. False in setters. */
   18764             :   false,  /* isMovable.  Not relevant for setters. */
   18765             :   false, /* isEliminatable.  Not relevant for setters. */
   18766             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18767             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18768             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18769             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18770             : };
   18771             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18772             : static_assert(0 < 1, "There is no slot for us");
   18773             : static const JSJitInfo font_variant_setterinfo = {
   18774             :   { (JSJitGetterOp)set_font_variant },
   18775             :   { prototypes::id::CSS2Properties },
   18776             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18777             :   JSJitInfo::Setter,
   18778             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18779             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18780             :   false,  /* isInfallible. False in setters. */
   18781             :   false,  /* isMovable.  Not relevant for setters. */
   18782             :   false, /* isEliminatable.  Not relevant for setters. */
   18783             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18784             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18785             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18786             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18787             : };
   18788             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18789             : static_assert(0 < 1, "There is no slot for us");
   18790             : 
   18791             : static bool
   18792           0 : get_fontVariantAlternates(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18793             : {
   18794           0 :   binding_detail::FastErrorResult rv;
   18795           0 :   DOMString result;
   18796           0 :   self->GetFontVariantAlternates(result, rv);
   18797           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18798           0 :     return false;
   18799             :   }
   18800           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18801           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18802           0 :     return false;
   18803             :   }
   18804           0 :   return true;
   18805             : }
   18806             : 
   18807             : static bool
   18808           0 : set_fontVariantAlternates(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18809             : {
   18810           0 :   binding_detail::FakeString arg0;
   18811           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18812           0 :     return false;
   18813             :   }
   18814           0 :   binding_detail::FastErrorResult rv;
   18815           0 :   self->SetFontVariantAlternates(NonNullHelper(Constify(arg0)), rv);
   18816           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18817           0 :     return false;
   18818             :   }
   18819           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18820             : 
   18821           0 :   return true;
   18822             : }
   18823             : 
   18824             : static const JSJitInfo fontVariantAlternates_getterinfo = {
   18825             :   { (JSJitGetterOp)get_fontVariantAlternates },
   18826             :   { prototypes::id::CSS2Properties },
   18827             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18828             :   JSJitInfo::Getter,
   18829             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18830             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18831             :   false,  /* isInfallible. False in setters. */
   18832             :   false,  /* isMovable.  Not relevant for setters. */
   18833             :   false, /* isEliminatable.  Not relevant for setters. */
   18834             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18835             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18836             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18837             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18838             : };
   18839             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18840             : static_assert(0 < 1, "There is no slot for us");
   18841             : static const JSJitInfo fontVariantAlternates_setterinfo = {
   18842             :   { (JSJitGetterOp)set_fontVariantAlternates },
   18843             :   { prototypes::id::CSS2Properties },
   18844             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18845             :   JSJitInfo::Setter,
   18846             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18847             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18848             :   false,  /* isInfallible. False in setters. */
   18849             :   false,  /* isMovable.  Not relevant for setters. */
   18850             :   false, /* isEliminatable.  Not relevant for setters. */
   18851             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18852             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18853             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18854             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18855             : };
   18856             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18857             : static_assert(0 < 1, "There is no slot for us");
   18858             : 
   18859             : static bool
   18860           0 : get_font_variant_alternates(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18861             : {
   18862           0 :   binding_detail::FastErrorResult rv;
   18863           0 :   DOMString result;
   18864           0 :   self->GetFontVariantAlternates(result, rv);
   18865           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18866           0 :     return false;
   18867             :   }
   18868           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18869           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18870           0 :     return false;
   18871             :   }
   18872           0 :   return true;
   18873             : }
   18874             : 
   18875             : static bool
   18876           0 : set_font_variant_alternates(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18877             : {
   18878           0 :   binding_detail::FakeString arg0;
   18879           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18880           0 :     return false;
   18881             :   }
   18882           0 :   binding_detail::FastErrorResult rv;
   18883           0 :   self->SetFontVariantAlternates(NonNullHelper(Constify(arg0)), rv);
   18884           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18885           0 :     return false;
   18886             :   }
   18887           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18888             : 
   18889           0 :   return true;
   18890             : }
   18891             : 
   18892             : static const JSJitInfo font_variant_alternates_getterinfo = {
   18893             :   { (JSJitGetterOp)get_font_variant_alternates },
   18894             :   { prototypes::id::CSS2Properties },
   18895             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18896             :   JSJitInfo::Getter,
   18897             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18898             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18899             :   false,  /* isInfallible. False in setters. */
   18900             :   false,  /* isMovable.  Not relevant for setters. */
   18901             :   false, /* isEliminatable.  Not relevant for setters. */
   18902             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18903             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18904             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18905             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18906             : };
   18907             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18908             : static_assert(0 < 1, "There is no slot for us");
   18909             : static const JSJitInfo font_variant_alternates_setterinfo = {
   18910             :   { (JSJitGetterOp)set_font_variant_alternates },
   18911             :   { prototypes::id::CSS2Properties },
   18912             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18913             :   JSJitInfo::Setter,
   18914             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18915             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18916             :   false,  /* isInfallible. False in setters. */
   18917             :   false,  /* isMovable.  Not relevant for setters. */
   18918             :   false, /* isEliminatable.  Not relevant for setters. */
   18919             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18920             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18921             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18922             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18923             : };
   18924             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18925             : static_assert(0 < 1, "There is no slot for us");
   18926             : 
   18927             : static bool
   18928           0 : get_fontVariantCaps(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18929             : {
   18930           0 :   binding_detail::FastErrorResult rv;
   18931           0 :   DOMString result;
   18932           0 :   self->GetFontVariantCaps(result, rv);
   18933           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18934           0 :     return false;
   18935             :   }
   18936           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18937           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   18938           0 :     return false;
   18939             :   }
   18940           0 :   return true;
   18941             : }
   18942             : 
   18943             : static bool
   18944           0 : set_fontVariantCaps(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   18945             : {
   18946           0 :   binding_detail::FakeString arg0;
   18947           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   18948           0 :     return false;
   18949             :   }
   18950           0 :   binding_detail::FastErrorResult rv;
   18951           0 :   self->SetFontVariantCaps(NonNullHelper(Constify(arg0)), rv);
   18952           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   18953           0 :     return false;
   18954             :   }
   18955           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   18956             : 
   18957           0 :   return true;
   18958             : }
   18959             : 
   18960             : static const JSJitInfo fontVariantCaps_getterinfo = {
   18961             :   { (JSJitGetterOp)get_fontVariantCaps },
   18962             :   { prototypes::id::CSS2Properties },
   18963             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18964             :   JSJitInfo::Getter,
   18965             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18966             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   18967             :   false,  /* isInfallible. False in setters. */
   18968             :   false,  /* isMovable.  Not relevant for setters. */
   18969             :   false, /* isEliminatable.  Not relevant for setters. */
   18970             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18971             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18972             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18973             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18974             : };
   18975             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18976             : static_assert(0 < 1, "There is no slot for us");
   18977             : static const JSJitInfo fontVariantCaps_setterinfo = {
   18978             :   { (JSJitGetterOp)set_fontVariantCaps },
   18979             :   { prototypes::id::CSS2Properties },
   18980             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   18981             :   JSJitInfo::Setter,
   18982             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   18983             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   18984             :   false,  /* isInfallible. False in setters. */
   18985             :   false,  /* isMovable.  Not relevant for setters. */
   18986             :   false, /* isEliminatable.  Not relevant for setters. */
   18987             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   18988             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   18989             :   false,  /* isTypedMethod.  Only relevant for methods. */
   18990             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   18991             : };
   18992             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   18993             : static_assert(0 < 1, "There is no slot for us");
   18994             : 
   18995             : static bool
   18996           0 : get_font_variant_caps(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   18997             : {
   18998           0 :   binding_detail::FastErrorResult rv;
   18999           0 :   DOMString result;
   19000           0 :   self->GetFontVariantCaps(result, rv);
   19001           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19002           0 :     return false;
   19003             :   }
   19004           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19005           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19006           0 :     return false;
   19007             :   }
   19008           0 :   return true;
   19009             : }
   19010             : 
   19011             : static bool
   19012           0 : set_font_variant_caps(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19013             : {
   19014           0 :   binding_detail::FakeString arg0;
   19015           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19016           0 :     return false;
   19017             :   }
   19018           0 :   binding_detail::FastErrorResult rv;
   19019           0 :   self->SetFontVariantCaps(NonNullHelper(Constify(arg0)), rv);
   19020           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19021           0 :     return false;
   19022             :   }
   19023           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19024             : 
   19025           0 :   return true;
   19026             : }
   19027             : 
   19028             : static const JSJitInfo font_variant_caps_getterinfo = {
   19029             :   { (JSJitGetterOp)get_font_variant_caps },
   19030             :   { prototypes::id::CSS2Properties },
   19031             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19032             :   JSJitInfo::Getter,
   19033             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19034             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19035             :   false,  /* isInfallible. False in setters. */
   19036             :   false,  /* isMovable.  Not relevant for setters. */
   19037             :   false, /* isEliminatable.  Not relevant for setters. */
   19038             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19039             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19040             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19041             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19042             : };
   19043             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19044             : static_assert(0 < 1, "There is no slot for us");
   19045             : static const JSJitInfo font_variant_caps_setterinfo = {
   19046             :   { (JSJitGetterOp)set_font_variant_caps },
   19047             :   { prototypes::id::CSS2Properties },
   19048             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19049             :   JSJitInfo::Setter,
   19050             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19051             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19052             :   false,  /* isInfallible. False in setters. */
   19053             :   false,  /* isMovable.  Not relevant for setters. */
   19054             :   false, /* isEliminatable.  Not relevant for setters. */
   19055             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19056             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19057             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19058             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19059             : };
   19060             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19061             : static_assert(0 < 1, "There is no slot for us");
   19062             : 
   19063             : static bool
   19064           0 : get_fontVariantEastAsian(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19065             : {
   19066           0 :   binding_detail::FastErrorResult rv;
   19067           0 :   DOMString result;
   19068           0 :   self->GetFontVariantEastAsian(result, rv);
   19069           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19070           0 :     return false;
   19071             :   }
   19072           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19073           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19074           0 :     return false;
   19075             :   }
   19076           0 :   return true;
   19077             : }
   19078             : 
   19079             : static bool
   19080           0 : set_fontVariantEastAsian(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19081             : {
   19082           0 :   binding_detail::FakeString arg0;
   19083           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19084           0 :     return false;
   19085             :   }
   19086           0 :   binding_detail::FastErrorResult rv;
   19087           0 :   self->SetFontVariantEastAsian(NonNullHelper(Constify(arg0)), rv);
   19088           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19089           0 :     return false;
   19090             :   }
   19091           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19092             : 
   19093           0 :   return true;
   19094             : }
   19095             : 
   19096             : static const JSJitInfo fontVariantEastAsian_getterinfo = {
   19097             :   { (JSJitGetterOp)get_fontVariantEastAsian },
   19098             :   { prototypes::id::CSS2Properties },
   19099             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19100             :   JSJitInfo::Getter,
   19101             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19102             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19103             :   false,  /* isInfallible. False in setters. */
   19104             :   false,  /* isMovable.  Not relevant for setters. */
   19105             :   false, /* isEliminatable.  Not relevant for setters. */
   19106             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19107             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19108             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19109             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19110             : };
   19111             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19112             : static_assert(0 < 1, "There is no slot for us");
   19113             : static const JSJitInfo fontVariantEastAsian_setterinfo = {
   19114             :   { (JSJitGetterOp)set_fontVariantEastAsian },
   19115             :   { prototypes::id::CSS2Properties },
   19116             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19117             :   JSJitInfo::Setter,
   19118             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19119             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19120             :   false,  /* isInfallible. False in setters. */
   19121             :   false,  /* isMovable.  Not relevant for setters. */
   19122             :   false, /* isEliminatable.  Not relevant for setters. */
   19123             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19124             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19125             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19126             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19127             : };
   19128             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19129             : static_assert(0 < 1, "There is no slot for us");
   19130             : 
   19131             : static bool
   19132           0 : get_font_variant_east_asian(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19133             : {
   19134           0 :   binding_detail::FastErrorResult rv;
   19135           0 :   DOMString result;
   19136           0 :   self->GetFontVariantEastAsian(result, rv);
   19137           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19138           0 :     return false;
   19139             :   }
   19140           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19141           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19142           0 :     return false;
   19143             :   }
   19144           0 :   return true;
   19145             : }
   19146             : 
   19147             : static bool
   19148           0 : set_font_variant_east_asian(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19149             : {
   19150           0 :   binding_detail::FakeString arg0;
   19151           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19152           0 :     return false;
   19153             :   }
   19154           0 :   binding_detail::FastErrorResult rv;
   19155           0 :   self->SetFontVariantEastAsian(NonNullHelper(Constify(arg0)), rv);
   19156           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19157           0 :     return false;
   19158             :   }
   19159           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19160             : 
   19161           0 :   return true;
   19162             : }
   19163             : 
   19164             : static const JSJitInfo font_variant_east_asian_getterinfo = {
   19165             :   { (JSJitGetterOp)get_font_variant_east_asian },
   19166             :   { prototypes::id::CSS2Properties },
   19167             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19168             :   JSJitInfo::Getter,
   19169             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19170             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19171             :   false,  /* isInfallible. False in setters. */
   19172             :   false,  /* isMovable.  Not relevant for setters. */
   19173             :   false, /* isEliminatable.  Not relevant for setters. */
   19174             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19175             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19176             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19177             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19178             : };
   19179             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19180             : static_assert(0 < 1, "There is no slot for us");
   19181             : static const JSJitInfo font_variant_east_asian_setterinfo = {
   19182             :   { (JSJitGetterOp)set_font_variant_east_asian },
   19183             :   { prototypes::id::CSS2Properties },
   19184             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19185             :   JSJitInfo::Setter,
   19186             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19187             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19188             :   false,  /* isInfallible. False in setters. */
   19189             :   false,  /* isMovable.  Not relevant for setters. */
   19190             :   false, /* isEliminatable.  Not relevant for setters. */
   19191             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19192             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19193             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19194             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19195             : };
   19196             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19197             : static_assert(0 < 1, "There is no slot for us");
   19198             : 
   19199             : static bool
   19200           0 : get_fontVariantLigatures(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19201             : {
   19202           0 :   binding_detail::FastErrorResult rv;
   19203           0 :   DOMString result;
   19204           0 :   self->GetFontVariantLigatures(result, rv);
   19205           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19206           0 :     return false;
   19207             :   }
   19208           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19209           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19210           0 :     return false;
   19211             :   }
   19212           0 :   return true;
   19213             : }
   19214             : 
   19215             : static bool
   19216           0 : set_fontVariantLigatures(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19217             : {
   19218           0 :   binding_detail::FakeString arg0;
   19219           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19220           0 :     return false;
   19221             :   }
   19222           0 :   binding_detail::FastErrorResult rv;
   19223           0 :   self->SetFontVariantLigatures(NonNullHelper(Constify(arg0)), rv);
   19224           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19225           0 :     return false;
   19226             :   }
   19227           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19228             : 
   19229           0 :   return true;
   19230             : }
   19231             : 
   19232             : static const JSJitInfo fontVariantLigatures_getterinfo = {
   19233             :   { (JSJitGetterOp)get_fontVariantLigatures },
   19234             :   { prototypes::id::CSS2Properties },
   19235             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19236             :   JSJitInfo::Getter,
   19237             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19238             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19239             :   false,  /* isInfallible. False in setters. */
   19240             :   false,  /* isMovable.  Not relevant for setters. */
   19241             :   false, /* isEliminatable.  Not relevant for setters. */
   19242             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19243             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19244             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19245             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19246             : };
   19247             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19248             : static_assert(0 < 1, "There is no slot for us");
   19249             : static const JSJitInfo fontVariantLigatures_setterinfo = {
   19250             :   { (JSJitGetterOp)set_fontVariantLigatures },
   19251             :   { prototypes::id::CSS2Properties },
   19252             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19253             :   JSJitInfo::Setter,
   19254             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19255             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19256             :   false,  /* isInfallible. False in setters. */
   19257             :   false,  /* isMovable.  Not relevant for setters. */
   19258             :   false, /* isEliminatable.  Not relevant for setters. */
   19259             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19260             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19261             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19262             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19263             : };
   19264             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19265             : static_assert(0 < 1, "There is no slot for us");
   19266             : 
   19267             : static bool
   19268           0 : get_font_variant_ligatures(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19269             : {
   19270           0 :   binding_detail::FastErrorResult rv;
   19271           0 :   DOMString result;
   19272           0 :   self->GetFontVariantLigatures(result, rv);
   19273           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19274           0 :     return false;
   19275             :   }
   19276           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19277           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19278           0 :     return false;
   19279             :   }
   19280           0 :   return true;
   19281             : }
   19282             : 
   19283             : static bool
   19284           0 : set_font_variant_ligatures(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19285             : {
   19286           0 :   binding_detail::FakeString arg0;
   19287           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19288           0 :     return false;
   19289             :   }
   19290           0 :   binding_detail::FastErrorResult rv;
   19291           0 :   self->SetFontVariantLigatures(NonNullHelper(Constify(arg0)), rv);
   19292           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19293           0 :     return false;
   19294             :   }
   19295           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19296             : 
   19297           0 :   return true;
   19298             : }
   19299             : 
   19300             : static const JSJitInfo font_variant_ligatures_getterinfo = {
   19301             :   { (JSJitGetterOp)get_font_variant_ligatures },
   19302             :   { prototypes::id::CSS2Properties },
   19303             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19304             :   JSJitInfo::Getter,
   19305             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19306             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19307             :   false,  /* isInfallible. False in setters. */
   19308             :   false,  /* isMovable.  Not relevant for setters. */
   19309             :   false, /* isEliminatable.  Not relevant for setters. */
   19310             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19311             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19312             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19313             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19314             : };
   19315             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19316             : static_assert(0 < 1, "There is no slot for us");
   19317             : static const JSJitInfo font_variant_ligatures_setterinfo = {
   19318             :   { (JSJitGetterOp)set_font_variant_ligatures },
   19319             :   { prototypes::id::CSS2Properties },
   19320             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19321             :   JSJitInfo::Setter,
   19322             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19323             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19324             :   false,  /* isInfallible. False in setters. */
   19325             :   false,  /* isMovable.  Not relevant for setters. */
   19326             :   false, /* isEliminatable.  Not relevant for setters. */
   19327             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19328             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19329             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19330             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19331             : };
   19332             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19333             : static_assert(0 < 1, "There is no slot for us");
   19334             : 
   19335             : static bool
   19336           0 : get_fontVariantNumeric(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19337             : {
   19338           0 :   binding_detail::FastErrorResult rv;
   19339           0 :   DOMString result;
   19340           0 :   self->GetFontVariantNumeric(result, rv);
   19341           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19342           0 :     return false;
   19343             :   }
   19344           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19345           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19346           0 :     return false;
   19347             :   }
   19348           0 :   return true;
   19349             : }
   19350             : 
   19351             : static bool
   19352           0 : set_fontVariantNumeric(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19353             : {
   19354           0 :   binding_detail::FakeString arg0;
   19355           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19356           0 :     return false;
   19357             :   }
   19358           0 :   binding_detail::FastErrorResult rv;
   19359           0 :   self->SetFontVariantNumeric(NonNullHelper(Constify(arg0)), rv);
   19360           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19361           0 :     return false;
   19362             :   }
   19363           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19364             : 
   19365           0 :   return true;
   19366             : }
   19367             : 
   19368             : static const JSJitInfo fontVariantNumeric_getterinfo = {
   19369             :   { (JSJitGetterOp)get_fontVariantNumeric },
   19370             :   { prototypes::id::CSS2Properties },
   19371             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19372             :   JSJitInfo::Getter,
   19373             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19374             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19375             :   false,  /* isInfallible. False in setters. */
   19376             :   false,  /* isMovable.  Not relevant for setters. */
   19377             :   false, /* isEliminatable.  Not relevant for setters. */
   19378             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19379             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19380             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19381             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19382             : };
   19383             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19384             : static_assert(0 < 1, "There is no slot for us");
   19385             : static const JSJitInfo fontVariantNumeric_setterinfo = {
   19386             :   { (JSJitGetterOp)set_fontVariantNumeric },
   19387             :   { prototypes::id::CSS2Properties },
   19388             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19389             :   JSJitInfo::Setter,
   19390             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19391             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19392             :   false,  /* isInfallible. False in setters. */
   19393             :   false,  /* isMovable.  Not relevant for setters. */
   19394             :   false, /* isEliminatable.  Not relevant for setters. */
   19395             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19396             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19397             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19398             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19399             : };
   19400             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19401             : static_assert(0 < 1, "There is no slot for us");
   19402             : 
   19403             : static bool
   19404           0 : get_font_variant_numeric(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19405             : {
   19406           0 :   binding_detail::FastErrorResult rv;
   19407           0 :   DOMString result;
   19408           0 :   self->GetFontVariantNumeric(result, rv);
   19409           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19410           0 :     return false;
   19411             :   }
   19412           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19413           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19414           0 :     return false;
   19415             :   }
   19416           0 :   return true;
   19417             : }
   19418             : 
   19419             : static bool
   19420           0 : set_font_variant_numeric(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19421             : {
   19422           0 :   binding_detail::FakeString arg0;
   19423           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19424           0 :     return false;
   19425             :   }
   19426           0 :   binding_detail::FastErrorResult rv;
   19427           0 :   self->SetFontVariantNumeric(NonNullHelper(Constify(arg0)), rv);
   19428           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19429           0 :     return false;
   19430             :   }
   19431           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19432             : 
   19433           0 :   return true;
   19434             : }
   19435             : 
   19436             : static const JSJitInfo font_variant_numeric_getterinfo = {
   19437             :   { (JSJitGetterOp)get_font_variant_numeric },
   19438             :   { prototypes::id::CSS2Properties },
   19439             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19440             :   JSJitInfo::Getter,
   19441             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19442             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19443             :   false,  /* isInfallible. False in setters. */
   19444             :   false,  /* isMovable.  Not relevant for setters. */
   19445             :   false, /* isEliminatable.  Not relevant for setters. */
   19446             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19447             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19448             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19449             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19450             : };
   19451             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19452             : static_assert(0 < 1, "There is no slot for us");
   19453             : static const JSJitInfo font_variant_numeric_setterinfo = {
   19454             :   { (JSJitGetterOp)set_font_variant_numeric },
   19455             :   { prototypes::id::CSS2Properties },
   19456             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19457             :   JSJitInfo::Setter,
   19458             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19459             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19460             :   false,  /* isInfallible. False in setters. */
   19461             :   false,  /* isMovable.  Not relevant for setters. */
   19462             :   false, /* isEliminatable.  Not relevant for setters. */
   19463             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19464             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19465             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19466             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19467             : };
   19468             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19469             : static_assert(0 < 1, "There is no slot for us");
   19470             : 
   19471             : static bool
   19472           0 : get_fontVariantPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19473             : {
   19474           0 :   binding_detail::FastErrorResult rv;
   19475           0 :   DOMString result;
   19476           0 :   self->GetFontVariantPosition(result, rv);
   19477           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19478           0 :     return false;
   19479             :   }
   19480           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19481           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19482           0 :     return false;
   19483             :   }
   19484           0 :   return true;
   19485             : }
   19486             : 
   19487             : static bool
   19488           0 : set_fontVariantPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19489             : {
   19490           0 :   binding_detail::FakeString arg0;
   19491           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19492           0 :     return false;
   19493             :   }
   19494           0 :   binding_detail::FastErrorResult rv;
   19495           0 :   self->SetFontVariantPosition(NonNullHelper(Constify(arg0)), rv);
   19496           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19497           0 :     return false;
   19498             :   }
   19499           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19500             : 
   19501           0 :   return true;
   19502             : }
   19503             : 
   19504             : static const JSJitInfo fontVariantPosition_getterinfo = {
   19505             :   { (JSJitGetterOp)get_fontVariantPosition },
   19506             :   { prototypes::id::CSS2Properties },
   19507             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19508             :   JSJitInfo::Getter,
   19509             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19510             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19511             :   false,  /* isInfallible. False in setters. */
   19512             :   false,  /* isMovable.  Not relevant for setters. */
   19513             :   false, /* isEliminatable.  Not relevant for setters. */
   19514             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19515             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19516             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19517             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19518             : };
   19519             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19520             : static_assert(0 < 1, "There is no slot for us");
   19521             : static const JSJitInfo fontVariantPosition_setterinfo = {
   19522             :   { (JSJitGetterOp)set_fontVariantPosition },
   19523             :   { prototypes::id::CSS2Properties },
   19524             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19525             :   JSJitInfo::Setter,
   19526             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19527             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19528             :   false,  /* isInfallible. False in setters. */
   19529             :   false,  /* isMovable.  Not relevant for setters. */
   19530             :   false, /* isEliminatable.  Not relevant for setters. */
   19531             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19532             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19533             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19534             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19535             : };
   19536             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19537             : static_assert(0 < 1, "There is no slot for us");
   19538             : 
   19539             : static bool
   19540           0 : get_font_variant_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19541             : {
   19542           0 :   binding_detail::FastErrorResult rv;
   19543           0 :   DOMString result;
   19544           0 :   self->GetFontVariantPosition(result, rv);
   19545           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19546           0 :     return false;
   19547             :   }
   19548           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19549           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19550           0 :     return false;
   19551             :   }
   19552           0 :   return true;
   19553             : }
   19554             : 
   19555             : static bool
   19556           0 : set_font_variant_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19557             : {
   19558           0 :   binding_detail::FakeString arg0;
   19559           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19560           0 :     return false;
   19561             :   }
   19562           0 :   binding_detail::FastErrorResult rv;
   19563           0 :   self->SetFontVariantPosition(NonNullHelper(Constify(arg0)), rv);
   19564           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19565           0 :     return false;
   19566             :   }
   19567           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19568             : 
   19569           0 :   return true;
   19570             : }
   19571             : 
   19572             : static const JSJitInfo font_variant_position_getterinfo = {
   19573             :   { (JSJitGetterOp)get_font_variant_position },
   19574             :   { prototypes::id::CSS2Properties },
   19575             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19576             :   JSJitInfo::Getter,
   19577             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19578             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19579             :   false,  /* isInfallible. False in setters. */
   19580             :   false,  /* isMovable.  Not relevant for setters. */
   19581             :   false, /* isEliminatable.  Not relevant for setters. */
   19582             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19583             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19584             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19585             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19586             : };
   19587             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19588             : static_assert(0 < 1, "There is no slot for us");
   19589             : static const JSJitInfo font_variant_position_setterinfo = {
   19590             :   { (JSJitGetterOp)set_font_variant_position },
   19591             :   { prototypes::id::CSS2Properties },
   19592             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19593             :   JSJitInfo::Setter,
   19594             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19595             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19596             :   false,  /* isInfallible. False in setters. */
   19597             :   false,  /* isMovable.  Not relevant for setters. */
   19598             :   false, /* isEliminatable.  Not relevant for setters. */
   19599             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19600             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19601             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19602             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19603             : };
   19604             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19605             : static_assert(0 < 1, "There is no slot for us");
   19606             : 
   19607             : static bool
   19608           0 : get_fontVariationSettings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19609             : {
   19610           0 :   binding_detail::FastErrorResult rv;
   19611           0 :   DOMString result;
   19612           0 :   self->GetFontVariationSettings(result, rv);
   19613           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19614           0 :     return false;
   19615             :   }
   19616           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19617           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19618           0 :     return false;
   19619             :   }
   19620           0 :   return true;
   19621             : }
   19622             : 
   19623             : static bool
   19624           0 : set_fontVariationSettings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19625             : {
   19626           0 :   binding_detail::FakeString arg0;
   19627           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19628           0 :     return false;
   19629             :   }
   19630           0 :   binding_detail::FastErrorResult rv;
   19631           0 :   self->SetFontVariationSettings(NonNullHelper(Constify(arg0)), rv);
   19632           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19633           0 :     return false;
   19634             :   }
   19635           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19636             : 
   19637           0 :   return true;
   19638             : }
   19639             : 
   19640             : static const JSJitInfo fontVariationSettings_getterinfo = {
   19641             :   { (JSJitGetterOp)get_fontVariationSettings },
   19642             :   { prototypes::id::CSS2Properties },
   19643             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19644             :   JSJitInfo::Getter,
   19645             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19646             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19647             :   false,  /* isInfallible. False in setters. */
   19648             :   false,  /* isMovable.  Not relevant for setters. */
   19649             :   false, /* isEliminatable.  Not relevant for setters. */
   19650             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19651             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19652             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19653             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19654             : };
   19655             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19656             : static_assert(0 < 1, "There is no slot for us");
   19657             : static const JSJitInfo fontVariationSettings_setterinfo = {
   19658             :   { (JSJitGetterOp)set_fontVariationSettings },
   19659             :   { prototypes::id::CSS2Properties },
   19660             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19661             :   JSJitInfo::Setter,
   19662             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19663             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19664             :   false,  /* isInfallible. False in setters. */
   19665             :   false,  /* isMovable.  Not relevant for setters. */
   19666             :   false, /* isEliminatable.  Not relevant for setters. */
   19667             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19668             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19669             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19670             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19671             : };
   19672             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19673             : static_assert(0 < 1, "There is no slot for us");
   19674             : 
   19675             : static bool
   19676           0 : get_font_variation_settings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19677             : {
   19678           0 :   binding_detail::FastErrorResult rv;
   19679           0 :   DOMString result;
   19680           0 :   self->GetFontVariationSettings(result, rv);
   19681           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19682           0 :     return false;
   19683             :   }
   19684           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19685           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19686           0 :     return false;
   19687             :   }
   19688           0 :   return true;
   19689             : }
   19690             : 
   19691             : static bool
   19692           0 : set_font_variation_settings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19693             : {
   19694           0 :   binding_detail::FakeString arg0;
   19695           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19696           0 :     return false;
   19697             :   }
   19698           0 :   binding_detail::FastErrorResult rv;
   19699           0 :   self->SetFontVariationSettings(NonNullHelper(Constify(arg0)), rv);
   19700           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19701           0 :     return false;
   19702             :   }
   19703           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19704             : 
   19705           0 :   return true;
   19706             : }
   19707             : 
   19708             : static const JSJitInfo font_variation_settings_getterinfo = {
   19709             :   { (JSJitGetterOp)get_font_variation_settings },
   19710             :   { prototypes::id::CSS2Properties },
   19711             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19712             :   JSJitInfo::Getter,
   19713             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19714             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19715             :   false,  /* isInfallible. False in setters. */
   19716             :   false,  /* isMovable.  Not relevant for setters. */
   19717             :   false, /* isEliminatable.  Not relevant for setters. */
   19718             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19719             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19720             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19721             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19722             : };
   19723             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19724             : static_assert(0 < 1, "There is no slot for us");
   19725             : static const JSJitInfo font_variation_settings_setterinfo = {
   19726             :   { (JSJitGetterOp)set_font_variation_settings },
   19727             :   { prototypes::id::CSS2Properties },
   19728             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19729             :   JSJitInfo::Setter,
   19730             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19731             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19732             :   false,  /* isInfallible. False in setters. */
   19733             :   false,  /* isMovable.  Not relevant for setters. */
   19734             :   false, /* isEliminatable.  Not relevant for setters. */
   19735             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19736             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19737             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19738             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19739             : };
   19740             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19741             : static_assert(0 < 1, "There is no slot for us");
   19742             : 
   19743             : static bool
   19744           0 : get_fontWeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19745             : {
   19746           0 :   binding_detail::FastErrorResult rv;
   19747           0 :   DOMString result;
   19748           0 :   self->GetFontWeight(result, rv);
   19749           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19750           0 :     return false;
   19751             :   }
   19752           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19753           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19754           0 :     return false;
   19755             :   }
   19756           0 :   return true;
   19757             : }
   19758             : 
   19759             : static bool
   19760           0 : set_fontWeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19761             : {
   19762           0 :   binding_detail::FakeString arg0;
   19763           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19764           0 :     return false;
   19765             :   }
   19766           0 :   binding_detail::FastErrorResult rv;
   19767           0 :   self->SetFontWeight(NonNullHelper(Constify(arg0)), rv);
   19768           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19769           0 :     return false;
   19770             :   }
   19771           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19772             : 
   19773           0 :   return true;
   19774             : }
   19775             : 
   19776             : static const JSJitInfo fontWeight_getterinfo = {
   19777             :   { (JSJitGetterOp)get_fontWeight },
   19778             :   { prototypes::id::CSS2Properties },
   19779             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19780             :   JSJitInfo::Getter,
   19781             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19782             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19783             :   false,  /* isInfallible. False in setters. */
   19784             :   false,  /* isMovable.  Not relevant for setters. */
   19785             :   false, /* isEliminatable.  Not relevant for setters. */
   19786             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19787             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19788             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19789             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19790             : };
   19791             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19792             : static_assert(0 < 1, "There is no slot for us");
   19793             : static const JSJitInfo fontWeight_setterinfo = {
   19794             :   { (JSJitGetterOp)set_fontWeight },
   19795             :   { prototypes::id::CSS2Properties },
   19796             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19797             :   JSJitInfo::Setter,
   19798             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19799             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19800             :   false,  /* isInfallible. False in setters. */
   19801             :   false,  /* isMovable.  Not relevant for setters. */
   19802             :   false, /* isEliminatable.  Not relevant for setters. */
   19803             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19804             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19805             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19806             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19807             : };
   19808             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19809             : static_assert(0 < 1, "There is no slot for us");
   19810             : 
   19811             : static bool
   19812           0 : get_font_weight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19813             : {
   19814           0 :   binding_detail::FastErrorResult rv;
   19815           0 :   DOMString result;
   19816           0 :   self->GetFontWeight(result, rv);
   19817           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19818           0 :     return false;
   19819             :   }
   19820           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19821           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19822           0 :     return false;
   19823             :   }
   19824           0 :   return true;
   19825             : }
   19826             : 
   19827             : static bool
   19828           0 : set_font_weight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19829             : {
   19830           0 :   binding_detail::FakeString arg0;
   19831           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19832           0 :     return false;
   19833             :   }
   19834           0 :   binding_detail::FastErrorResult rv;
   19835           0 :   self->SetFontWeight(NonNullHelper(Constify(arg0)), rv);
   19836           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19837           0 :     return false;
   19838             :   }
   19839           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19840             : 
   19841           0 :   return true;
   19842             : }
   19843             : 
   19844             : static const JSJitInfo font_weight_getterinfo = {
   19845             :   { (JSJitGetterOp)get_font_weight },
   19846             :   { prototypes::id::CSS2Properties },
   19847             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19848             :   JSJitInfo::Getter,
   19849             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19850             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19851             :   false,  /* isInfallible. False in setters. */
   19852             :   false,  /* isMovable.  Not relevant for setters. */
   19853             :   false, /* isEliminatable.  Not relevant for setters. */
   19854             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19855             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19856             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19857             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19858             : };
   19859             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19860             : static_assert(0 < 1, "There is no slot for us");
   19861             : static const JSJitInfo font_weight_setterinfo = {
   19862             :   { (JSJitGetterOp)set_font_weight },
   19863             :   { prototypes::id::CSS2Properties },
   19864             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19865             :   JSJitInfo::Setter,
   19866             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19867             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19868             :   false,  /* isInfallible. False in setters. */
   19869             :   false,  /* isMovable.  Not relevant for setters. */
   19870             :   false, /* isEliminatable.  Not relevant for setters. */
   19871             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19872             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19873             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19874             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19875             : };
   19876             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19877             : static_assert(0 < 1, "There is no slot for us");
   19878             : 
   19879             : static bool
   19880           0 : get_MozForceBrokenImageIcon(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19881             : {
   19882           0 :   binding_detail::FastErrorResult rv;
   19883           0 :   DOMString result;
   19884           0 :   self->GetMozForceBrokenImageIcon(result, rv);
   19885           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19886           0 :     return false;
   19887             :   }
   19888           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19889           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19890           0 :     return false;
   19891             :   }
   19892           0 :   return true;
   19893             : }
   19894             : 
   19895             : static bool
   19896           0 : set_MozForceBrokenImageIcon(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19897             : {
   19898           0 :   binding_detail::FakeString arg0;
   19899           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19900           0 :     return false;
   19901             :   }
   19902           0 :   binding_detail::FastErrorResult rv;
   19903           0 :   self->SetMozForceBrokenImageIcon(NonNullHelper(Constify(arg0)), rv);
   19904           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19905           0 :     return false;
   19906             :   }
   19907           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19908             : 
   19909           0 :   return true;
   19910             : }
   19911             : 
   19912             : static const JSJitInfo MozForceBrokenImageIcon_getterinfo = {
   19913             :   { (JSJitGetterOp)get_MozForceBrokenImageIcon },
   19914             :   { prototypes::id::CSS2Properties },
   19915             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19916             :   JSJitInfo::Getter,
   19917             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19918             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19919             :   false,  /* isInfallible. False in setters. */
   19920             :   false,  /* isMovable.  Not relevant for setters. */
   19921             :   false, /* isEliminatable.  Not relevant for setters. */
   19922             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19923             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19924             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19925             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19926             : };
   19927             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19928             : static_assert(0 < 1, "There is no slot for us");
   19929             : static const JSJitInfo MozForceBrokenImageIcon_setterinfo = {
   19930             :   { (JSJitGetterOp)set_MozForceBrokenImageIcon },
   19931             :   { prototypes::id::CSS2Properties },
   19932             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19933             :   JSJitInfo::Setter,
   19934             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19935             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   19936             :   false,  /* isInfallible. False in setters. */
   19937             :   false,  /* isMovable.  Not relevant for setters. */
   19938             :   false, /* isEliminatable.  Not relevant for setters. */
   19939             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19940             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19941             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19942             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19943             : };
   19944             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19945             : static_assert(0 < 1, "There is no slot for us");
   19946             : 
   19947             : static bool
   19948           0 : get__moz_force_broken_image_icon(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   19949             : {
   19950           0 :   binding_detail::FastErrorResult rv;
   19951           0 :   DOMString result;
   19952           0 :   self->GetMozForceBrokenImageIcon(result, rv);
   19953           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19954           0 :     return false;
   19955             :   }
   19956           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19957           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   19958           0 :     return false;
   19959             :   }
   19960           0 :   return true;
   19961             : }
   19962             : 
   19963             : static bool
   19964           0 : set__moz_force_broken_image_icon(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   19965             : {
   19966           0 :   binding_detail::FakeString arg0;
   19967           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   19968           0 :     return false;
   19969             :   }
   19970           0 :   binding_detail::FastErrorResult rv;
   19971           0 :   self->SetMozForceBrokenImageIcon(NonNullHelper(Constify(arg0)), rv);
   19972           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   19973           0 :     return false;
   19974             :   }
   19975           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   19976             : 
   19977           0 :   return true;
   19978             : }
   19979             : 
   19980             : static const JSJitInfo _moz_force_broken_image_icon_getterinfo = {
   19981             :   { (JSJitGetterOp)get__moz_force_broken_image_icon },
   19982             :   { prototypes::id::CSS2Properties },
   19983             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   19984             :   JSJitInfo::Getter,
   19985             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   19986             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   19987             :   false,  /* isInfallible. False in setters. */
   19988             :   false,  /* isMovable.  Not relevant for setters. */
   19989             :   false, /* isEliminatable.  Not relevant for setters. */
   19990             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   19991             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   19992             :   false,  /* isTypedMethod.  Only relevant for methods. */
   19993             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   19994             : };
   19995             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   19996             : static_assert(0 < 1, "There is no slot for us");
   19997             : static const JSJitInfo _moz_force_broken_image_icon_setterinfo = {
   19998             :   { (JSJitGetterOp)set__moz_force_broken_image_icon },
   19999             :   { prototypes::id::CSS2Properties },
   20000             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20001             :   JSJitInfo::Setter,
   20002             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20003             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20004             :   false,  /* isInfallible. False in setters. */
   20005             :   false,  /* isMovable.  Not relevant for setters. */
   20006             :   false, /* isEliminatable.  Not relevant for setters. */
   20007             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20008             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20009             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20010             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20011             : };
   20012             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20013             : static_assert(0 < 1, "There is no slot for us");
   20014             : 
   20015             : static bool
   20016           0 : get_grid(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20017             : {
   20018           0 :   binding_detail::FastErrorResult rv;
   20019           0 :   DOMString result;
   20020           0 :   self->GetGrid(result, rv);
   20021           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20022           0 :     return false;
   20023             :   }
   20024           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20025           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20026           0 :     return false;
   20027             :   }
   20028           0 :   return true;
   20029             : }
   20030             : 
   20031             : static bool
   20032           0 : set_grid(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20033             : {
   20034           0 :   binding_detail::FakeString arg0;
   20035           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20036           0 :     return false;
   20037             :   }
   20038           0 :   binding_detail::FastErrorResult rv;
   20039           0 :   self->SetGrid(NonNullHelper(Constify(arg0)), rv);
   20040           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20041           0 :     return false;
   20042             :   }
   20043           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20044             : 
   20045           0 :   return true;
   20046             : }
   20047             : 
   20048             : static const JSJitInfo grid_getterinfo = {
   20049             :   { (JSJitGetterOp)get_grid },
   20050             :   { prototypes::id::CSS2Properties },
   20051             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20052             :   JSJitInfo::Getter,
   20053             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20054             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20055             :   false,  /* isInfallible. False in setters. */
   20056             :   false,  /* isMovable.  Not relevant for setters. */
   20057             :   false, /* isEliminatable.  Not relevant for setters. */
   20058             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20059             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20060             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20061             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20062             : };
   20063             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20064             : static_assert(0 < 1, "There is no slot for us");
   20065             : static const JSJitInfo grid_setterinfo = {
   20066             :   { (JSJitGetterOp)set_grid },
   20067             :   { prototypes::id::CSS2Properties },
   20068             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20069             :   JSJitInfo::Setter,
   20070             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20071             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20072             :   false,  /* isInfallible. False in setters. */
   20073             :   false,  /* isMovable.  Not relevant for setters. */
   20074             :   false, /* isEliminatable.  Not relevant for setters. */
   20075             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20076             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20077             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20078             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20079             : };
   20080             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20081             : static_assert(0 < 1, "There is no slot for us");
   20082             : 
   20083             : static bool
   20084           0 : get_gridArea(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20085             : {
   20086           0 :   binding_detail::FastErrorResult rv;
   20087           0 :   DOMString result;
   20088           0 :   self->GetGridArea(result, rv);
   20089           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20090           0 :     return false;
   20091             :   }
   20092           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20093           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20094           0 :     return false;
   20095             :   }
   20096           0 :   return true;
   20097             : }
   20098             : 
   20099             : static bool
   20100           0 : set_gridArea(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20101             : {
   20102           0 :   binding_detail::FakeString arg0;
   20103           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20104           0 :     return false;
   20105             :   }
   20106           0 :   binding_detail::FastErrorResult rv;
   20107           0 :   self->SetGridArea(NonNullHelper(Constify(arg0)), rv);
   20108           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20109           0 :     return false;
   20110             :   }
   20111           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20112             : 
   20113           0 :   return true;
   20114             : }
   20115             : 
   20116             : static const JSJitInfo gridArea_getterinfo = {
   20117             :   { (JSJitGetterOp)get_gridArea },
   20118             :   { prototypes::id::CSS2Properties },
   20119             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20120             :   JSJitInfo::Getter,
   20121             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20122             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20123             :   false,  /* isInfallible. False in setters. */
   20124             :   false,  /* isMovable.  Not relevant for setters. */
   20125             :   false, /* isEliminatable.  Not relevant for setters. */
   20126             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20127             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20128             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20129             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20130             : };
   20131             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20132             : static_assert(0 < 1, "There is no slot for us");
   20133             : static const JSJitInfo gridArea_setterinfo = {
   20134             :   { (JSJitGetterOp)set_gridArea },
   20135             :   { prototypes::id::CSS2Properties },
   20136             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20137             :   JSJitInfo::Setter,
   20138             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20139             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20140             :   false,  /* isInfallible. False in setters. */
   20141             :   false,  /* isMovable.  Not relevant for setters. */
   20142             :   false, /* isEliminatable.  Not relevant for setters. */
   20143             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20144             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20145             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20146             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20147             : };
   20148             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20149             : static_assert(0 < 1, "There is no slot for us");
   20150             : 
   20151             : static bool
   20152           0 : get_grid_area(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20153             : {
   20154           0 :   binding_detail::FastErrorResult rv;
   20155           0 :   DOMString result;
   20156           0 :   self->GetGridArea(result, rv);
   20157           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20158           0 :     return false;
   20159             :   }
   20160           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20161           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20162           0 :     return false;
   20163             :   }
   20164           0 :   return true;
   20165             : }
   20166             : 
   20167             : static bool
   20168           0 : set_grid_area(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20169             : {
   20170           0 :   binding_detail::FakeString arg0;
   20171           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20172           0 :     return false;
   20173             :   }
   20174           0 :   binding_detail::FastErrorResult rv;
   20175           0 :   self->SetGridArea(NonNullHelper(Constify(arg0)), rv);
   20176           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20177           0 :     return false;
   20178             :   }
   20179           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20180             : 
   20181           0 :   return true;
   20182             : }
   20183             : 
   20184             : static const JSJitInfo grid_area_getterinfo = {
   20185             :   { (JSJitGetterOp)get_grid_area },
   20186             :   { prototypes::id::CSS2Properties },
   20187             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20188             :   JSJitInfo::Getter,
   20189             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20190             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20191             :   false,  /* isInfallible. False in setters. */
   20192             :   false,  /* isMovable.  Not relevant for setters. */
   20193             :   false, /* isEliminatable.  Not relevant for setters. */
   20194             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20195             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20196             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20197             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20198             : };
   20199             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20200             : static_assert(0 < 1, "There is no slot for us");
   20201             : static const JSJitInfo grid_area_setterinfo = {
   20202             :   { (JSJitGetterOp)set_grid_area },
   20203             :   { prototypes::id::CSS2Properties },
   20204             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20205             :   JSJitInfo::Setter,
   20206             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20207             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20208             :   false,  /* isInfallible. False in setters. */
   20209             :   false,  /* isMovable.  Not relevant for setters. */
   20210             :   false, /* isEliminatable.  Not relevant for setters. */
   20211             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20212             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20213             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20214             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20215             : };
   20216             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20217             : static_assert(0 < 1, "There is no slot for us");
   20218             : 
   20219             : static bool
   20220           0 : get_gridAutoColumns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20221             : {
   20222           0 :   binding_detail::FastErrorResult rv;
   20223           0 :   DOMString result;
   20224           0 :   self->GetGridAutoColumns(result, rv);
   20225           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20226           0 :     return false;
   20227             :   }
   20228           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20229           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20230           0 :     return false;
   20231             :   }
   20232           0 :   return true;
   20233             : }
   20234             : 
   20235             : static bool
   20236           0 : set_gridAutoColumns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20237             : {
   20238           0 :   binding_detail::FakeString arg0;
   20239           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20240           0 :     return false;
   20241             :   }
   20242           0 :   binding_detail::FastErrorResult rv;
   20243           0 :   self->SetGridAutoColumns(NonNullHelper(Constify(arg0)), rv);
   20244           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20245           0 :     return false;
   20246             :   }
   20247           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20248             : 
   20249           0 :   return true;
   20250             : }
   20251             : 
   20252             : static const JSJitInfo gridAutoColumns_getterinfo = {
   20253             :   { (JSJitGetterOp)get_gridAutoColumns },
   20254             :   { prototypes::id::CSS2Properties },
   20255             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20256             :   JSJitInfo::Getter,
   20257             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20258             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20259             :   false,  /* isInfallible. False in setters. */
   20260             :   false,  /* isMovable.  Not relevant for setters. */
   20261             :   false, /* isEliminatable.  Not relevant for setters. */
   20262             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20263             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20264             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20265             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20266             : };
   20267             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20268             : static_assert(0 < 1, "There is no slot for us");
   20269             : static const JSJitInfo gridAutoColumns_setterinfo = {
   20270             :   { (JSJitGetterOp)set_gridAutoColumns },
   20271             :   { prototypes::id::CSS2Properties },
   20272             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20273             :   JSJitInfo::Setter,
   20274             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20275             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20276             :   false,  /* isInfallible. False in setters. */
   20277             :   false,  /* isMovable.  Not relevant for setters. */
   20278             :   false, /* isEliminatable.  Not relevant for setters. */
   20279             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20280             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20281             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20282             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20283             : };
   20284             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20285             : static_assert(0 < 1, "There is no slot for us");
   20286             : 
   20287             : static bool
   20288           0 : get_grid_auto_columns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20289             : {
   20290           0 :   binding_detail::FastErrorResult rv;
   20291           0 :   DOMString result;
   20292           0 :   self->GetGridAutoColumns(result, rv);
   20293           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20294           0 :     return false;
   20295             :   }
   20296           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20297           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20298           0 :     return false;
   20299             :   }
   20300           0 :   return true;
   20301             : }
   20302             : 
   20303             : static bool
   20304           0 : set_grid_auto_columns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20305             : {
   20306           0 :   binding_detail::FakeString arg0;
   20307           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20308           0 :     return false;
   20309             :   }
   20310           0 :   binding_detail::FastErrorResult rv;
   20311           0 :   self->SetGridAutoColumns(NonNullHelper(Constify(arg0)), rv);
   20312           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20313           0 :     return false;
   20314             :   }
   20315           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20316             : 
   20317           0 :   return true;
   20318             : }
   20319             : 
   20320             : static const JSJitInfo grid_auto_columns_getterinfo = {
   20321             :   { (JSJitGetterOp)get_grid_auto_columns },
   20322             :   { prototypes::id::CSS2Properties },
   20323             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20324             :   JSJitInfo::Getter,
   20325             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20326             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20327             :   false,  /* isInfallible. False in setters. */
   20328             :   false,  /* isMovable.  Not relevant for setters. */
   20329             :   false, /* isEliminatable.  Not relevant for setters. */
   20330             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20331             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20332             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20333             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20334             : };
   20335             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20336             : static_assert(0 < 1, "There is no slot for us");
   20337             : static const JSJitInfo grid_auto_columns_setterinfo = {
   20338             :   { (JSJitGetterOp)set_grid_auto_columns },
   20339             :   { prototypes::id::CSS2Properties },
   20340             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20341             :   JSJitInfo::Setter,
   20342             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20343             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20344             :   false,  /* isInfallible. False in setters. */
   20345             :   false,  /* isMovable.  Not relevant for setters. */
   20346             :   false, /* isEliminatable.  Not relevant for setters. */
   20347             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20348             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20349             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20350             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20351             : };
   20352             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20353             : static_assert(0 < 1, "There is no slot for us");
   20354             : 
   20355             : static bool
   20356           0 : get_gridAutoFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20357             : {
   20358           0 :   binding_detail::FastErrorResult rv;
   20359           0 :   DOMString result;
   20360           0 :   self->GetGridAutoFlow(result, rv);
   20361           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20362           0 :     return false;
   20363             :   }
   20364           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20365           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20366           0 :     return false;
   20367             :   }
   20368           0 :   return true;
   20369             : }
   20370             : 
   20371             : static bool
   20372           0 : set_gridAutoFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20373             : {
   20374           0 :   binding_detail::FakeString arg0;
   20375           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20376           0 :     return false;
   20377             :   }
   20378           0 :   binding_detail::FastErrorResult rv;
   20379           0 :   self->SetGridAutoFlow(NonNullHelper(Constify(arg0)), rv);
   20380           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20381           0 :     return false;
   20382             :   }
   20383           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20384             : 
   20385           0 :   return true;
   20386             : }
   20387             : 
   20388             : static const JSJitInfo gridAutoFlow_getterinfo = {
   20389             :   { (JSJitGetterOp)get_gridAutoFlow },
   20390             :   { prototypes::id::CSS2Properties },
   20391             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20392             :   JSJitInfo::Getter,
   20393             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20394             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20395             :   false,  /* isInfallible. False in setters. */
   20396             :   false,  /* isMovable.  Not relevant for setters. */
   20397             :   false, /* isEliminatable.  Not relevant for setters. */
   20398             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20399             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20400             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20401             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20402             : };
   20403             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20404             : static_assert(0 < 1, "There is no slot for us");
   20405             : static const JSJitInfo gridAutoFlow_setterinfo = {
   20406             :   { (JSJitGetterOp)set_gridAutoFlow },
   20407             :   { prototypes::id::CSS2Properties },
   20408             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20409             :   JSJitInfo::Setter,
   20410             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20411             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20412             :   false,  /* isInfallible. False in setters. */
   20413             :   false,  /* isMovable.  Not relevant for setters. */
   20414             :   false, /* isEliminatable.  Not relevant for setters. */
   20415             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20416             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20417             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20418             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20419             : };
   20420             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20421             : static_assert(0 < 1, "There is no slot for us");
   20422             : 
   20423             : static bool
   20424           0 : get_grid_auto_flow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20425             : {
   20426           0 :   binding_detail::FastErrorResult rv;
   20427           0 :   DOMString result;
   20428           0 :   self->GetGridAutoFlow(result, rv);
   20429           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20430           0 :     return false;
   20431             :   }
   20432           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20433           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20434           0 :     return false;
   20435             :   }
   20436           0 :   return true;
   20437             : }
   20438             : 
   20439             : static bool
   20440           0 : set_grid_auto_flow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20441             : {
   20442           0 :   binding_detail::FakeString arg0;
   20443           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20444           0 :     return false;
   20445             :   }
   20446           0 :   binding_detail::FastErrorResult rv;
   20447           0 :   self->SetGridAutoFlow(NonNullHelper(Constify(arg0)), rv);
   20448           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20449           0 :     return false;
   20450             :   }
   20451           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20452             : 
   20453           0 :   return true;
   20454             : }
   20455             : 
   20456             : static const JSJitInfo grid_auto_flow_getterinfo = {
   20457             :   { (JSJitGetterOp)get_grid_auto_flow },
   20458             :   { prototypes::id::CSS2Properties },
   20459             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20460             :   JSJitInfo::Getter,
   20461             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20462             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20463             :   false,  /* isInfallible. False in setters. */
   20464             :   false,  /* isMovable.  Not relevant for setters. */
   20465             :   false, /* isEliminatable.  Not relevant for setters. */
   20466             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20467             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20468             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20469             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20470             : };
   20471             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20472             : static_assert(0 < 1, "There is no slot for us");
   20473             : static const JSJitInfo grid_auto_flow_setterinfo = {
   20474             :   { (JSJitGetterOp)set_grid_auto_flow },
   20475             :   { prototypes::id::CSS2Properties },
   20476             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20477             :   JSJitInfo::Setter,
   20478             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20479             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20480             :   false,  /* isInfallible. False in setters. */
   20481             :   false,  /* isMovable.  Not relevant for setters. */
   20482             :   false, /* isEliminatable.  Not relevant for setters. */
   20483             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20484             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20485             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20486             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20487             : };
   20488             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20489             : static_assert(0 < 1, "There is no slot for us");
   20490             : 
   20491             : static bool
   20492           0 : get_gridAutoRows(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20493             : {
   20494           0 :   binding_detail::FastErrorResult rv;
   20495           0 :   DOMString result;
   20496           0 :   self->GetGridAutoRows(result, rv);
   20497           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20498           0 :     return false;
   20499             :   }
   20500           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20501           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20502           0 :     return false;
   20503             :   }
   20504           0 :   return true;
   20505             : }
   20506             : 
   20507             : static bool
   20508           0 : set_gridAutoRows(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20509             : {
   20510           0 :   binding_detail::FakeString arg0;
   20511           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20512           0 :     return false;
   20513             :   }
   20514           0 :   binding_detail::FastErrorResult rv;
   20515           0 :   self->SetGridAutoRows(NonNullHelper(Constify(arg0)), rv);
   20516           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20517           0 :     return false;
   20518             :   }
   20519           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20520             : 
   20521           0 :   return true;
   20522             : }
   20523             : 
   20524             : static const JSJitInfo gridAutoRows_getterinfo = {
   20525             :   { (JSJitGetterOp)get_gridAutoRows },
   20526             :   { prototypes::id::CSS2Properties },
   20527             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20528             :   JSJitInfo::Getter,
   20529             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20530             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20531             :   false,  /* isInfallible. False in setters. */
   20532             :   false,  /* isMovable.  Not relevant for setters. */
   20533             :   false, /* isEliminatable.  Not relevant for setters. */
   20534             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20535             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20536             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20537             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20538             : };
   20539             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20540             : static_assert(0 < 1, "There is no slot for us");
   20541             : static const JSJitInfo gridAutoRows_setterinfo = {
   20542             :   { (JSJitGetterOp)set_gridAutoRows },
   20543             :   { prototypes::id::CSS2Properties },
   20544             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20545             :   JSJitInfo::Setter,
   20546             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20547             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20548             :   false,  /* isInfallible. False in setters. */
   20549             :   false,  /* isMovable.  Not relevant for setters. */
   20550             :   false, /* isEliminatable.  Not relevant for setters. */
   20551             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20552             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20553             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20554             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20555             : };
   20556             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20557             : static_assert(0 < 1, "There is no slot for us");
   20558             : 
   20559             : static bool
   20560           0 : get_grid_auto_rows(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20561             : {
   20562           0 :   binding_detail::FastErrorResult rv;
   20563           0 :   DOMString result;
   20564           0 :   self->GetGridAutoRows(result, rv);
   20565           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20566           0 :     return false;
   20567             :   }
   20568           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20569           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20570           0 :     return false;
   20571             :   }
   20572           0 :   return true;
   20573             : }
   20574             : 
   20575             : static bool
   20576           0 : set_grid_auto_rows(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20577             : {
   20578           0 :   binding_detail::FakeString arg0;
   20579           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20580           0 :     return false;
   20581             :   }
   20582           0 :   binding_detail::FastErrorResult rv;
   20583           0 :   self->SetGridAutoRows(NonNullHelper(Constify(arg0)), rv);
   20584           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20585           0 :     return false;
   20586             :   }
   20587           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20588             : 
   20589           0 :   return true;
   20590             : }
   20591             : 
   20592             : static const JSJitInfo grid_auto_rows_getterinfo = {
   20593             :   { (JSJitGetterOp)get_grid_auto_rows },
   20594             :   { prototypes::id::CSS2Properties },
   20595             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20596             :   JSJitInfo::Getter,
   20597             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20598             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20599             :   false,  /* isInfallible. False in setters. */
   20600             :   false,  /* isMovable.  Not relevant for setters. */
   20601             :   false, /* isEliminatable.  Not relevant for setters. */
   20602             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20603             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20604             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20605             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20606             : };
   20607             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20608             : static_assert(0 < 1, "There is no slot for us");
   20609             : static const JSJitInfo grid_auto_rows_setterinfo = {
   20610             :   { (JSJitGetterOp)set_grid_auto_rows },
   20611             :   { prototypes::id::CSS2Properties },
   20612             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20613             :   JSJitInfo::Setter,
   20614             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20615             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20616             :   false,  /* isInfallible. False in setters. */
   20617             :   false,  /* isMovable.  Not relevant for setters. */
   20618             :   false, /* isEliminatable.  Not relevant for setters. */
   20619             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20620             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20621             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20622             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20623             : };
   20624             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20625             : static_assert(0 < 1, "There is no slot for us");
   20626             : 
   20627             : static bool
   20628           0 : get_gridColumn(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20629             : {
   20630           0 :   binding_detail::FastErrorResult rv;
   20631           0 :   DOMString result;
   20632           0 :   self->GetGridColumn(result, rv);
   20633           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20634           0 :     return false;
   20635             :   }
   20636           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20637           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20638           0 :     return false;
   20639             :   }
   20640           0 :   return true;
   20641             : }
   20642             : 
   20643             : static bool
   20644           0 : set_gridColumn(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20645             : {
   20646           0 :   binding_detail::FakeString arg0;
   20647           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20648           0 :     return false;
   20649             :   }
   20650           0 :   binding_detail::FastErrorResult rv;
   20651           0 :   self->SetGridColumn(NonNullHelper(Constify(arg0)), rv);
   20652           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20653           0 :     return false;
   20654             :   }
   20655           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20656             : 
   20657           0 :   return true;
   20658             : }
   20659             : 
   20660             : static const JSJitInfo gridColumn_getterinfo = {
   20661             :   { (JSJitGetterOp)get_gridColumn },
   20662             :   { prototypes::id::CSS2Properties },
   20663             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20664             :   JSJitInfo::Getter,
   20665             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20666             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20667             :   false,  /* isInfallible. False in setters. */
   20668             :   false,  /* isMovable.  Not relevant for setters. */
   20669             :   false, /* isEliminatable.  Not relevant for setters. */
   20670             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20671             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20672             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20673             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20674             : };
   20675             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20676             : static_assert(0 < 1, "There is no slot for us");
   20677             : static const JSJitInfo gridColumn_setterinfo = {
   20678             :   { (JSJitGetterOp)set_gridColumn },
   20679             :   { prototypes::id::CSS2Properties },
   20680             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20681             :   JSJitInfo::Setter,
   20682             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20683             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20684             :   false,  /* isInfallible. False in setters. */
   20685             :   false,  /* isMovable.  Not relevant for setters. */
   20686             :   false, /* isEliminatable.  Not relevant for setters. */
   20687             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20688             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20689             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20690             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20691             : };
   20692             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20693             : static_assert(0 < 1, "There is no slot for us");
   20694             : 
   20695             : static bool
   20696           0 : get_grid_column(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20697             : {
   20698           0 :   binding_detail::FastErrorResult rv;
   20699           0 :   DOMString result;
   20700           0 :   self->GetGridColumn(result, rv);
   20701           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20702           0 :     return false;
   20703             :   }
   20704           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20705           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20706           0 :     return false;
   20707             :   }
   20708           0 :   return true;
   20709             : }
   20710             : 
   20711             : static bool
   20712           0 : set_grid_column(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20713             : {
   20714           0 :   binding_detail::FakeString arg0;
   20715           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20716           0 :     return false;
   20717             :   }
   20718           0 :   binding_detail::FastErrorResult rv;
   20719           0 :   self->SetGridColumn(NonNullHelper(Constify(arg0)), rv);
   20720           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20721           0 :     return false;
   20722             :   }
   20723           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20724             : 
   20725           0 :   return true;
   20726             : }
   20727             : 
   20728             : static const JSJitInfo grid_column_getterinfo = {
   20729             :   { (JSJitGetterOp)get_grid_column },
   20730             :   { prototypes::id::CSS2Properties },
   20731             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20732             :   JSJitInfo::Getter,
   20733             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20734             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20735             :   false,  /* isInfallible. False in setters. */
   20736             :   false,  /* isMovable.  Not relevant for setters. */
   20737             :   false, /* isEliminatable.  Not relevant for setters. */
   20738             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20739             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20740             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20741             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20742             : };
   20743             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20744             : static_assert(0 < 1, "There is no slot for us");
   20745             : static const JSJitInfo grid_column_setterinfo = {
   20746             :   { (JSJitGetterOp)set_grid_column },
   20747             :   { prototypes::id::CSS2Properties },
   20748             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20749             :   JSJitInfo::Setter,
   20750             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20751             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20752             :   false,  /* isInfallible. False in setters. */
   20753             :   false,  /* isMovable.  Not relevant for setters. */
   20754             :   false, /* isEliminatable.  Not relevant for setters. */
   20755             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20756             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20757             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20758             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20759             : };
   20760             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20761             : static_assert(0 < 1, "There is no slot for us");
   20762             : 
   20763             : static bool
   20764           0 : get_gridColumnEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20765             : {
   20766           0 :   binding_detail::FastErrorResult rv;
   20767           0 :   DOMString result;
   20768           0 :   self->GetGridColumnEnd(result, rv);
   20769           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20770           0 :     return false;
   20771             :   }
   20772           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20773           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20774           0 :     return false;
   20775             :   }
   20776           0 :   return true;
   20777             : }
   20778             : 
   20779             : static bool
   20780           0 : set_gridColumnEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20781             : {
   20782           0 :   binding_detail::FakeString arg0;
   20783           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20784           0 :     return false;
   20785             :   }
   20786           0 :   binding_detail::FastErrorResult rv;
   20787           0 :   self->SetGridColumnEnd(NonNullHelper(Constify(arg0)), rv);
   20788           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20789           0 :     return false;
   20790             :   }
   20791           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20792             : 
   20793           0 :   return true;
   20794             : }
   20795             : 
   20796             : static const JSJitInfo gridColumnEnd_getterinfo = {
   20797             :   { (JSJitGetterOp)get_gridColumnEnd },
   20798             :   { prototypes::id::CSS2Properties },
   20799             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20800             :   JSJitInfo::Getter,
   20801             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20802             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20803             :   false,  /* isInfallible. False in setters. */
   20804             :   false,  /* isMovable.  Not relevant for setters. */
   20805             :   false, /* isEliminatable.  Not relevant for setters. */
   20806             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20807             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20808             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20809             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20810             : };
   20811             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20812             : static_assert(0 < 1, "There is no slot for us");
   20813             : static const JSJitInfo gridColumnEnd_setterinfo = {
   20814             :   { (JSJitGetterOp)set_gridColumnEnd },
   20815             :   { prototypes::id::CSS2Properties },
   20816             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20817             :   JSJitInfo::Setter,
   20818             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20819             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20820             :   false,  /* isInfallible. False in setters. */
   20821             :   false,  /* isMovable.  Not relevant for setters. */
   20822             :   false, /* isEliminatable.  Not relevant for setters. */
   20823             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20824             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20825             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20826             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20827             : };
   20828             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20829             : static_assert(0 < 1, "There is no slot for us");
   20830             : 
   20831             : static bool
   20832           0 : get_grid_column_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20833             : {
   20834           0 :   binding_detail::FastErrorResult rv;
   20835           0 :   DOMString result;
   20836           0 :   self->GetGridColumnEnd(result, rv);
   20837           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20838           0 :     return false;
   20839             :   }
   20840           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20841           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20842           0 :     return false;
   20843             :   }
   20844           0 :   return true;
   20845             : }
   20846             : 
   20847             : static bool
   20848           0 : set_grid_column_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20849             : {
   20850           0 :   binding_detail::FakeString arg0;
   20851           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20852           0 :     return false;
   20853             :   }
   20854           0 :   binding_detail::FastErrorResult rv;
   20855           0 :   self->SetGridColumnEnd(NonNullHelper(Constify(arg0)), rv);
   20856           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20857           0 :     return false;
   20858             :   }
   20859           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20860             : 
   20861           0 :   return true;
   20862             : }
   20863             : 
   20864             : static const JSJitInfo grid_column_end_getterinfo = {
   20865             :   { (JSJitGetterOp)get_grid_column_end },
   20866             :   { prototypes::id::CSS2Properties },
   20867             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20868             :   JSJitInfo::Getter,
   20869             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20870             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20871             :   false,  /* isInfallible. False in setters. */
   20872             :   false,  /* isMovable.  Not relevant for setters. */
   20873             :   false, /* isEliminatable.  Not relevant for setters. */
   20874             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20875             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20876             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20877             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20878             : };
   20879             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20880             : static_assert(0 < 1, "There is no slot for us");
   20881             : static const JSJitInfo grid_column_end_setterinfo = {
   20882             :   { (JSJitGetterOp)set_grid_column_end },
   20883             :   { prototypes::id::CSS2Properties },
   20884             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20885             :   JSJitInfo::Setter,
   20886             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20887             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20888             :   false,  /* isInfallible. False in setters. */
   20889             :   false,  /* isMovable.  Not relevant for setters. */
   20890             :   false, /* isEliminatable.  Not relevant for setters. */
   20891             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20892             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20893             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20894             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20895             : };
   20896             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20897             : static_assert(0 < 1, "There is no slot for us");
   20898             : 
   20899             : static bool
   20900           0 : get_gridColumnGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20901             : {
   20902           0 :   binding_detail::FastErrorResult rv;
   20903           0 :   DOMString result;
   20904           0 :   self->GetGridColumnGap(result, rv);
   20905           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20906           0 :     return false;
   20907             :   }
   20908           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20909           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20910           0 :     return false;
   20911             :   }
   20912           0 :   return true;
   20913             : }
   20914             : 
   20915             : static bool
   20916           0 : set_gridColumnGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20917             : {
   20918           0 :   binding_detail::FakeString arg0;
   20919           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20920           0 :     return false;
   20921             :   }
   20922           0 :   binding_detail::FastErrorResult rv;
   20923           0 :   self->SetGridColumnGap(NonNullHelper(Constify(arg0)), rv);
   20924           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20925           0 :     return false;
   20926             :   }
   20927           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20928             : 
   20929           0 :   return true;
   20930             : }
   20931             : 
   20932             : static const JSJitInfo gridColumnGap_getterinfo = {
   20933             :   { (JSJitGetterOp)get_gridColumnGap },
   20934             :   { prototypes::id::CSS2Properties },
   20935             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20936             :   JSJitInfo::Getter,
   20937             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20938             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   20939             :   false,  /* isInfallible. False in setters. */
   20940             :   false,  /* isMovable.  Not relevant for setters. */
   20941             :   false, /* isEliminatable.  Not relevant for setters. */
   20942             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20943             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20944             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20945             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20946             : };
   20947             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20948             : static_assert(0 < 1, "There is no slot for us");
   20949             : static const JSJitInfo gridColumnGap_setterinfo = {
   20950             :   { (JSJitGetterOp)set_gridColumnGap },
   20951             :   { prototypes::id::CSS2Properties },
   20952             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   20953             :   JSJitInfo::Setter,
   20954             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   20955             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   20956             :   false,  /* isInfallible. False in setters. */
   20957             :   false,  /* isMovable.  Not relevant for setters. */
   20958             :   false, /* isEliminatable.  Not relevant for setters. */
   20959             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   20960             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   20961             :   false,  /* isTypedMethod.  Only relevant for methods. */
   20962             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   20963             : };
   20964             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   20965             : static_assert(0 < 1, "There is no slot for us");
   20966             : 
   20967             : static bool
   20968           0 : get_grid_column_gap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   20969             : {
   20970           0 :   binding_detail::FastErrorResult rv;
   20971           0 :   DOMString result;
   20972           0 :   self->GetGridColumnGap(result, rv);
   20973           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20974           0 :     return false;
   20975             :   }
   20976           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20977           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   20978           0 :     return false;
   20979             :   }
   20980           0 :   return true;
   20981             : }
   20982             : 
   20983             : static bool
   20984           0 : set_grid_column_gap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   20985             : {
   20986           0 :   binding_detail::FakeString arg0;
   20987           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   20988           0 :     return false;
   20989             :   }
   20990           0 :   binding_detail::FastErrorResult rv;
   20991           0 :   self->SetGridColumnGap(NonNullHelper(Constify(arg0)), rv);
   20992           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   20993           0 :     return false;
   20994             :   }
   20995           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   20996             : 
   20997           0 :   return true;
   20998             : }
   20999             : 
   21000             : static const JSJitInfo grid_column_gap_getterinfo = {
   21001             :   { (JSJitGetterOp)get_grid_column_gap },
   21002             :   { prototypes::id::CSS2Properties },
   21003             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21004             :   JSJitInfo::Getter,
   21005             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21006             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21007             :   false,  /* isInfallible. False in setters. */
   21008             :   false,  /* isMovable.  Not relevant for setters. */
   21009             :   false, /* isEliminatable.  Not relevant for setters. */
   21010             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21011             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21012             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21013             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21014             : };
   21015             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21016             : static_assert(0 < 1, "There is no slot for us");
   21017             : static const JSJitInfo grid_column_gap_setterinfo = {
   21018             :   { (JSJitGetterOp)set_grid_column_gap },
   21019             :   { prototypes::id::CSS2Properties },
   21020             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21021             :   JSJitInfo::Setter,
   21022             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21023             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21024             :   false,  /* isInfallible. False in setters. */
   21025             :   false,  /* isMovable.  Not relevant for setters. */
   21026             :   false, /* isEliminatable.  Not relevant for setters. */
   21027             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21028             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21029             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21030             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21031             : };
   21032             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21033             : static_assert(0 < 1, "There is no slot for us");
   21034             : 
   21035             : static bool
   21036           0 : get_gridColumnStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21037             : {
   21038           0 :   binding_detail::FastErrorResult rv;
   21039           0 :   DOMString result;
   21040           0 :   self->GetGridColumnStart(result, rv);
   21041           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21042           0 :     return false;
   21043             :   }
   21044           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21045           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21046           0 :     return false;
   21047             :   }
   21048           0 :   return true;
   21049             : }
   21050             : 
   21051             : static bool
   21052           0 : set_gridColumnStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21053             : {
   21054           0 :   binding_detail::FakeString arg0;
   21055           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21056           0 :     return false;
   21057             :   }
   21058           0 :   binding_detail::FastErrorResult rv;
   21059           0 :   self->SetGridColumnStart(NonNullHelper(Constify(arg0)), rv);
   21060           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21061           0 :     return false;
   21062             :   }
   21063           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21064             : 
   21065           0 :   return true;
   21066             : }
   21067             : 
   21068             : static const JSJitInfo gridColumnStart_getterinfo = {
   21069             :   { (JSJitGetterOp)get_gridColumnStart },
   21070             :   { prototypes::id::CSS2Properties },
   21071             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21072             :   JSJitInfo::Getter,
   21073             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21074             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21075             :   false,  /* isInfallible. False in setters. */
   21076             :   false,  /* isMovable.  Not relevant for setters. */
   21077             :   false, /* isEliminatable.  Not relevant for setters. */
   21078             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21079             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21080             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21081             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21082             : };
   21083             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21084             : static_assert(0 < 1, "There is no slot for us");
   21085             : static const JSJitInfo gridColumnStart_setterinfo = {
   21086             :   { (JSJitGetterOp)set_gridColumnStart },
   21087             :   { prototypes::id::CSS2Properties },
   21088             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21089             :   JSJitInfo::Setter,
   21090             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21091             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21092             :   false,  /* isInfallible. False in setters. */
   21093             :   false,  /* isMovable.  Not relevant for setters. */
   21094             :   false, /* isEliminatable.  Not relevant for setters. */
   21095             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21096             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21097             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21098             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21099             : };
   21100             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21101             : static_assert(0 < 1, "There is no slot for us");
   21102             : 
   21103             : static bool
   21104           0 : get_grid_column_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21105             : {
   21106           0 :   binding_detail::FastErrorResult rv;
   21107           0 :   DOMString result;
   21108           0 :   self->GetGridColumnStart(result, rv);
   21109           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21110           0 :     return false;
   21111             :   }
   21112           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21113           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21114           0 :     return false;
   21115             :   }
   21116           0 :   return true;
   21117             : }
   21118             : 
   21119             : static bool
   21120           0 : set_grid_column_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21121             : {
   21122           0 :   binding_detail::FakeString arg0;
   21123           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21124           0 :     return false;
   21125             :   }
   21126           0 :   binding_detail::FastErrorResult rv;
   21127           0 :   self->SetGridColumnStart(NonNullHelper(Constify(arg0)), rv);
   21128           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21129           0 :     return false;
   21130             :   }
   21131           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21132             : 
   21133           0 :   return true;
   21134             : }
   21135             : 
   21136             : static const JSJitInfo grid_column_start_getterinfo = {
   21137             :   { (JSJitGetterOp)get_grid_column_start },
   21138             :   { prototypes::id::CSS2Properties },
   21139             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21140             :   JSJitInfo::Getter,
   21141             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21142             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21143             :   false,  /* isInfallible. False in setters. */
   21144             :   false,  /* isMovable.  Not relevant for setters. */
   21145             :   false, /* isEliminatable.  Not relevant for setters. */
   21146             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21147             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21148             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21149             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21150             : };
   21151             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21152             : static_assert(0 < 1, "There is no slot for us");
   21153             : static const JSJitInfo grid_column_start_setterinfo = {
   21154             :   { (JSJitGetterOp)set_grid_column_start },
   21155             :   { prototypes::id::CSS2Properties },
   21156             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21157             :   JSJitInfo::Setter,
   21158             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21159             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21160             :   false,  /* isInfallible. False in setters. */
   21161             :   false,  /* isMovable.  Not relevant for setters. */
   21162             :   false, /* isEliminatable.  Not relevant for setters. */
   21163             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21164             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21165             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21166             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21167             : };
   21168             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21169             : static_assert(0 < 1, "There is no slot for us");
   21170             : 
   21171             : static bool
   21172           0 : get_gridGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21173             : {
   21174           0 :   binding_detail::FastErrorResult rv;
   21175           0 :   DOMString result;
   21176           0 :   self->GetGridGap(result, rv);
   21177           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21178           0 :     return false;
   21179             :   }
   21180           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21181           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21182           0 :     return false;
   21183             :   }
   21184           0 :   return true;
   21185             : }
   21186             : 
   21187             : static bool
   21188           0 : set_gridGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21189             : {
   21190           0 :   binding_detail::FakeString arg0;
   21191           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21192           0 :     return false;
   21193             :   }
   21194           0 :   binding_detail::FastErrorResult rv;
   21195           0 :   self->SetGridGap(NonNullHelper(Constify(arg0)), rv);
   21196           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21197           0 :     return false;
   21198             :   }
   21199           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21200             : 
   21201           0 :   return true;
   21202             : }
   21203             : 
   21204             : static const JSJitInfo gridGap_getterinfo = {
   21205             :   { (JSJitGetterOp)get_gridGap },
   21206             :   { prototypes::id::CSS2Properties },
   21207             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21208             :   JSJitInfo::Getter,
   21209             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21210             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21211             :   false,  /* isInfallible. False in setters. */
   21212             :   false,  /* isMovable.  Not relevant for setters. */
   21213             :   false, /* isEliminatable.  Not relevant for setters. */
   21214             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21215             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21216             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21217             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21218             : };
   21219             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21220             : static_assert(0 < 1, "There is no slot for us");
   21221             : static const JSJitInfo gridGap_setterinfo = {
   21222             :   { (JSJitGetterOp)set_gridGap },
   21223             :   { prototypes::id::CSS2Properties },
   21224             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21225             :   JSJitInfo::Setter,
   21226             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21227             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21228             :   false,  /* isInfallible. False in setters. */
   21229             :   false,  /* isMovable.  Not relevant for setters. */
   21230             :   false, /* isEliminatable.  Not relevant for setters. */
   21231             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21232             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21233             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21234             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21235             : };
   21236             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21237             : static_assert(0 < 1, "There is no slot for us");
   21238             : 
   21239             : static bool
   21240           0 : get_grid_gap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21241             : {
   21242           0 :   binding_detail::FastErrorResult rv;
   21243           0 :   DOMString result;
   21244           0 :   self->GetGridGap(result, rv);
   21245           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21246           0 :     return false;
   21247             :   }
   21248           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21249           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21250           0 :     return false;
   21251             :   }
   21252           0 :   return true;
   21253             : }
   21254             : 
   21255             : static bool
   21256           0 : set_grid_gap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21257             : {
   21258           0 :   binding_detail::FakeString arg0;
   21259           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21260           0 :     return false;
   21261             :   }
   21262           0 :   binding_detail::FastErrorResult rv;
   21263           0 :   self->SetGridGap(NonNullHelper(Constify(arg0)), rv);
   21264           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21265           0 :     return false;
   21266             :   }
   21267           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21268             : 
   21269           0 :   return true;
   21270             : }
   21271             : 
   21272             : static const JSJitInfo grid_gap_getterinfo = {
   21273             :   { (JSJitGetterOp)get_grid_gap },
   21274             :   { prototypes::id::CSS2Properties },
   21275             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21276             :   JSJitInfo::Getter,
   21277             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21278             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21279             :   false,  /* isInfallible. False in setters. */
   21280             :   false,  /* isMovable.  Not relevant for setters. */
   21281             :   false, /* isEliminatable.  Not relevant for setters. */
   21282             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21283             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21284             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21285             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21286             : };
   21287             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21288             : static_assert(0 < 1, "There is no slot for us");
   21289             : static const JSJitInfo grid_gap_setterinfo = {
   21290             :   { (JSJitGetterOp)set_grid_gap },
   21291             :   { prototypes::id::CSS2Properties },
   21292             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21293             :   JSJitInfo::Setter,
   21294             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21295             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21296             :   false,  /* isInfallible. False in setters. */
   21297             :   false,  /* isMovable.  Not relevant for setters. */
   21298             :   false, /* isEliminatable.  Not relevant for setters. */
   21299             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21300             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21301             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21302             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21303             : };
   21304             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21305             : static_assert(0 < 1, "There is no slot for us");
   21306             : 
   21307             : static bool
   21308           0 : get_gridRow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21309             : {
   21310           0 :   binding_detail::FastErrorResult rv;
   21311           0 :   DOMString result;
   21312           0 :   self->GetGridRow(result, rv);
   21313           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21314           0 :     return false;
   21315             :   }
   21316           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21317           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21318           0 :     return false;
   21319             :   }
   21320           0 :   return true;
   21321             : }
   21322             : 
   21323             : static bool
   21324           0 : set_gridRow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21325             : {
   21326           0 :   binding_detail::FakeString arg0;
   21327           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21328           0 :     return false;
   21329             :   }
   21330           0 :   binding_detail::FastErrorResult rv;
   21331           0 :   self->SetGridRow(NonNullHelper(Constify(arg0)), rv);
   21332           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21333           0 :     return false;
   21334             :   }
   21335           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21336             : 
   21337           0 :   return true;
   21338             : }
   21339             : 
   21340             : static const JSJitInfo gridRow_getterinfo = {
   21341             :   { (JSJitGetterOp)get_gridRow },
   21342             :   { prototypes::id::CSS2Properties },
   21343             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21344             :   JSJitInfo::Getter,
   21345             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21346             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21347             :   false,  /* isInfallible. False in setters. */
   21348             :   false,  /* isMovable.  Not relevant for setters. */
   21349             :   false, /* isEliminatable.  Not relevant for setters. */
   21350             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21351             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21352             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21353             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21354             : };
   21355             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21356             : static_assert(0 < 1, "There is no slot for us");
   21357             : static const JSJitInfo gridRow_setterinfo = {
   21358             :   { (JSJitGetterOp)set_gridRow },
   21359             :   { prototypes::id::CSS2Properties },
   21360             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21361             :   JSJitInfo::Setter,
   21362             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21363             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21364             :   false,  /* isInfallible. False in setters. */
   21365             :   false,  /* isMovable.  Not relevant for setters. */
   21366             :   false, /* isEliminatable.  Not relevant for setters. */
   21367             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21368             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21369             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21370             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21371             : };
   21372             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21373             : static_assert(0 < 1, "There is no slot for us");
   21374             : 
   21375             : static bool
   21376           0 : get_grid_row(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21377             : {
   21378           0 :   binding_detail::FastErrorResult rv;
   21379           0 :   DOMString result;
   21380           0 :   self->GetGridRow(result, rv);
   21381           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21382           0 :     return false;
   21383             :   }
   21384           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21385           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21386           0 :     return false;
   21387             :   }
   21388           0 :   return true;
   21389             : }
   21390             : 
   21391             : static bool
   21392           0 : set_grid_row(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21393             : {
   21394           0 :   binding_detail::FakeString arg0;
   21395           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21396           0 :     return false;
   21397             :   }
   21398           0 :   binding_detail::FastErrorResult rv;
   21399           0 :   self->SetGridRow(NonNullHelper(Constify(arg0)), rv);
   21400           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21401           0 :     return false;
   21402             :   }
   21403           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21404             : 
   21405           0 :   return true;
   21406             : }
   21407             : 
   21408             : static const JSJitInfo grid_row_getterinfo = {
   21409             :   { (JSJitGetterOp)get_grid_row },
   21410             :   { prototypes::id::CSS2Properties },
   21411             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21412             :   JSJitInfo::Getter,
   21413             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21414             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21415             :   false,  /* isInfallible. False in setters. */
   21416             :   false,  /* isMovable.  Not relevant for setters. */
   21417             :   false, /* isEliminatable.  Not relevant for setters. */
   21418             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21419             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21420             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21421             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21422             : };
   21423             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21424             : static_assert(0 < 1, "There is no slot for us");
   21425             : static const JSJitInfo grid_row_setterinfo = {
   21426             :   { (JSJitGetterOp)set_grid_row },
   21427             :   { prototypes::id::CSS2Properties },
   21428             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21429             :   JSJitInfo::Setter,
   21430             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21431             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21432             :   false,  /* isInfallible. False in setters. */
   21433             :   false,  /* isMovable.  Not relevant for setters. */
   21434             :   false, /* isEliminatable.  Not relevant for setters. */
   21435             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21436             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21437             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21438             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21439             : };
   21440             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21441             : static_assert(0 < 1, "There is no slot for us");
   21442             : 
   21443             : static bool
   21444           0 : get_gridRowEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21445             : {
   21446           0 :   binding_detail::FastErrorResult rv;
   21447           0 :   DOMString result;
   21448           0 :   self->GetGridRowEnd(result, rv);
   21449           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21450           0 :     return false;
   21451             :   }
   21452           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21453           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21454           0 :     return false;
   21455             :   }
   21456           0 :   return true;
   21457             : }
   21458             : 
   21459             : static bool
   21460           0 : set_gridRowEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21461             : {
   21462           0 :   binding_detail::FakeString arg0;
   21463           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21464           0 :     return false;
   21465             :   }
   21466           0 :   binding_detail::FastErrorResult rv;
   21467           0 :   self->SetGridRowEnd(NonNullHelper(Constify(arg0)), rv);
   21468           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21469           0 :     return false;
   21470             :   }
   21471           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21472             : 
   21473           0 :   return true;
   21474             : }
   21475             : 
   21476             : static const JSJitInfo gridRowEnd_getterinfo = {
   21477             :   { (JSJitGetterOp)get_gridRowEnd },
   21478             :   { prototypes::id::CSS2Properties },
   21479             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21480             :   JSJitInfo::Getter,
   21481             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21482             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21483             :   false,  /* isInfallible. False in setters. */
   21484             :   false,  /* isMovable.  Not relevant for setters. */
   21485             :   false, /* isEliminatable.  Not relevant for setters. */
   21486             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21487             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21488             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21489             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21490             : };
   21491             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21492             : static_assert(0 < 1, "There is no slot for us");
   21493             : static const JSJitInfo gridRowEnd_setterinfo = {
   21494             :   { (JSJitGetterOp)set_gridRowEnd },
   21495             :   { prototypes::id::CSS2Properties },
   21496             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21497             :   JSJitInfo::Setter,
   21498             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21499             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21500             :   false,  /* isInfallible. False in setters. */
   21501             :   false,  /* isMovable.  Not relevant for setters. */
   21502             :   false, /* isEliminatable.  Not relevant for setters. */
   21503             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21504             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21505             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21506             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21507             : };
   21508             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21509             : static_assert(0 < 1, "There is no slot for us");
   21510             : 
   21511             : static bool
   21512           0 : get_grid_row_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21513             : {
   21514           0 :   binding_detail::FastErrorResult rv;
   21515           0 :   DOMString result;
   21516           0 :   self->GetGridRowEnd(result, rv);
   21517           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21518           0 :     return false;
   21519             :   }
   21520           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21521           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21522           0 :     return false;
   21523             :   }
   21524           0 :   return true;
   21525             : }
   21526             : 
   21527             : static bool
   21528           0 : set_grid_row_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21529             : {
   21530           0 :   binding_detail::FakeString arg0;
   21531           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21532           0 :     return false;
   21533             :   }
   21534           0 :   binding_detail::FastErrorResult rv;
   21535           0 :   self->SetGridRowEnd(NonNullHelper(Constify(arg0)), rv);
   21536           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21537           0 :     return false;
   21538             :   }
   21539           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21540             : 
   21541           0 :   return true;
   21542             : }
   21543             : 
   21544             : static const JSJitInfo grid_row_end_getterinfo = {
   21545             :   { (JSJitGetterOp)get_grid_row_end },
   21546             :   { prototypes::id::CSS2Properties },
   21547             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21548             :   JSJitInfo::Getter,
   21549             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21550             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21551             :   false,  /* isInfallible. False in setters. */
   21552             :   false,  /* isMovable.  Not relevant for setters. */
   21553             :   false, /* isEliminatable.  Not relevant for setters. */
   21554             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21555             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21556             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21557             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21558             : };
   21559             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21560             : static_assert(0 < 1, "There is no slot for us");
   21561             : static const JSJitInfo grid_row_end_setterinfo = {
   21562             :   { (JSJitGetterOp)set_grid_row_end },
   21563             :   { prototypes::id::CSS2Properties },
   21564             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21565             :   JSJitInfo::Setter,
   21566             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21567             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21568             :   false,  /* isInfallible. False in setters. */
   21569             :   false,  /* isMovable.  Not relevant for setters. */
   21570             :   false, /* isEliminatable.  Not relevant for setters. */
   21571             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21572             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21573             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21574             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21575             : };
   21576             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21577             : static_assert(0 < 1, "There is no slot for us");
   21578             : 
   21579             : static bool
   21580           0 : get_gridRowGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21581             : {
   21582           0 :   binding_detail::FastErrorResult rv;
   21583           0 :   DOMString result;
   21584           0 :   self->GetGridRowGap(result, rv);
   21585           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21586           0 :     return false;
   21587             :   }
   21588           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21589           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21590           0 :     return false;
   21591             :   }
   21592           0 :   return true;
   21593             : }
   21594             : 
   21595             : static bool
   21596           0 : set_gridRowGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21597             : {
   21598           0 :   binding_detail::FakeString arg0;
   21599           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21600           0 :     return false;
   21601             :   }
   21602           0 :   binding_detail::FastErrorResult rv;
   21603           0 :   self->SetGridRowGap(NonNullHelper(Constify(arg0)), rv);
   21604           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21605           0 :     return false;
   21606             :   }
   21607           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21608             : 
   21609           0 :   return true;
   21610             : }
   21611             : 
   21612             : static const JSJitInfo gridRowGap_getterinfo = {
   21613             :   { (JSJitGetterOp)get_gridRowGap },
   21614             :   { prototypes::id::CSS2Properties },
   21615             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21616             :   JSJitInfo::Getter,
   21617             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21618             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21619             :   false,  /* isInfallible. False in setters. */
   21620             :   false,  /* isMovable.  Not relevant for setters. */
   21621             :   false, /* isEliminatable.  Not relevant for setters. */
   21622             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21623             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21624             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21625             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21626             : };
   21627             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21628             : static_assert(0 < 1, "There is no slot for us");
   21629             : static const JSJitInfo gridRowGap_setterinfo = {
   21630             :   { (JSJitGetterOp)set_gridRowGap },
   21631             :   { prototypes::id::CSS2Properties },
   21632             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21633             :   JSJitInfo::Setter,
   21634             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21635             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21636             :   false,  /* isInfallible. False in setters. */
   21637             :   false,  /* isMovable.  Not relevant for setters. */
   21638             :   false, /* isEliminatable.  Not relevant for setters. */
   21639             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21640             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21641             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21642             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21643             : };
   21644             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21645             : static_assert(0 < 1, "There is no slot for us");
   21646             : 
   21647             : static bool
   21648           0 : get_grid_row_gap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21649             : {
   21650           0 :   binding_detail::FastErrorResult rv;
   21651           0 :   DOMString result;
   21652           0 :   self->GetGridRowGap(result, rv);
   21653           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21654           0 :     return false;
   21655             :   }
   21656           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21657           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21658           0 :     return false;
   21659             :   }
   21660           0 :   return true;
   21661             : }
   21662             : 
   21663             : static bool
   21664           0 : set_grid_row_gap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21665             : {
   21666           0 :   binding_detail::FakeString arg0;
   21667           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21668           0 :     return false;
   21669             :   }
   21670           0 :   binding_detail::FastErrorResult rv;
   21671           0 :   self->SetGridRowGap(NonNullHelper(Constify(arg0)), rv);
   21672           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21673           0 :     return false;
   21674             :   }
   21675           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21676             : 
   21677           0 :   return true;
   21678             : }
   21679             : 
   21680             : static const JSJitInfo grid_row_gap_getterinfo = {
   21681             :   { (JSJitGetterOp)get_grid_row_gap },
   21682             :   { prototypes::id::CSS2Properties },
   21683             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21684             :   JSJitInfo::Getter,
   21685             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21686             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21687             :   false,  /* isInfallible. False in setters. */
   21688             :   false,  /* isMovable.  Not relevant for setters. */
   21689             :   false, /* isEliminatable.  Not relevant for setters. */
   21690             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21691             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21692             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21693             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21694             : };
   21695             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21696             : static_assert(0 < 1, "There is no slot for us");
   21697             : static const JSJitInfo grid_row_gap_setterinfo = {
   21698             :   { (JSJitGetterOp)set_grid_row_gap },
   21699             :   { prototypes::id::CSS2Properties },
   21700             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21701             :   JSJitInfo::Setter,
   21702             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21703             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21704             :   false,  /* isInfallible. False in setters. */
   21705             :   false,  /* isMovable.  Not relevant for setters. */
   21706             :   false, /* isEliminatable.  Not relevant for setters. */
   21707             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21708             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21709             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21710             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21711             : };
   21712             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21713             : static_assert(0 < 1, "There is no slot for us");
   21714             : 
   21715             : static bool
   21716           0 : get_gridRowStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21717             : {
   21718           0 :   binding_detail::FastErrorResult rv;
   21719           0 :   DOMString result;
   21720           0 :   self->GetGridRowStart(result, rv);
   21721           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21722           0 :     return false;
   21723             :   }
   21724           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21725           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21726           0 :     return false;
   21727             :   }
   21728           0 :   return true;
   21729             : }
   21730             : 
   21731             : static bool
   21732           0 : set_gridRowStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21733             : {
   21734           0 :   binding_detail::FakeString arg0;
   21735           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21736           0 :     return false;
   21737             :   }
   21738           0 :   binding_detail::FastErrorResult rv;
   21739           0 :   self->SetGridRowStart(NonNullHelper(Constify(arg0)), rv);
   21740           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21741           0 :     return false;
   21742             :   }
   21743           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21744             : 
   21745           0 :   return true;
   21746             : }
   21747             : 
   21748             : static const JSJitInfo gridRowStart_getterinfo = {
   21749             :   { (JSJitGetterOp)get_gridRowStart },
   21750             :   { prototypes::id::CSS2Properties },
   21751             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21752             :   JSJitInfo::Getter,
   21753             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21754             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21755             :   false,  /* isInfallible. False in setters. */
   21756             :   false,  /* isMovable.  Not relevant for setters. */
   21757             :   false, /* isEliminatable.  Not relevant for setters. */
   21758             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21759             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21760             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21761             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21762             : };
   21763             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21764             : static_assert(0 < 1, "There is no slot for us");
   21765             : static const JSJitInfo gridRowStart_setterinfo = {
   21766             :   { (JSJitGetterOp)set_gridRowStart },
   21767             :   { prototypes::id::CSS2Properties },
   21768             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21769             :   JSJitInfo::Setter,
   21770             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21771             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21772             :   false,  /* isInfallible. False in setters. */
   21773             :   false,  /* isMovable.  Not relevant for setters. */
   21774             :   false, /* isEliminatable.  Not relevant for setters. */
   21775             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21776             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21777             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21778             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21779             : };
   21780             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21781             : static_assert(0 < 1, "There is no slot for us");
   21782             : 
   21783             : static bool
   21784           0 : get_grid_row_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21785             : {
   21786           0 :   binding_detail::FastErrorResult rv;
   21787           0 :   DOMString result;
   21788           0 :   self->GetGridRowStart(result, rv);
   21789           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21790           0 :     return false;
   21791             :   }
   21792           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21793           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21794           0 :     return false;
   21795             :   }
   21796           0 :   return true;
   21797             : }
   21798             : 
   21799             : static bool
   21800           0 : set_grid_row_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21801             : {
   21802           0 :   binding_detail::FakeString arg0;
   21803           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21804           0 :     return false;
   21805             :   }
   21806           0 :   binding_detail::FastErrorResult rv;
   21807           0 :   self->SetGridRowStart(NonNullHelper(Constify(arg0)), rv);
   21808           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21809           0 :     return false;
   21810             :   }
   21811           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21812             : 
   21813           0 :   return true;
   21814             : }
   21815             : 
   21816             : static const JSJitInfo grid_row_start_getterinfo = {
   21817             :   { (JSJitGetterOp)get_grid_row_start },
   21818             :   { prototypes::id::CSS2Properties },
   21819             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21820             :   JSJitInfo::Getter,
   21821             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21822             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21823             :   false,  /* isInfallible. False in setters. */
   21824             :   false,  /* isMovable.  Not relevant for setters. */
   21825             :   false, /* isEliminatable.  Not relevant for setters. */
   21826             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21827             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21828             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21829             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21830             : };
   21831             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21832             : static_assert(0 < 1, "There is no slot for us");
   21833             : static const JSJitInfo grid_row_start_setterinfo = {
   21834             :   { (JSJitGetterOp)set_grid_row_start },
   21835             :   { prototypes::id::CSS2Properties },
   21836             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21837             :   JSJitInfo::Setter,
   21838             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21839             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21840             :   false,  /* isInfallible. False in setters. */
   21841             :   false,  /* isMovable.  Not relevant for setters. */
   21842             :   false, /* isEliminatable.  Not relevant for setters. */
   21843             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21844             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21845             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21846             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21847             : };
   21848             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21849             : static_assert(0 < 1, "There is no slot for us");
   21850             : 
   21851             : static bool
   21852           0 : get_gridTemplate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21853             : {
   21854           0 :   binding_detail::FastErrorResult rv;
   21855           0 :   DOMString result;
   21856           0 :   self->GetGridTemplate(result, rv);
   21857           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21858           0 :     return false;
   21859             :   }
   21860           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21861           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21862           0 :     return false;
   21863             :   }
   21864           0 :   return true;
   21865             : }
   21866             : 
   21867             : static bool
   21868           0 : set_gridTemplate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21869             : {
   21870           0 :   binding_detail::FakeString arg0;
   21871           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21872           0 :     return false;
   21873             :   }
   21874           0 :   binding_detail::FastErrorResult rv;
   21875           0 :   self->SetGridTemplate(NonNullHelper(Constify(arg0)), rv);
   21876           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21877           0 :     return false;
   21878             :   }
   21879           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21880             : 
   21881           0 :   return true;
   21882             : }
   21883             : 
   21884             : static const JSJitInfo gridTemplate_getterinfo = {
   21885             :   { (JSJitGetterOp)get_gridTemplate },
   21886             :   { prototypes::id::CSS2Properties },
   21887             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21888             :   JSJitInfo::Getter,
   21889             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21890             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21891             :   false,  /* isInfallible. False in setters. */
   21892             :   false,  /* isMovable.  Not relevant for setters. */
   21893             :   false, /* isEliminatable.  Not relevant for setters. */
   21894             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21895             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21896             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21897             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21898             : };
   21899             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21900             : static_assert(0 < 1, "There is no slot for us");
   21901             : static const JSJitInfo gridTemplate_setterinfo = {
   21902             :   { (JSJitGetterOp)set_gridTemplate },
   21903             :   { prototypes::id::CSS2Properties },
   21904             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21905             :   JSJitInfo::Setter,
   21906             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21907             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21908             :   false,  /* isInfallible. False in setters. */
   21909             :   false,  /* isMovable.  Not relevant for setters. */
   21910             :   false, /* isEliminatable.  Not relevant for setters. */
   21911             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21912             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21913             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21914             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21915             : };
   21916             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21917             : static_assert(0 < 1, "There is no slot for us");
   21918             : 
   21919             : static bool
   21920           0 : get_grid_template(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21921             : {
   21922           0 :   binding_detail::FastErrorResult rv;
   21923           0 :   DOMString result;
   21924           0 :   self->GetGridTemplate(result, rv);
   21925           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21926           0 :     return false;
   21927             :   }
   21928           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21929           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21930           0 :     return false;
   21931             :   }
   21932           0 :   return true;
   21933             : }
   21934             : 
   21935             : static bool
   21936           0 : set_grid_template(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   21937             : {
   21938           0 :   binding_detail::FakeString arg0;
   21939           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   21940           0 :     return false;
   21941             :   }
   21942           0 :   binding_detail::FastErrorResult rv;
   21943           0 :   self->SetGridTemplate(NonNullHelper(Constify(arg0)), rv);
   21944           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21945           0 :     return false;
   21946             :   }
   21947           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21948             : 
   21949           0 :   return true;
   21950             : }
   21951             : 
   21952             : static const JSJitInfo grid_template_getterinfo = {
   21953             :   { (JSJitGetterOp)get_grid_template },
   21954             :   { prototypes::id::CSS2Properties },
   21955             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21956             :   JSJitInfo::Getter,
   21957             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21958             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   21959             :   false,  /* isInfallible. False in setters. */
   21960             :   false,  /* isMovable.  Not relevant for setters. */
   21961             :   false, /* isEliminatable.  Not relevant for setters. */
   21962             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21963             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21964             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21965             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21966             : };
   21967             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21968             : static_assert(0 < 1, "There is no slot for us");
   21969             : static const JSJitInfo grid_template_setterinfo = {
   21970             :   { (JSJitGetterOp)set_grid_template },
   21971             :   { prototypes::id::CSS2Properties },
   21972             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   21973             :   JSJitInfo::Setter,
   21974             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   21975             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   21976             :   false,  /* isInfallible. False in setters. */
   21977             :   false,  /* isMovable.  Not relevant for setters. */
   21978             :   false, /* isEliminatable.  Not relevant for setters. */
   21979             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   21980             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   21981             :   false,  /* isTypedMethod.  Only relevant for methods. */
   21982             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   21983             : };
   21984             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   21985             : static_assert(0 < 1, "There is no slot for us");
   21986             : 
   21987             : static bool
   21988           0 : get_gridTemplateAreas(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   21989             : {
   21990           0 :   binding_detail::FastErrorResult rv;
   21991           0 :   DOMString result;
   21992           0 :   self->GetGridTemplateAreas(result, rv);
   21993           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   21994           0 :     return false;
   21995             :   }
   21996           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   21997           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   21998           0 :     return false;
   21999             :   }
   22000           0 :   return true;
   22001             : }
   22002             : 
   22003             : static bool
   22004           0 : set_gridTemplateAreas(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22005             : {
   22006           0 :   binding_detail::FakeString arg0;
   22007           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22008           0 :     return false;
   22009             :   }
   22010           0 :   binding_detail::FastErrorResult rv;
   22011           0 :   self->SetGridTemplateAreas(NonNullHelper(Constify(arg0)), rv);
   22012           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22013           0 :     return false;
   22014             :   }
   22015           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22016             : 
   22017           0 :   return true;
   22018             : }
   22019             : 
   22020             : static const JSJitInfo gridTemplateAreas_getterinfo = {
   22021             :   { (JSJitGetterOp)get_gridTemplateAreas },
   22022             :   { prototypes::id::CSS2Properties },
   22023             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22024             :   JSJitInfo::Getter,
   22025             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22026             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22027             :   false,  /* isInfallible. False in setters. */
   22028             :   false,  /* isMovable.  Not relevant for setters. */
   22029             :   false, /* isEliminatable.  Not relevant for setters. */
   22030             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22031             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22032             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22033             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22034             : };
   22035             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22036             : static_assert(0 < 1, "There is no slot for us");
   22037             : static const JSJitInfo gridTemplateAreas_setterinfo = {
   22038             :   { (JSJitGetterOp)set_gridTemplateAreas },
   22039             :   { prototypes::id::CSS2Properties },
   22040             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22041             :   JSJitInfo::Setter,
   22042             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22043             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22044             :   false,  /* isInfallible. False in setters. */
   22045             :   false,  /* isMovable.  Not relevant for setters. */
   22046             :   false, /* isEliminatable.  Not relevant for setters. */
   22047             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22048             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22049             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22050             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22051             : };
   22052             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22053             : static_assert(0 < 1, "There is no slot for us");
   22054             : 
   22055             : static bool
   22056           0 : get_grid_template_areas(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22057             : {
   22058           0 :   binding_detail::FastErrorResult rv;
   22059           0 :   DOMString result;
   22060           0 :   self->GetGridTemplateAreas(result, rv);
   22061           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22062           0 :     return false;
   22063             :   }
   22064           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22065           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22066           0 :     return false;
   22067             :   }
   22068           0 :   return true;
   22069             : }
   22070             : 
   22071             : static bool
   22072           0 : set_grid_template_areas(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22073             : {
   22074           0 :   binding_detail::FakeString arg0;
   22075           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22076           0 :     return false;
   22077             :   }
   22078           0 :   binding_detail::FastErrorResult rv;
   22079           0 :   self->SetGridTemplateAreas(NonNullHelper(Constify(arg0)), rv);
   22080           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22081           0 :     return false;
   22082             :   }
   22083           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22084             : 
   22085           0 :   return true;
   22086             : }
   22087             : 
   22088             : static const JSJitInfo grid_template_areas_getterinfo = {
   22089             :   { (JSJitGetterOp)get_grid_template_areas },
   22090             :   { prototypes::id::CSS2Properties },
   22091             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22092             :   JSJitInfo::Getter,
   22093             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22094             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22095             :   false,  /* isInfallible. False in setters. */
   22096             :   false,  /* isMovable.  Not relevant for setters. */
   22097             :   false, /* isEliminatable.  Not relevant for setters. */
   22098             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22099             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22100             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22101             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22102             : };
   22103             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22104             : static_assert(0 < 1, "There is no slot for us");
   22105             : static const JSJitInfo grid_template_areas_setterinfo = {
   22106             :   { (JSJitGetterOp)set_grid_template_areas },
   22107             :   { prototypes::id::CSS2Properties },
   22108             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22109             :   JSJitInfo::Setter,
   22110             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22111             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22112             :   false,  /* isInfallible. False in setters. */
   22113             :   false,  /* isMovable.  Not relevant for setters. */
   22114             :   false, /* isEliminatable.  Not relevant for setters. */
   22115             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22116             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22117             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22118             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22119             : };
   22120             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22121             : static_assert(0 < 1, "There is no slot for us");
   22122             : 
   22123             : static bool
   22124           0 : get_gridTemplateColumns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22125             : {
   22126           0 :   binding_detail::FastErrorResult rv;
   22127           0 :   DOMString result;
   22128           0 :   self->GetGridTemplateColumns(result, rv);
   22129           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22130           0 :     return false;
   22131             :   }
   22132           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22133           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22134           0 :     return false;
   22135             :   }
   22136           0 :   return true;
   22137             : }
   22138             : 
   22139             : static bool
   22140           0 : set_gridTemplateColumns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22141             : {
   22142           0 :   binding_detail::FakeString arg0;
   22143           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22144           0 :     return false;
   22145             :   }
   22146           0 :   binding_detail::FastErrorResult rv;
   22147           0 :   self->SetGridTemplateColumns(NonNullHelper(Constify(arg0)), rv);
   22148           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22149           0 :     return false;
   22150             :   }
   22151           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22152             : 
   22153           0 :   return true;
   22154             : }
   22155             : 
   22156             : static const JSJitInfo gridTemplateColumns_getterinfo = {
   22157             :   { (JSJitGetterOp)get_gridTemplateColumns },
   22158             :   { prototypes::id::CSS2Properties },
   22159             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22160             :   JSJitInfo::Getter,
   22161             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22162             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22163             :   false,  /* isInfallible. False in setters. */
   22164             :   false,  /* isMovable.  Not relevant for setters. */
   22165             :   false, /* isEliminatable.  Not relevant for setters. */
   22166             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22167             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22168             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22169             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22170             : };
   22171             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22172             : static_assert(0 < 1, "There is no slot for us");
   22173             : static const JSJitInfo gridTemplateColumns_setterinfo = {
   22174             :   { (JSJitGetterOp)set_gridTemplateColumns },
   22175             :   { prototypes::id::CSS2Properties },
   22176             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22177             :   JSJitInfo::Setter,
   22178             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22179             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22180             :   false,  /* isInfallible. False in setters. */
   22181             :   false,  /* isMovable.  Not relevant for setters. */
   22182             :   false, /* isEliminatable.  Not relevant for setters. */
   22183             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22184             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22185             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22186             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22187             : };
   22188             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22189             : static_assert(0 < 1, "There is no slot for us");
   22190             : 
   22191             : static bool
   22192           0 : get_grid_template_columns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22193             : {
   22194           0 :   binding_detail::FastErrorResult rv;
   22195           0 :   DOMString result;
   22196           0 :   self->GetGridTemplateColumns(result, rv);
   22197           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22198           0 :     return false;
   22199             :   }
   22200           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22201           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22202           0 :     return false;
   22203             :   }
   22204           0 :   return true;
   22205             : }
   22206             : 
   22207             : static bool
   22208           0 : set_grid_template_columns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22209             : {
   22210           0 :   binding_detail::FakeString arg0;
   22211           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22212           0 :     return false;
   22213             :   }
   22214           0 :   binding_detail::FastErrorResult rv;
   22215           0 :   self->SetGridTemplateColumns(NonNullHelper(Constify(arg0)), rv);
   22216           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22217           0 :     return false;
   22218             :   }
   22219           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22220             : 
   22221           0 :   return true;
   22222             : }
   22223             : 
   22224             : static const JSJitInfo grid_template_columns_getterinfo = {
   22225             :   { (JSJitGetterOp)get_grid_template_columns },
   22226             :   { prototypes::id::CSS2Properties },
   22227             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22228             :   JSJitInfo::Getter,
   22229             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22230             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22231             :   false,  /* isInfallible. False in setters. */
   22232             :   false,  /* isMovable.  Not relevant for setters. */
   22233             :   false, /* isEliminatable.  Not relevant for setters. */
   22234             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22235             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22236             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22237             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22238             : };
   22239             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22240             : static_assert(0 < 1, "There is no slot for us");
   22241             : static const JSJitInfo grid_template_columns_setterinfo = {
   22242             :   { (JSJitGetterOp)set_grid_template_columns },
   22243             :   { prototypes::id::CSS2Properties },
   22244             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22245             :   JSJitInfo::Setter,
   22246             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22247             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22248             :   false,  /* isInfallible. False in setters. */
   22249             :   false,  /* isMovable.  Not relevant for setters. */
   22250             :   false, /* isEliminatable.  Not relevant for setters. */
   22251             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22252             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22253             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22254             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22255             : };
   22256             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22257             : static_assert(0 < 1, "There is no slot for us");
   22258             : 
   22259             : static bool
   22260           0 : get_gridTemplateRows(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22261             : {
   22262           0 :   binding_detail::FastErrorResult rv;
   22263           0 :   DOMString result;
   22264           0 :   self->GetGridTemplateRows(result, rv);
   22265           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22266           0 :     return false;
   22267             :   }
   22268           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22269           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22270           0 :     return false;
   22271             :   }
   22272           0 :   return true;
   22273             : }
   22274             : 
   22275             : static bool
   22276           0 : set_gridTemplateRows(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22277             : {
   22278           0 :   binding_detail::FakeString arg0;
   22279           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22280           0 :     return false;
   22281             :   }
   22282           0 :   binding_detail::FastErrorResult rv;
   22283           0 :   self->SetGridTemplateRows(NonNullHelper(Constify(arg0)), rv);
   22284           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22285           0 :     return false;
   22286             :   }
   22287           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22288             : 
   22289           0 :   return true;
   22290             : }
   22291             : 
   22292             : static const JSJitInfo gridTemplateRows_getterinfo = {
   22293             :   { (JSJitGetterOp)get_gridTemplateRows },
   22294             :   { prototypes::id::CSS2Properties },
   22295             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22296             :   JSJitInfo::Getter,
   22297             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22298             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22299             :   false,  /* isInfallible. False in setters. */
   22300             :   false,  /* isMovable.  Not relevant for setters. */
   22301             :   false, /* isEliminatable.  Not relevant for setters. */
   22302             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22303             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22304             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22305             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22306             : };
   22307             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22308             : static_assert(0 < 1, "There is no slot for us");
   22309             : static const JSJitInfo gridTemplateRows_setterinfo = {
   22310             :   { (JSJitGetterOp)set_gridTemplateRows },
   22311             :   { prototypes::id::CSS2Properties },
   22312             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22313             :   JSJitInfo::Setter,
   22314             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22315             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22316             :   false,  /* isInfallible. False in setters. */
   22317             :   false,  /* isMovable.  Not relevant for setters. */
   22318             :   false, /* isEliminatable.  Not relevant for setters. */
   22319             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22320             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22321             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22322             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22323             : };
   22324             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22325             : static_assert(0 < 1, "There is no slot for us");
   22326             : 
   22327             : static bool
   22328           0 : get_grid_template_rows(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22329             : {
   22330           0 :   binding_detail::FastErrorResult rv;
   22331           0 :   DOMString result;
   22332           0 :   self->GetGridTemplateRows(result, rv);
   22333           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22334           0 :     return false;
   22335             :   }
   22336           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22337           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22338           0 :     return false;
   22339             :   }
   22340           0 :   return true;
   22341             : }
   22342             : 
   22343             : static bool
   22344           0 : set_grid_template_rows(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22345             : {
   22346           0 :   binding_detail::FakeString arg0;
   22347           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22348           0 :     return false;
   22349             :   }
   22350           0 :   binding_detail::FastErrorResult rv;
   22351           0 :   self->SetGridTemplateRows(NonNullHelper(Constify(arg0)), rv);
   22352           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22353           0 :     return false;
   22354             :   }
   22355           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22356             : 
   22357           0 :   return true;
   22358             : }
   22359             : 
   22360             : static const JSJitInfo grid_template_rows_getterinfo = {
   22361             :   { (JSJitGetterOp)get_grid_template_rows },
   22362             :   { prototypes::id::CSS2Properties },
   22363             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22364             :   JSJitInfo::Getter,
   22365             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22366             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22367             :   false,  /* isInfallible. False in setters. */
   22368             :   false,  /* isMovable.  Not relevant for setters. */
   22369             :   false, /* isEliminatable.  Not relevant for setters. */
   22370             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22371             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22372             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22373             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22374             : };
   22375             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22376             : static_assert(0 < 1, "There is no slot for us");
   22377             : static const JSJitInfo grid_template_rows_setterinfo = {
   22378             :   { (JSJitGetterOp)set_grid_template_rows },
   22379             :   { prototypes::id::CSS2Properties },
   22380             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22381             :   JSJitInfo::Setter,
   22382             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22383             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22384             :   false,  /* isInfallible. False in setters. */
   22385             :   false,  /* isMovable.  Not relevant for setters. */
   22386             :   false, /* isEliminatable.  Not relevant for setters. */
   22387             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22388             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22389             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22390             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22391             : };
   22392             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22393             : static_assert(0 < 1, "There is no slot for us");
   22394             : 
   22395             : static bool
   22396           0 : get_height(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22397             : {
   22398           0 :   binding_detail::FastErrorResult rv;
   22399           0 :   DOMString result;
   22400           0 :   self->GetHeight(result, rv);
   22401           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22402           0 :     return false;
   22403             :   }
   22404           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22405           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22406           0 :     return false;
   22407             :   }
   22408           0 :   return true;
   22409             : }
   22410             : 
   22411             : static bool
   22412           0 : set_height(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22413             : {
   22414           0 :   binding_detail::FakeString arg0;
   22415           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22416           0 :     return false;
   22417             :   }
   22418           0 :   binding_detail::FastErrorResult rv;
   22419           0 :   self->SetHeight(NonNullHelper(Constify(arg0)), rv);
   22420           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22421           0 :     return false;
   22422             :   }
   22423           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22424             : 
   22425           0 :   return true;
   22426             : }
   22427             : 
   22428             : static const JSJitInfo height_getterinfo = {
   22429             :   { (JSJitGetterOp)get_height },
   22430             :   { prototypes::id::CSS2Properties },
   22431             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22432             :   JSJitInfo::Getter,
   22433             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22434             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22435             :   false,  /* isInfallible. False in setters. */
   22436             :   false,  /* isMovable.  Not relevant for setters. */
   22437             :   false, /* isEliminatable.  Not relevant for setters. */
   22438             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22439             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22440             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22441             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22442             : };
   22443             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22444             : static_assert(0 < 1, "There is no slot for us");
   22445             : static const JSJitInfo height_setterinfo = {
   22446             :   { (JSJitGetterOp)set_height },
   22447             :   { prototypes::id::CSS2Properties },
   22448             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22449             :   JSJitInfo::Setter,
   22450             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22451             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22452             :   false,  /* isInfallible. False in setters. */
   22453             :   false,  /* isMovable.  Not relevant for setters. */
   22454             :   false, /* isEliminatable.  Not relevant for setters. */
   22455             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22456             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22457             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22458             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22459             : };
   22460             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22461             : static_assert(0 < 1, "There is no slot for us");
   22462             : 
   22463             : static bool
   22464           0 : get_hyphens(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22465             : {
   22466           0 :   binding_detail::FastErrorResult rv;
   22467           0 :   DOMString result;
   22468           0 :   self->GetHyphens(result, rv);
   22469           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22470           0 :     return false;
   22471             :   }
   22472           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22473           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22474           0 :     return false;
   22475             :   }
   22476           0 :   return true;
   22477             : }
   22478             : 
   22479             : static bool
   22480           0 : set_hyphens(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22481             : {
   22482           0 :   binding_detail::FakeString arg0;
   22483           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22484           0 :     return false;
   22485             :   }
   22486           0 :   binding_detail::FastErrorResult rv;
   22487           0 :   self->SetHyphens(NonNullHelper(Constify(arg0)), rv);
   22488           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22489           0 :     return false;
   22490             :   }
   22491           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22492             : 
   22493           0 :   return true;
   22494             : }
   22495             : 
   22496             : static const JSJitInfo hyphens_getterinfo = {
   22497             :   { (JSJitGetterOp)get_hyphens },
   22498             :   { prototypes::id::CSS2Properties },
   22499             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22500             :   JSJitInfo::Getter,
   22501             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22502             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22503             :   false,  /* isInfallible. False in setters. */
   22504             :   false,  /* isMovable.  Not relevant for setters. */
   22505             :   false, /* isEliminatable.  Not relevant for setters. */
   22506             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22507             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22508             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22509             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22510             : };
   22511             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22512             : static_assert(0 < 1, "There is no slot for us");
   22513             : static const JSJitInfo hyphens_setterinfo = {
   22514             :   { (JSJitGetterOp)set_hyphens },
   22515             :   { prototypes::id::CSS2Properties },
   22516             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22517             :   JSJitInfo::Setter,
   22518             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22519             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22520             :   false,  /* isInfallible. False in setters. */
   22521             :   false,  /* isMovable.  Not relevant for setters. */
   22522             :   false, /* isEliminatable.  Not relevant for setters. */
   22523             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22524             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22525             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22526             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22527             : };
   22528             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22529             : static_assert(0 < 1, "There is no slot for us");
   22530             : 
   22531             : static bool
   22532           0 : get_initialLetter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22533             : {
   22534           0 :   binding_detail::FastErrorResult rv;
   22535           0 :   DOMString result;
   22536           0 :   self->GetInitialLetter(result, rv);
   22537           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22538           0 :     return false;
   22539             :   }
   22540           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22541           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22542           0 :     return false;
   22543             :   }
   22544           0 :   return true;
   22545             : }
   22546             : 
   22547             : static bool
   22548           0 : set_initialLetter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22549             : {
   22550           0 :   binding_detail::FakeString arg0;
   22551           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22552           0 :     return false;
   22553             :   }
   22554           0 :   binding_detail::FastErrorResult rv;
   22555           0 :   self->SetInitialLetter(NonNullHelper(Constify(arg0)), rv);
   22556           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22557           0 :     return false;
   22558             :   }
   22559           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22560             : 
   22561           0 :   return true;
   22562             : }
   22563             : 
   22564             : static const JSJitInfo initialLetter_getterinfo = {
   22565             :   { (JSJitGetterOp)get_initialLetter },
   22566             :   { prototypes::id::CSS2Properties },
   22567             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22568             :   JSJitInfo::Getter,
   22569             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22570             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22571             :   false,  /* isInfallible. False in setters. */
   22572             :   false,  /* isMovable.  Not relevant for setters. */
   22573             :   false, /* isEliminatable.  Not relevant for setters. */
   22574             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22575             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22576             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22577             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22578             : };
   22579             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22580             : static_assert(0 < 1, "There is no slot for us");
   22581             : static const JSJitInfo initialLetter_setterinfo = {
   22582             :   { (JSJitGetterOp)set_initialLetter },
   22583             :   { prototypes::id::CSS2Properties },
   22584             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22585             :   JSJitInfo::Setter,
   22586             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22587             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22588             :   false,  /* isInfallible. False in setters. */
   22589             :   false,  /* isMovable.  Not relevant for setters. */
   22590             :   false, /* isEliminatable.  Not relevant for setters. */
   22591             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22592             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22593             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22594             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22595             : };
   22596             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22597             : static_assert(0 < 1, "There is no slot for us");
   22598             : 
   22599             : static bool
   22600           0 : get_initial_letter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22601             : {
   22602           0 :   binding_detail::FastErrorResult rv;
   22603           0 :   DOMString result;
   22604           0 :   self->GetInitialLetter(result, rv);
   22605           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22606           0 :     return false;
   22607             :   }
   22608           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22609           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22610           0 :     return false;
   22611             :   }
   22612           0 :   return true;
   22613             : }
   22614             : 
   22615             : static bool
   22616           0 : set_initial_letter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22617             : {
   22618           0 :   binding_detail::FakeString arg0;
   22619           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22620           0 :     return false;
   22621             :   }
   22622           0 :   binding_detail::FastErrorResult rv;
   22623           0 :   self->SetInitialLetter(NonNullHelper(Constify(arg0)), rv);
   22624           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22625           0 :     return false;
   22626             :   }
   22627           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22628             : 
   22629           0 :   return true;
   22630             : }
   22631             : 
   22632             : static const JSJitInfo initial_letter_getterinfo = {
   22633             :   { (JSJitGetterOp)get_initial_letter },
   22634             :   { prototypes::id::CSS2Properties },
   22635             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22636             :   JSJitInfo::Getter,
   22637             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22638             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22639             :   false,  /* isInfallible. False in setters. */
   22640             :   false,  /* isMovable.  Not relevant for setters. */
   22641             :   false, /* isEliminatable.  Not relevant for setters. */
   22642             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22643             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22644             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22645             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22646             : };
   22647             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22648             : static_assert(0 < 1, "There is no slot for us");
   22649             : static const JSJitInfo initial_letter_setterinfo = {
   22650             :   { (JSJitGetterOp)set_initial_letter },
   22651             :   { prototypes::id::CSS2Properties },
   22652             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22653             :   JSJitInfo::Setter,
   22654             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22655             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22656             :   false,  /* isInfallible. False in setters. */
   22657             :   false,  /* isMovable.  Not relevant for setters. */
   22658             :   false, /* isEliminatable.  Not relevant for setters. */
   22659             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22660             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22661             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22662             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22663             : };
   22664             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22665             : static_assert(0 < 1, "There is no slot for us");
   22666             : 
   22667             : static bool
   22668           0 : get_imageOrientation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22669             : {
   22670           0 :   binding_detail::FastErrorResult rv;
   22671           0 :   DOMString result;
   22672           0 :   self->GetImageOrientation(result, rv);
   22673           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22674           0 :     return false;
   22675             :   }
   22676           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22677           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22678           0 :     return false;
   22679             :   }
   22680           0 :   return true;
   22681             : }
   22682             : 
   22683             : static bool
   22684           0 : set_imageOrientation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22685             : {
   22686           0 :   binding_detail::FakeString arg0;
   22687           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22688           0 :     return false;
   22689             :   }
   22690           0 :   binding_detail::FastErrorResult rv;
   22691           0 :   self->SetImageOrientation(NonNullHelper(Constify(arg0)), rv);
   22692           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22693           0 :     return false;
   22694             :   }
   22695           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22696             : 
   22697           0 :   return true;
   22698             : }
   22699             : 
   22700             : static const JSJitInfo imageOrientation_getterinfo = {
   22701             :   { (JSJitGetterOp)get_imageOrientation },
   22702             :   { prototypes::id::CSS2Properties },
   22703             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22704             :   JSJitInfo::Getter,
   22705             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22706             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22707             :   false,  /* isInfallible. False in setters. */
   22708             :   false,  /* isMovable.  Not relevant for setters. */
   22709             :   false, /* isEliminatable.  Not relevant for setters. */
   22710             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22711             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22712             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22713             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22714             : };
   22715             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22716             : static_assert(0 < 1, "There is no slot for us");
   22717             : static const JSJitInfo imageOrientation_setterinfo = {
   22718             :   { (JSJitGetterOp)set_imageOrientation },
   22719             :   { prototypes::id::CSS2Properties },
   22720             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22721             :   JSJitInfo::Setter,
   22722             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22723             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22724             :   false,  /* isInfallible. False in setters. */
   22725             :   false,  /* isMovable.  Not relevant for setters. */
   22726             :   false, /* isEliminatable.  Not relevant for setters. */
   22727             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22728             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22729             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22730             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22731             : };
   22732             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22733             : static_assert(0 < 1, "There is no slot for us");
   22734             : 
   22735             : static bool
   22736           0 : get_image_orientation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22737             : {
   22738           0 :   binding_detail::FastErrorResult rv;
   22739           0 :   DOMString result;
   22740           0 :   self->GetImageOrientation(result, rv);
   22741           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22742           0 :     return false;
   22743             :   }
   22744           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22745           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22746           0 :     return false;
   22747             :   }
   22748           0 :   return true;
   22749             : }
   22750             : 
   22751             : static bool
   22752           0 : set_image_orientation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22753             : {
   22754           0 :   binding_detail::FakeString arg0;
   22755           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22756           0 :     return false;
   22757             :   }
   22758           0 :   binding_detail::FastErrorResult rv;
   22759           0 :   self->SetImageOrientation(NonNullHelper(Constify(arg0)), rv);
   22760           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22761           0 :     return false;
   22762             :   }
   22763           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22764             : 
   22765           0 :   return true;
   22766             : }
   22767             : 
   22768             : static const JSJitInfo image_orientation_getterinfo = {
   22769             :   { (JSJitGetterOp)get_image_orientation },
   22770             :   { prototypes::id::CSS2Properties },
   22771             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22772             :   JSJitInfo::Getter,
   22773             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22774             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22775             :   false,  /* isInfallible. False in setters. */
   22776             :   false,  /* isMovable.  Not relevant for setters. */
   22777             :   false, /* isEliminatable.  Not relevant for setters. */
   22778             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22779             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22780             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22781             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22782             : };
   22783             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22784             : static_assert(0 < 1, "There is no slot for us");
   22785             : static const JSJitInfo image_orientation_setterinfo = {
   22786             :   { (JSJitGetterOp)set_image_orientation },
   22787             :   { prototypes::id::CSS2Properties },
   22788             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22789             :   JSJitInfo::Setter,
   22790             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22791             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22792             :   false,  /* isInfallible. False in setters. */
   22793             :   false,  /* isMovable.  Not relevant for setters. */
   22794             :   false, /* isEliminatable.  Not relevant for setters. */
   22795             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22796             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22797             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22798             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22799             : };
   22800             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22801             : static_assert(0 < 1, "There is no slot for us");
   22802             : 
   22803             : static bool
   22804           0 : get_MozImageRegion(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22805             : {
   22806           0 :   binding_detail::FastErrorResult rv;
   22807           0 :   DOMString result;
   22808           0 :   self->GetMozImageRegion(result, rv);
   22809           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22810           0 :     return false;
   22811             :   }
   22812           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22813           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22814           0 :     return false;
   22815             :   }
   22816           0 :   return true;
   22817             : }
   22818             : 
   22819             : static bool
   22820           0 : set_MozImageRegion(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22821             : {
   22822           0 :   binding_detail::FakeString arg0;
   22823           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22824           0 :     return false;
   22825             :   }
   22826           0 :   binding_detail::FastErrorResult rv;
   22827           0 :   self->SetMozImageRegion(NonNullHelper(Constify(arg0)), rv);
   22828           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22829           0 :     return false;
   22830             :   }
   22831           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22832             : 
   22833           0 :   return true;
   22834             : }
   22835             : 
   22836             : static const JSJitInfo MozImageRegion_getterinfo = {
   22837             :   { (JSJitGetterOp)get_MozImageRegion },
   22838             :   { prototypes::id::CSS2Properties },
   22839             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22840             :   JSJitInfo::Getter,
   22841             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22842             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22843             :   false,  /* isInfallible. False in setters. */
   22844             :   false,  /* isMovable.  Not relevant for setters. */
   22845             :   false, /* isEliminatable.  Not relevant for setters. */
   22846             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22847             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22848             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22849             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22850             : };
   22851             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22852             : static_assert(0 < 1, "There is no slot for us");
   22853             : static const JSJitInfo MozImageRegion_setterinfo = {
   22854             :   { (JSJitGetterOp)set_MozImageRegion },
   22855             :   { prototypes::id::CSS2Properties },
   22856             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22857             :   JSJitInfo::Setter,
   22858             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22859             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22860             :   false,  /* isInfallible. False in setters. */
   22861             :   false,  /* isMovable.  Not relevant for setters. */
   22862             :   false, /* isEliminatable.  Not relevant for setters. */
   22863             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22864             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22865             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22866             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22867             : };
   22868             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22869             : static_assert(0 < 1, "There is no slot for us");
   22870             : 
   22871             : static bool
   22872           0 : get__moz_image_region(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22873             : {
   22874           0 :   binding_detail::FastErrorResult rv;
   22875           0 :   DOMString result;
   22876           0 :   self->GetMozImageRegion(result, rv);
   22877           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22878           0 :     return false;
   22879             :   }
   22880           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22881           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22882           0 :     return false;
   22883             :   }
   22884           0 :   return true;
   22885             : }
   22886             : 
   22887             : static bool
   22888           0 : set__moz_image_region(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22889             : {
   22890           0 :   binding_detail::FakeString arg0;
   22891           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22892           0 :     return false;
   22893             :   }
   22894           0 :   binding_detail::FastErrorResult rv;
   22895           0 :   self->SetMozImageRegion(NonNullHelper(Constify(arg0)), rv);
   22896           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22897           0 :     return false;
   22898             :   }
   22899           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22900             : 
   22901           0 :   return true;
   22902             : }
   22903             : 
   22904             : static const JSJitInfo _moz_image_region_getterinfo = {
   22905             :   { (JSJitGetterOp)get__moz_image_region },
   22906             :   { prototypes::id::CSS2Properties },
   22907             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22908             :   JSJitInfo::Getter,
   22909             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22910             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22911             :   false,  /* isInfallible. False in setters. */
   22912             :   false,  /* isMovable.  Not relevant for setters. */
   22913             :   false, /* isEliminatable.  Not relevant for setters. */
   22914             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22915             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22916             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22917             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22918             : };
   22919             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22920             : static_assert(0 < 1, "There is no slot for us");
   22921             : static const JSJitInfo _moz_image_region_setterinfo = {
   22922             :   { (JSJitGetterOp)set__moz_image_region },
   22923             :   { prototypes::id::CSS2Properties },
   22924             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22925             :   JSJitInfo::Setter,
   22926             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22927             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22928             :   false,  /* isInfallible. False in setters. */
   22929             :   false,  /* isMovable.  Not relevant for setters. */
   22930             :   false, /* isEliminatable.  Not relevant for setters. */
   22931             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22932             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22933             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22934             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22935             : };
   22936             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22937             : static_assert(0 < 1, "There is no slot for us");
   22938             : 
   22939             : static bool
   22940           0 : get_imageRendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   22941             : {
   22942           0 :   binding_detail::FastErrorResult rv;
   22943           0 :   DOMString result;
   22944           0 :   self->GetImageRendering(result, rv);
   22945           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22946           0 :     return false;
   22947             :   }
   22948           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22949           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   22950           0 :     return false;
   22951             :   }
   22952           0 :   return true;
   22953             : }
   22954             : 
   22955             : static bool
   22956           0 : set_imageRendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   22957             : {
   22958           0 :   binding_detail::FakeString arg0;
   22959           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   22960           0 :     return false;
   22961             :   }
   22962           0 :   binding_detail::FastErrorResult rv;
   22963           0 :   self->SetImageRendering(NonNullHelper(Constify(arg0)), rv);
   22964           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   22965           0 :     return false;
   22966             :   }
   22967           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   22968             : 
   22969           0 :   return true;
   22970             : }
   22971             : 
   22972             : static const JSJitInfo imageRendering_getterinfo = {
   22973             :   { (JSJitGetterOp)get_imageRendering },
   22974             :   { prototypes::id::CSS2Properties },
   22975             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22976             :   JSJitInfo::Getter,
   22977             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22978             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   22979             :   false,  /* isInfallible. False in setters. */
   22980             :   false,  /* isMovable.  Not relevant for setters. */
   22981             :   false, /* isEliminatable.  Not relevant for setters. */
   22982             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   22983             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   22984             :   false,  /* isTypedMethod.  Only relevant for methods. */
   22985             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   22986             : };
   22987             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   22988             : static_assert(0 < 1, "There is no slot for us");
   22989             : static const JSJitInfo imageRendering_setterinfo = {
   22990             :   { (JSJitGetterOp)set_imageRendering },
   22991             :   { prototypes::id::CSS2Properties },
   22992             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   22993             :   JSJitInfo::Setter,
   22994             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   22995             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   22996             :   false,  /* isInfallible. False in setters. */
   22997             :   false,  /* isMovable.  Not relevant for setters. */
   22998             :   false, /* isEliminatable.  Not relevant for setters. */
   22999             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23000             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23001             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23002             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23003             : };
   23004             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23005             : static_assert(0 < 1, "There is no slot for us");
   23006             : 
   23007             : static bool
   23008           0 : get_image_rendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23009             : {
   23010           0 :   binding_detail::FastErrorResult rv;
   23011           0 :   DOMString result;
   23012           0 :   self->GetImageRendering(result, rv);
   23013           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23014           0 :     return false;
   23015             :   }
   23016           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23017           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23018           0 :     return false;
   23019             :   }
   23020           0 :   return true;
   23021             : }
   23022             : 
   23023             : static bool
   23024           0 : set_image_rendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23025             : {
   23026           0 :   binding_detail::FakeString arg0;
   23027           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23028           0 :     return false;
   23029             :   }
   23030           0 :   binding_detail::FastErrorResult rv;
   23031           0 :   self->SetImageRendering(NonNullHelper(Constify(arg0)), rv);
   23032           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23033           0 :     return false;
   23034             :   }
   23035           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23036             : 
   23037           0 :   return true;
   23038             : }
   23039             : 
   23040             : static const JSJitInfo image_rendering_getterinfo = {
   23041             :   { (JSJitGetterOp)get_image_rendering },
   23042             :   { prototypes::id::CSS2Properties },
   23043             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23044             :   JSJitInfo::Getter,
   23045             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23046             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23047             :   false,  /* isInfallible. False in setters. */
   23048             :   false,  /* isMovable.  Not relevant for setters. */
   23049             :   false, /* isEliminatable.  Not relevant for setters. */
   23050             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23051             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23052             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23053             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23054             : };
   23055             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23056             : static_assert(0 < 1, "There is no slot for us");
   23057             : static const JSJitInfo image_rendering_setterinfo = {
   23058             :   { (JSJitGetterOp)set_image_rendering },
   23059             :   { prototypes::id::CSS2Properties },
   23060             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23061             :   JSJitInfo::Setter,
   23062             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23063             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23064             :   false,  /* isInfallible. False in setters. */
   23065             :   false,  /* isMovable.  Not relevant for setters. */
   23066             :   false, /* isEliminatable.  Not relevant for setters. */
   23067             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23068             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23069             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23070             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23071             : };
   23072             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23073             : static_assert(0 < 1, "There is no slot for us");
   23074             : 
   23075             : static bool
   23076           0 : get_imeMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23077             : {
   23078           0 :   binding_detail::FastErrorResult rv;
   23079           0 :   DOMString result;
   23080           0 :   self->GetImeMode(result, rv);
   23081           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23082           0 :     return false;
   23083             :   }
   23084           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23085           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23086           0 :     return false;
   23087             :   }
   23088           0 :   return true;
   23089             : }
   23090             : 
   23091             : static bool
   23092           0 : set_imeMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23093             : {
   23094           0 :   binding_detail::FakeString arg0;
   23095           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23096           0 :     return false;
   23097             :   }
   23098           0 :   binding_detail::FastErrorResult rv;
   23099           0 :   self->SetImeMode(NonNullHelper(Constify(arg0)), rv);
   23100           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23101           0 :     return false;
   23102             :   }
   23103           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23104             : 
   23105           0 :   return true;
   23106             : }
   23107             : 
   23108             : static const JSJitInfo imeMode_getterinfo = {
   23109             :   { (JSJitGetterOp)get_imeMode },
   23110             :   { prototypes::id::CSS2Properties },
   23111             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23112             :   JSJitInfo::Getter,
   23113             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23114             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23115             :   false,  /* isInfallible. False in setters. */
   23116             :   false,  /* isMovable.  Not relevant for setters. */
   23117             :   false, /* isEliminatable.  Not relevant for setters. */
   23118             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23119             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23120             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23121             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23122             : };
   23123             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23124             : static_assert(0 < 1, "There is no slot for us");
   23125             : static const JSJitInfo imeMode_setterinfo = {
   23126             :   { (JSJitGetterOp)set_imeMode },
   23127             :   { prototypes::id::CSS2Properties },
   23128             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23129             :   JSJitInfo::Setter,
   23130             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23131             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23132             :   false,  /* isInfallible. False in setters. */
   23133             :   false,  /* isMovable.  Not relevant for setters. */
   23134             :   false, /* isEliminatable.  Not relevant for setters. */
   23135             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23136             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23137             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23138             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23139             : };
   23140             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23141             : static_assert(0 < 1, "There is no slot for us");
   23142             : 
   23143             : static bool
   23144           0 : get_ime_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23145             : {
   23146           0 :   binding_detail::FastErrorResult rv;
   23147           0 :   DOMString result;
   23148           0 :   self->GetImeMode(result, rv);
   23149           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23150           0 :     return false;
   23151             :   }
   23152           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23153           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23154           0 :     return false;
   23155             :   }
   23156           0 :   return true;
   23157             : }
   23158             : 
   23159             : static bool
   23160           0 : set_ime_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23161             : {
   23162           0 :   binding_detail::FakeString arg0;
   23163           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23164           0 :     return false;
   23165             :   }
   23166           0 :   binding_detail::FastErrorResult rv;
   23167           0 :   self->SetImeMode(NonNullHelper(Constify(arg0)), rv);
   23168           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23169           0 :     return false;
   23170             :   }
   23171           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23172             : 
   23173           0 :   return true;
   23174             : }
   23175             : 
   23176             : static const JSJitInfo ime_mode_getterinfo = {
   23177             :   { (JSJitGetterOp)get_ime_mode },
   23178             :   { prototypes::id::CSS2Properties },
   23179             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23180             :   JSJitInfo::Getter,
   23181             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23182             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23183             :   false,  /* isInfallible. False in setters. */
   23184             :   false,  /* isMovable.  Not relevant for setters. */
   23185             :   false, /* isEliminatable.  Not relevant for setters. */
   23186             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23187             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23188             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23189             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23190             : };
   23191             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23192             : static_assert(0 < 1, "There is no slot for us");
   23193             : static const JSJitInfo ime_mode_setterinfo = {
   23194             :   { (JSJitGetterOp)set_ime_mode },
   23195             :   { prototypes::id::CSS2Properties },
   23196             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23197             :   JSJitInfo::Setter,
   23198             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23199             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23200             :   false,  /* isInfallible. False in setters. */
   23201             :   false,  /* isMovable.  Not relevant for setters. */
   23202             :   false, /* isEliminatable.  Not relevant for setters. */
   23203             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23204             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23205             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23206             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23207             : };
   23208             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23209             : static_assert(0 < 1, "There is no slot for us");
   23210             : 
   23211             : static bool
   23212           0 : get_inlineSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23213             : {
   23214           0 :   binding_detail::FastErrorResult rv;
   23215           0 :   DOMString result;
   23216           0 :   self->GetInlineSize(result, rv);
   23217           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23218           0 :     return false;
   23219             :   }
   23220           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23221           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23222           0 :     return false;
   23223             :   }
   23224           0 :   return true;
   23225             : }
   23226             : 
   23227             : static bool
   23228           0 : set_inlineSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23229             : {
   23230           0 :   binding_detail::FakeString arg0;
   23231           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23232           0 :     return false;
   23233             :   }
   23234           0 :   binding_detail::FastErrorResult rv;
   23235           0 :   self->SetInlineSize(NonNullHelper(Constify(arg0)), rv);
   23236           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23237           0 :     return false;
   23238             :   }
   23239           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23240             : 
   23241           0 :   return true;
   23242             : }
   23243             : 
   23244             : static const JSJitInfo inlineSize_getterinfo = {
   23245             :   { (JSJitGetterOp)get_inlineSize },
   23246             :   { prototypes::id::CSS2Properties },
   23247             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23248             :   JSJitInfo::Getter,
   23249             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23250             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23251             :   false,  /* isInfallible. False in setters. */
   23252             :   false,  /* isMovable.  Not relevant for setters. */
   23253             :   false, /* isEliminatable.  Not relevant for setters. */
   23254             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23255             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23256             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23257             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23258             : };
   23259             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23260             : static_assert(0 < 1, "There is no slot for us");
   23261             : static const JSJitInfo inlineSize_setterinfo = {
   23262             :   { (JSJitGetterOp)set_inlineSize },
   23263             :   { prototypes::id::CSS2Properties },
   23264             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23265             :   JSJitInfo::Setter,
   23266             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23267             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23268             :   false,  /* isInfallible. False in setters. */
   23269             :   false,  /* isMovable.  Not relevant for setters. */
   23270             :   false, /* isEliminatable.  Not relevant for setters. */
   23271             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23272             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23273             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23274             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23275             : };
   23276             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23277             : static_assert(0 < 1, "There is no slot for us");
   23278             : 
   23279             : static bool
   23280           0 : get_inline_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23281             : {
   23282           0 :   binding_detail::FastErrorResult rv;
   23283           0 :   DOMString result;
   23284           0 :   self->GetInlineSize(result, rv);
   23285           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23286           0 :     return false;
   23287             :   }
   23288           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23289           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23290           0 :     return false;
   23291             :   }
   23292           0 :   return true;
   23293             : }
   23294             : 
   23295             : static bool
   23296           0 : set_inline_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23297             : {
   23298           0 :   binding_detail::FakeString arg0;
   23299           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23300           0 :     return false;
   23301             :   }
   23302           0 :   binding_detail::FastErrorResult rv;
   23303           0 :   self->SetInlineSize(NonNullHelper(Constify(arg0)), rv);
   23304           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23305           0 :     return false;
   23306             :   }
   23307           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23308             : 
   23309           0 :   return true;
   23310             : }
   23311             : 
   23312             : static const JSJitInfo inline_size_getterinfo = {
   23313             :   { (JSJitGetterOp)get_inline_size },
   23314             :   { prototypes::id::CSS2Properties },
   23315             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23316             :   JSJitInfo::Getter,
   23317             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23318             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23319             :   false,  /* isInfallible. False in setters. */
   23320             :   false,  /* isMovable.  Not relevant for setters. */
   23321             :   false, /* isEliminatable.  Not relevant for setters. */
   23322             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23323             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23324             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23325             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23326             : };
   23327             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23328             : static_assert(0 < 1, "There is no slot for us");
   23329             : static const JSJitInfo inline_size_setterinfo = {
   23330             :   { (JSJitGetterOp)set_inline_size },
   23331             :   { prototypes::id::CSS2Properties },
   23332             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23333             :   JSJitInfo::Setter,
   23334             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23335             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23336             :   false,  /* isInfallible. False in setters. */
   23337             :   false,  /* isMovable.  Not relevant for setters. */
   23338             :   false, /* isEliminatable.  Not relevant for setters. */
   23339             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23340             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23341             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23342             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23343             : };
   23344             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23345             : static_assert(0 < 1, "There is no slot for us");
   23346             : 
   23347             : static bool
   23348           0 : get_isolation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23349             : {
   23350           0 :   binding_detail::FastErrorResult rv;
   23351           0 :   DOMString result;
   23352           0 :   self->GetIsolation(result, rv);
   23353           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23354           0 :     return false;
   23355             :   }
   23356           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23357           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23358           0 :     return false;
   23359             :   }
   23360           0 :   return true;
   23361             : }
   23362             : 
   23363             : static bool
   23364           0 : set_isolation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23365             : {
   23366           0 :   binding_detail::FakeString arg0;
   23367           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23368           0 :     return false;
   23369             :   }
   23370           0 :   binding_detail::FastErrorResult rv;
   23371           0 :   self->SetIsolation(NonNullHelper(Constify(arg0)), rv);
   23372           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23373           0 :     return false;
   23374             :   }
   23375           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23376             : 
   23377           0 :   return true;
   23378             : }
   23379             : 
   23380             : static const JSJitInfo isolation_getterinfo = {
   23381             :   { (JSJitGetterOp)get_isolation },
   23382             :   { prototypes::id::CSS2Properties },
   23383             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23384             :   JSJitInfo::Getter,
   23385             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23386             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23387             :   false,  /* isInfallible. False in setters. */
   23388             :   false,  /* isMovable.  Not relevant for setters. */
   23389             :   false, /* isEliminatable.  Not relevant for setters. */
   23390             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23391             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23392             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23393             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23394             : };
   23395             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23396             : static_assert(0 < 1, "There is no slot for us");
   23397             : static const JSJitInfo isolation_setterinfo = {
   23398             :   { (JSJitGetterOp)set_isolation },
   23399             :   { prototypes::id::CSS2Properties },
   23400             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23401             :   JSJitInfo::Setter,
   23402             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23403             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23404             :   false,  /* isInfallible. False in setters. */
   23405             :   false,  /* isMovable.  Not relevant for setters. */
   23406             :   false, /* isEliminatable.  Not relevant for setters. */
   23407             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23408             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23409             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23410             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23411             : };
   23412             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23413             : static_assert(0 < 1, "There is no slot for us");
   23414             : 
   23415             : static bool
   23416           0 : get_justifyContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23417             : {
   23418           0 :   binding_detail::FastErrorResult rv;
   23419           0 :   DOMString result;
   23420           0 :   self->GetJustifyContent(result, rv);
   23421           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23422           0 :     return false;
   23423             :   }
   23424           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23425           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23426           0 :     return false;
   23427             :   }
   23428           0 :   return true;
   23429             : }
   23430             : 
   23431             : static bool
   23432           0 : set_justifyContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23433             : {
   23434           0 :   binding_detail::FakeString arg0;
   23435           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23436           0 :     return false;
   23437             :   }
   23438           0 :   binding_detail::FastErrorResult rv;
   23439           0 :   self->SetJustifyContent(NonNullHelper(Constify(arg0)), rv);
   23440           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23441           0 :     return false;
   23442             :   }
   23443           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23444             : 
   23445           0 :   return true;
   23446             : }
   23447             : 
   23448             : static const JSJitInfo justifyContent_getterinfo = {
   23449             :   { (JSJitGetterOp)get_justifyContent },
   23450             :   { prototypes::id::CSS2Properties },
   23451             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23452             :   JSJitInfo::Getter,
   23453             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23454             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23455             :   false,  /* isInfallible. False in setters. */
   23456             :   false,  /* isMovable.  Not relevant for setters. */
   23457             :   false, /* isEliminatable.  Not relevant for setters. */
   23458             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23459             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23460             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23461             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23462             : };
   23463             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23464             : static_assert(0 < 1, "There is no slot for us");
   23465             : static const JSJitInfo justifyContent_setterinfo = {
   23466             :   { (JSJitGetterOp)set_justifyContent },
   23467             :   { prototypes::id::CSS2Properties },
   23468             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23469             :   JSJitInfo::Setter,
   23470             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23471             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23472             :   false,  /* isInfallible. False in setters. */
   23473             :   false,  /* isMovable.  Not relevant for setters. */
   23474             :   false, /* isEliminatable.  Not relevant for setters. */
   23475             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23476             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23477             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23478             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23479             : };
   23480             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23481             : static_assert(0 < 1, "There is no slot for us");
   23482             : 
   23483             : static bool
   23484           0 : get_justify_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23485             : {
   23486           0 :   binding_detail::FastErrorResult rv;
   23487           0 :   DOMString result;
   23488           0 :   self->GetJustifyContent(result, rv);
   23489           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23490           0 :     return false;
   23491             :   }
   23492           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23493           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23494           0 :     return false;
   23495             :   }
   23496           0 :   return true;
   23497             : }
   23498             : 
   23499             : static bool
   23500           0 : set_justify_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23501             : {
   23502           0 :   binding_detail::FakeString arg0;
   23503           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23504           0 :     return false;
   23505             :   }
   23506           0 :   binding_detail::FastErrorResult rv;
   23507           0 :   self->SetJustifyContent(NonNullHelper(Constify(arg0)), rv);
   23508           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23509           0 :     return false;
   23510             :   }
   23511           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23512             : 
   23513           0 :   return true;
   23514             : }
   23515             : 
   23516             : static const JSJitInfo justify_content_getterinfo = {
   23517             :   { (JSJitGetterOp)get_justify_content },
   23518             :   { prototypes::id::CSS2Properties },
   23519             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23520             :   JSJitInfo::Getter,
   23521             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23522             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23523             :   false,  /* isInfallible. False in setters. */
   23524             :   false,  /* isMovable.  Not relevant for setters. */
   23525             :   false, /* isEliminatable.  Not relevant for setters. */
   23526             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23527             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23528             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23529             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23530             : };
   23531             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23532             : static_assert(0 < 1, "There is no slot for us");
   23533             : static const JSJitInfo justify_content_setterinfo = {
   23534             :   { (JSJitGetterOp)set_justify_content },
   23535             :   { prototypes::id::CSS2Properties },
   23536             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23537             :   JSJitInfo::Setter,
   23538             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23539             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23540             :   false,  /* isInfallible. False in setters. */
   23541             :   false,  /* isMovable.  Not relevant for setters. */
   23542             :   false, /* isEliminatable.  Not relevant for setters. */
   23543             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23544             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23545             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23546             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23547             : };
   23548             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23549             : static_assert(0 < 1, "There is no slot for us");
   23550             : 
   23551             : static bool
   23552           0 : get_justifyItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23553             : {
   23554           0 :   binding_detail::FastErrorResult rv;
   23555           0 :   DOMString result;
   23556           0 :   self->GetJustifyItems(result, rv);
   23557           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23558           0 :     return false;
   23559             :   }
   23560           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23561           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23562           0 :     return false;
   23563             :   }
   23564           0 :   return true;
   23565             : }
   23566             : 
   23567             : static bool
   23568           0 : set_justifyItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23569             : {
   23570           0 :   binding_detail::FakeString arg0;
   23571           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23572           0 :     return false;
   23573             :   }
   23574           0 :   binding_detail::FastErrorResult rv;
   23575           0 :   self->SetJustifyItems(NonNullHelper(Constify(arg0)), rv);
   23576           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23577           0 :     return false;
   23578             :   }
   23579           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23580             : 
   23581           0 :   return true;
   23582             : }
   23583             : 
   23584             : static const JSJitInfo justifyItems_getterinfo = {
   23585             :   { (JSJitGetterOp)get_justifyItems },
   23586             :   { prototypes::id::CSS2Properties },
   23587             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23588             :   JSJitInfo::Getter,
   23589             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23590             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23591             :   false,  /* isInfallible. False in setters. */
   23592             :   false,  /* isMovable.  Not relevant for setters. */
   23593             :   false, /* isEliminatable.  Not relevant for setters. */
   23594             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23595             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23596             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23597             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23598             : };
   23599             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23600             : static_assert(0 < 1, "There is no slot for us");
   23601             : static const JSJitInfo justifyItems_setterinfo = {
   23602             :   { (JSJitGetterOp)set_justifyItems },
   23603             :   { prototypes::id::CSS2Properties },
   23604             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23605             :   JSJitInfo::Setter,
   23606             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23607             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23608             :   false,  /* isInfallible. False in setters. */
   23609             :   false,  /* isMovable.  Not relevant for setters. */
   23610             :   false, /* isEliminatable.  Not relevant for setters. */
   23611             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23612             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23613             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23614             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23615             : };
   23616             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23617             : static_assert(0 < 1, "There is no slot for us");
   23618             : 
   23619             : static bool
   23620           0 : get_justify_items(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23621             : {
   23622           0 :   binding_detail::FastErrorResult rv;
   23623           0 :   DOMString result;
   23624           0 :   self->GetJustifyItems(result, rv);
   23625           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23626           0 :     return false;
   23627             :   }
   23628           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23629           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23630           0 :     return false;
   23631             :   }
   23632           0 :   return true;
   23633             : }
   23634             : 
   23635             : static bool
   23636           0 : set_justify_items(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23637             : {
   23638           0 :   binding_detail::FakeString arg0;
   23639           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23640           0 :     return false;
   23641             :   }
   23642           0 :   binding_detail::FastErrorResult rv;
   23643           0 :   self->SetJustifyItems(NonNullHelper(Constify(arg0)), rv);
   23644           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23645           0 :     return false;
   23646             :   }
   23647           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23648             : 
   23649           0 :   return true;
   23650             : }
   23651             : 
   23652             : static const JSJitInfo justify_items_getterinfo = {
   23653             :   { (JSJitGetterOp)get_justify_items },
   23654             :   { prototypes::id::CSS2Properties },
   23655             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23656             :   JSJitInfo::Getter,
   23657             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23658             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23659             :   false,  /* isInfallible. False in setters. */
   23660             :   false,  /* isMovable.  Not relevant for setters. */
   23661             :   false, /* isEliminatable.  Not relevant for setters. */
   23662             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23663             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23664             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23665             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23666             : };
   23667             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23668             : static_assert(0 < 1, "There is no slot for us");
   23669             : static const JSJitInfo justify_items_setterinfo = {
   23670             :   { (JSJitGetterOp)set_justify_items },
   23671             :   { prototypes::id::CSS2Properties },
   23672             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23673             :   JSJitInfo::Setter,
   23674             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23675             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23676             :   false,  /* isInfallible. False in setters. */
   23677             :   false,  /* isMovable.  Not relevant for setters. */
   23678             :   false, /* isEliminatable.  Not relevant for setters. */
   23679             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23680             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23681             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23682             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23683             : };
   23684             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23685             : static_assert(0 < 1, "There is no slot for us");
   23686             : 
   23687             : static bool
   23688           0 : get_justifySelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23689             : {
   23690           0 :   binding_detail::FastErrorResult rv;
   23691           0 :   DOMString result;
   23692           0 :   self->GetJustifySelf(result, rv);
   23693           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23694           0 :     return false;
   23695             :   }
   23696           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23697           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23698           0 :     return false;
   23699             :   }
   23700           0 :   return true;
   23701             : }
   23702             : 
   23703             : static bool
   23704           0 : set_justifySelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23705             : {
   23706           0 :   binding_detail::FakeString arg0;
   23707           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23708           0 :     return false;
   23709             :   }
   23710           0 :   binding_detail::FastErrorResult rv;
   23711           0 :   self->SetJustifySelf(NonNullHelper(Constify(arg0)), rv);
   23712           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23713           0 :     return false;
   23714             :   }
   23715           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23716             : 
   23717           0 :   return true;
   23718             : }
   23719             : 
   23720             : static const JSJitInfo justifySelf_getterinfo = {
   23721             :   { (JSJitGetterOp)get_justifySelf },
   23722             :   { prototypes::id::CSS2Properties },
   23723             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23724             :   JSJitInfo::Getter,
   23725             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23726             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23727             :   false,  /* isInfallible. False in setters. */
   23728             :   false,  /* isMovable.  Not relevant for setters. */
   23729             :   false, /* isEliminatable.  Not relevant for setters. */
   23730             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23731             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23732             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23733             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23734             : };
   23735             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23736             : static_assert(0 < 1, "There is no slot for us");
   23737             : static const JSJitInfo justifySelf_setterinfo = {
   23738             :   { (JSJitGetterOp)set_justifySelf },
   23739             :   { prototypes::id::CSS2Properties },
   23740             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23741             :   JSJitInfo::Setter,
   23742             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23743             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23744             :   false,  /* isInfallible. False in setters. */
   23745             :   false,  /* isMovable.  Not relevant for setters. */
   23746             :   false, /* isEliminatable.  Not relevant for setters. */
   23747             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23748             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23749             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23750             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23751             : };
   23752             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23753             : static_assert(0 < 1, "There is no slot for us");
   23754             : 
   23755             : static bool
   23756           0 : get_justify_self(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23757             : {
   23758           0 :   binding_detail::FastErrorResult rv;
   23759           0 :   DOMString result;
   23760           0 :   self->GetJustifySelf(result, rv);
   23761           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23762           0 :     return false;
   23763             :   }
   23764           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23765           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23766           0 :     return false;
   23767             :   }
   23768           0 :   return true;
   23769             : }
   23770             : 
   23771             : static bool
   23772           0 : set_justify_self(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23773             : {
   23774           0 :   binding_detail::FakeString arg0;
   23775           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23776           0 :     return false;
   23777             :   }
   23778           0 :   binding_detail::FastErrorResult rv;
   23779           0 :   self->SetJustifySelf(NonNullHelper(Constify(arg0)), rv);
   23780           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23781           0 :     return false;
   23782             :   }
   23783           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23784             : 
   23785           0 :   return true;
   23786             : }
   23787             : 
   23788             : static const JSJitInfo justify_self_getterinfo = {
   23789             :   { (JSJitGetterOp)get_justify_self },
   23790             :   { prototypes::id::CSS2Properties },
   23791             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23792             :   JSJitInfo::Getter,
   23793             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23794             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23795             :   false,  /* isInfallible. False in setters. */
   23796             :   false,  /* isMovable.  Not relevant for setters. */
   23797             :   false, /* isEliminatable.  Not relevant for setters. */
   23798             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23799             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23800             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23801             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23802             : };
   23803             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23804             : static_assert(0 < 1, "There is no slot for us");
   23805             : static const JSJitInfo justify_self_setterinfo = {
   23806             :   { (JSJitGetterOp)set_justify_self },
   23807             :   { prototypes::id::CSS2Properties },
   23808             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23809             :   JSJitInfo::Setter,
   23810             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23811             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23812             :   false,  /* isInfallible. False in setters. */
   23813             :   false,  /* isMovable.  Not relevant for setters. */
   23814             :   false, /* isEliminatable.  Not relevant for setters. */
   23815             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23816             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23817             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23818             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23819             : };
   23820             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23821             : static_assert(0 < 1, "There is no slot for us");
   23822             : 
   23823             : static bool
   23824           0 : get_left(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23825             : {
   23826           0 :   binding_detail::FastErrorResult rv;
   23827           0 :   DOMString result;
   23828           0 :   self->GetLeft(result, rv);
   23829           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23830           0 :     return false;
   23831             :   }
   23832           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23833           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23834           0 :     return false;
   23835             :   }
   23836           0 :   return true;
   23837             : }
   23838             : 
   23839             : static bool
   23840           0 : set_left(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23841             : {
   23842           0 :   binding_detail::FakeString arg0;
   23843           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23844           0 :     return false;
   23845             :   }
   23846           0 :   binding_detail::FastErrorResult rv;
   23847           0 :   self->SetLeft(NonNullHelper(Constify(arg0)), rv);
   23848           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23849           0 :     return false;
   23850             :   }
   23851           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23852             : 
   23853           0 :   return true;
   23854             : }
   23855             : 
   23856             : static const JSJitInfo left_getterinfo = {
   23857             :   { (JSJitGetterOp)get_left },
   23858             :   { prototypes::id::CSS2Properties },
   23859             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23860             :   JSJitInfo::Getter,
   23861             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23862             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23863             :   false,  /* isInfallible. False in setters. */
   23864             :   false,  /* isMovable.  Not relevant for setters. */
   23865             :   false, /* isEliminatable.  Not relevant for setters. */
   23866             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23867             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23868             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23869             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23870             : };
   23871             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23872             : static_assert(0 < 1, "There is no slot for us");
   23873             : static const JSJitInfo left_setterinfo = {
   23874             :   { (JSJitGetterOp)set_left },
   23875             :   { prototypes::id::CSS2Properties },
   23876             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23877             :   JSJitInfo::Setter,
   23878             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23879             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23880             :   false,  /* isInfallible. False in setters. */
   23881             :   false,  /* isMovable.  Not relevant for setters. */
   23882             :   false, /* isEliminatable.  Not relevant for setters. */
   23883             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23884             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23885             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23886             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23887             : };
   23888             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23889             : static_assert(0 < 1, "There is no slot for us");
   23890             : 
   23891             : static bool
   23892           0 : get_letterSpacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23893             : {
   23894           0 :   binding_detail::FastErrorResult rv;
   23895           0 :   DOMString result;
   23896           0 :   self->GetLetterSpacing(result, rv);
   23897           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23898           0 :     return false;
   23899             :   }
   23900           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23901           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23902           0 :     return false;
   23903             :   }
   23904           0 :   return true;
   23905             : }
   23906             : 
   23907             : static bool
   23908           0 : set_letterSpacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23909             : {
   23910           0 :   binding_detail::FakeString arg0;
   23911           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23912           0 :     return false;
   23913             :   }
   23914           0 :   binding_detail::FastErrorResult rv;
   23915           0 :   self->SetLetterSpacing(NonNullHelper(Constify(arg0)), rv);
   23916           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23917           0 :     return false;
   23918             :   }
   23919           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23920             : 
   23921           0 :   return true;
   23922             : }
   23923             : 
   23924             : static const JSJitInfo letterSpacing_getterinfo = {
   23925             :   { (JSJitGetterOp)get_letterSpacing },
   23926             :   { prototypes::id::CSS2Properties },
   23927             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23928             :   JSJitInfo::Getter,
   23929             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23930             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23931             :   false,  /* isInfallible. False in setters. */
   23932             :   false,  /* isMovable.  Not relevant for setters. */
   23933             :   false, /* isEliminatable.  Not relevant for setters. */
   23934             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23935             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23936             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23937             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23938             : };
   23939             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23940             : static_assert(0 < 1, "There is no slot for us");
   23941             : static const JSJitInfo letterSpacing_setterinfo = {
   23942             :   { (JSJitGetterOp)set_letterSpacing },
   23943             :   { prototypes::id::CSS2Properties },
   23944             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23945             :   JSJitInfo::Setter,
   23946             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23947             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   23948             :   false,  /* isInfallible. False in setters. */
   23949             :   false,  /* isMovable.  Not relevant for setters. */
   23950             :   false, /* isEliminatable.  Not relevant for setters. */
   23951             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   23952             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   23953             :   false,  /* isTypedMethod.  Only relevant for methods. */
   23954             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   23955             : };
   23956             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   23957             : static_assert(0 < 1, "There is no slot for us");
   23958             : 
   23959             : static bool
   23960           0 : get_letter_spacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   23961             : {
   23962           0 :   binding_detail::FastErrorResult rv;
   23963           0 :   DOMString result;
   23964           0 :   self->GetLetterSpacing(result, rv);
   23965           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23966           0 :     return false;
   23967             :   }
   23968           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23969           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   23970           0 :     return false;
   23971             :   }
   23972           0 :   return true;
   23973             : }
   23974             : 
   23975             : static bool
   23976           0 : set_letter_spacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   23977             : {
   23978           0 :   binding_detail::FakeString arg0;
   23979           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   23980           0 :     return false;
   23981             :   }
   23982           0 :   binding_detail::FastErrorResult rv;
   23983           0 :   self->SetLetterSpacing(NonNullHelper(Constify(arg0)), rv);
   23984           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   23985           0 :     return false;
   23986             :   }
   23987           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   23988             : 
   23989           0 :   return true;
   23990             : }
   23991             : 
   23992             : static const JSJitInfo letter_spacing_getterinfo = {
   23993             :   { (JSJitGetterOp)get_letter_spacing },
   23994             :   { prototypes::id::CSS2Properties },
   23995             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   23996             :   JSJitInfo::Getter,
   23997             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   23998             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   23999             :   false,  /* isInfallible. False in setters. */
   24000             :   false,  /* isMovable.  Not relevant for setters. */
   24001             :   false, /* isEliminatable.  Not relevant for setters. */
   24002             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24003             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24004             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24005             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24006             : };
   24007             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24008             : static_assert(0 < 1, "There is no slot for us");
   24009             : static const JSJitInfo letter_spacing_setterinfo = {
   24010             :   { (JSJitGetterOp)set_letter_spacing },
   24011             :   { prototypes::id::CSS2Properties },
   24012             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24013             :   JSJitInfo::Setter,
   24014             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24015             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24016             :   false,  /* isInfallible. False in setters. */
   24017             :   false,  /* isMovable.  Not relevant for setters. */
   24018             :   false, /* isEliminatable.  Not relevant for setters. */
   24019             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24020             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24021             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24022             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24023             : };
   24024             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24025             : static_assert(0 < 1, "There is no slot for us");
   24026             : 
   24027             : static bool
   24028           0 : get_lightingColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24029             : {
   24030           0 :   binding_detail::FastErrorResult rv;
   24031           0 :   DOMString result;
   24032           0 :   self->GetLightingColor(result, rv);
   24033           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24034           0 :     return false;
   24035             :   }
   24036           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24037           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24038           0 :     return false;
   24039             :   }
   24040           0 :   return true;
   24041             : }
   24042             : 
   24043             : static bool
   24044           0 : set_lightingColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24045             : {
   24046           0 :   binding_detail::FakeString arg0;
   24047           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24048           0 :     return false;
   24049             :   }
   24050           0 :   binding_detail::FastErrorResult rv;
   24051           0 :   self->SetLightingColor(NonNullHelper(Constify(arg0)), rv);
   24052           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24053           0 :     return false;
   24054             :   }
   24055           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24056             : 
   24057           0 :   return true;
   24058             : }
   24059             : 
   24060             : static const JSJitInfo lightingColor_getterinfo = {
   24061             :   { (JSJitGetterOp)get_lightingColor },
   24062             :   { prototypes::id::CSS2Properties },
   24063             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24064             :   JSJitInfo::Getter,
   24065             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24066             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24067             :   false,  /* isInfallible. False in setters. */
   24068             :   false,  /* isMovable.  Not relevant for setters. */
   24069             :   false, /* isEliminatable.  Not relevant for setters. */
   24070             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24071             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24072             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24073             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24074             : };
   24075             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24076             : static_assert(0 < 1, "There is no slot for us");
   24077             : static const JSJitInfo lightingColor_setterinfo = {
   24078             :   { (JSJitGetterOp)set_lightingColor },
   24079             :   { prototypes::id::CSS2Properties },
   24080             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24081             :   JSJitInfo::Setter,
   24082             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24083             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24084             :   false,  /* isInfallible. False in setters. */
   24085             :   false,  /* isMovable.  Not relevant for setters. */
   24086             :   false, /* isEliminatable.  Not relevant for setters. */
   24087             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24088             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24089             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24090             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24091             : };
   24092             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24093             : static_assert(0 < 1, "There is no slot for us");
   24094             : 
   24095             : static bool
   24096           0 : get_lighting_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24097             : {
   24098           0 :   binding_detail::FastErrorResult rv;
   24099           0 :   DOMString result;
   24100           0 :   self->GetLightingColor(result, rv);
   24101           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24102           0 :     return false;
   24103             :   }
   24104           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24105           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24106           0 :     return false;
   24107             :   }
   24108           0 :   return true;
   24109             : }
   24110             : 
   24111             : static bool
   24112           0 : set_lighting_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24113             : {
   24114           0 :   binding_detail::FakeString arg0;
   24115           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24116           0 :     return false;
   24117             :   }
   24118           0 :   binding_detail::FastErrorResult rv;
   24119           0 :   self->SetLightingColor(NonNullHelper(Constify(arg0)), rv);
   24120           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24121           0 :     return false;
   24122             :   }
   24123           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24124             : 
   24125           0 :   return true;
   24126             : }
   24127             : 
   24128             : static const JSJitInfo lighting_color_getterinfo = {
   24129             :   { (JSJitGetterOp)get_lighting_color },
   24130             :   { prototypes::id::CSS2Properties },
   24131             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24132             :   JSJitInfo::Getter,
   24133             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24134             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24135             :   false,  /* isInfallible. False in setters. */
   24136             :   false,  /* isMovable.  Not relevant for setters. */
   24137             :   false, /* isEliminatable.  Not relevant for setters. */
   24138             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24139             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24140             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24141             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24142             : };
   24143             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24144             : static_assert(0 < 1, "There is no slot for us");
   24145             : static const JSJitInfo lighting_color_setterinfo = {
   24146             :   { (JSJitGetterOp)set_lighting_color },
   24147             :   { prototypes::id::CSS2Properties },
   24148             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24149             :   JSJitInfo::Setter,
   24150             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24151             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24152             :   false,  /* isInfallible. False in setters. */
   24153             :   false,  /* isMovable.  Not relevant for setters. */
   24154             :   false, /* isEliminatable.  Not relevant for setters. */
   24155             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24156             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24157             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24158             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24159             : };
   24160             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24161             : static_assert(0 < 1, "There is no slot for us");
   24162             : 
   24163             : static bool
   24164           0 : get_lineHeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24165             : {
   24166           0 :   binding_detail::FastErrorResult rv;
   24167           0 :   DOMString result;
   24168           0 :   self->GetLineHeight(result, rv);
   24169           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24170           0 :     return false;
   24171             :   }
   24172           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24173           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24174           0 :     return false;
   24175             :   }
   24176           0 :   return true;
   24177             : }
   24178             : 
   24179             : static bool
   24180           0 : set_lineHeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24181             : {
   24182           0 :   binding_detail::FakeString arg0;
   24183           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24184           0 :     return false;
   24185             :   }
   24186           0 :   binding_detail::FastErrorResult rv;
   24187           0 :   self->SetLineHeight(NonNullHelper(Constify(arg0)), rv);
   24188           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24189           0 :     return false;
   24190             :   }
   24191           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24192             : 
   24193           0 :   return true;
   24194             : }
   24195             : 
   24196             : static const JSJitInfo lineHeight_getterinfo = {
   24197             :   { (JSJitGetterOp)get_lineHeight },
   24198             :   { prototypes::id::CSS2Properties },
   24199             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24200             :   JSJitInfo::Getter,
   24201             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24202             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24203             :   false,  /* isInfallible. False in setters. */
   24204             :   false,  /* isMovable.  Not relevant for setters. */
   24205             :   false, /* isEliminatable.  Not relevant for setters. */
   24206             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24207             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24208             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24209             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24210             : };
   24211             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24212             : static_assert(0 < 1, "There is no slot for us");
   24213             : static const JSJitInfo lineHeight_setterinfo = {
   24214             :   { (JSJitGetterOp)set_lineHeight },
   24215             :   { prototypes::id::CSS2Properties },
   24216             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24217             :   JSJitInfo::Setter,
   24218             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24219             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24220             :   false,  /* isInfallible. False in setters. */
   24221             :   false,  /* isMovable.  Not relevant for setters. */
   24222             :   false, /* isEliminatable.  Not relevant for setters. */
   24223             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24224             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24225             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24226             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24227             : };
   24228             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24229             : static_assert(0 < 1, "There is no slot for us");
   24230             : 
   24231             : static bool
   24232           0 : get_line_height(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24233             : {
   24234           0 :   binding_detail::FastErrorResult rv;
   24235           0 :   DOMString result;
   24236           0 :   self->GetLineHeight(result, rv);
   24237           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24238           0 :     return false;
   24239             :   }
   24240           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24241           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24242           0 :     return false;
   24243             :   }
   24244           0 :   return true;
   24245             : }
   24246             : 
   24247             : static bool
   24248           0 : set_line_height(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24249             : {
   24250           0 :   binding_detail::FakeString arg0;
   24251           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24252           0 :     return false;
   24253             :   }
   24254           0 :   binding_detail::FastErrorResult rv;
   24255           0 :   self->SetLineHeight(NonNullHelper(Constify(arg0)), rv);
   24256           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24257           0 :     return false;
   24258             :   }
   24259           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24260             : 
   24261           0 :   return true;
   24262             : }
   24263             : 
   24264             : static const JSJitInfo line_height_getterinfo = {
   24265             :   { (JSJitGetterOp)get_line_height },
   24266             :   { prototypes::id::CSS2Properties },
   24267             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24268             :   JSJitInfo::Getter,
   24269             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24270             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24271             :   false,  /* isInfallible. False in setters. */
   24272             :   false,  /* isMovable.  Not relevant for setters. */
   24273             :   false, /* isEliminatable.  Not relevant for setters. */
   24274             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24275             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24276             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24277             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24278             : };
   24279             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24280             : static_assert(0 < 1, "There is no slot for us");
   24281             : static const JSJitInfo line_height_setterinfo = {
   24282             :   { (JSJitGetterOp)set_line_height },
   24283             :   { prototypes::id::CSS2Properties },
   24284             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24285             :   JSJitInfo::Setter,
   24286             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24287             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24288             :   false,  /* isInfallible. False in setters. */
   24289             :   false,  /* isMovable.  Not relevant for setters. */
   24290             :   false, /* isEliminatable.  Not relevant for setters. */
   24291             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24292             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24293             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24294             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24295             : };
   24296             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24297             : static_assert(0 < 1, "There is no slot for us");
   24298             : 
   24299             : static bool
   24300           0 : get_listStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24301             : {
   24302           0 :   binding_detail::FastErrorResult rv;
   24303           0 :   DOMString result;
   24304           0 :   self->GetListStyle(result, rv);
   24305           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24306           0 :     return false;
   24307             :   }
   24308           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24309           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24310           0 :     return false;
   24311             :   }
   24312           0 :   return true;
   24313             : }
   24314             : 
   24315             : static bool
   24316           0 : set_listStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24317             : {
   24318           0 :   binding_detail::FakeString arg0;
   24319           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24320           0 :     return false;
   24321             :   }
   24322           0 :   binding_detail::FastErrorResult rv;
   24323           0 :   self->SetListStyle(NonNullHelper(Constify(arg0)), rv);
   24324           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24325           0 :     return false;
   24326             :   }
   24327           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24328             : 
   24329           0 :   return true;
   24330             : }
   24331             : 
   24332             : static const JSJitInfo listStyle_getterinfo = {
   24333             :   { (JSJitGetterOp)get_listStyle },
   24334             :   { prototypes::id::CSS2Properties },
   24335             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24336             :   JSJitInfo::Getter,
   24337             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24338             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24339             :   false,  /* isInfallible. False in setters. */
   24340             :   false,  /* isMovable.  Not relevant for setters. */
   24341             :   false, /* isEliminatable.  Not relevant for setters. */
   24342             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24343             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24344             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24345             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24346             : };
   24347             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24348             : static_assert(0 < 1, "There is no slot for us");
   24349             : static const JSJitInfo listStyle_setterinfo = {
   24350             :   { (JSJitGetterOp)set_listStyle },
   24351             :   { prototypes::id::CSS2Properties },
   24352             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24353             :   JSJitInfo::Setter,
   24354             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24355             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24356             :   false,  /* isInfallible. False in setters. */
   24357             :   false,  /* isMovable.  Not relevant for setters. */
   24358             :   false, /* isEliminatable.  Not relevant for setters. */
   24359             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24360             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24361             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24362             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24363             : };
   24364             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24365             : static_assert(0 < 1, "There is no slot for us");
   24366             : 
   24367             : static bool
   24368           0 : get_list_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24369             : {
   24370           0 :   binding_detail::FastErrorResult rv;
   24371           0 :   DOMString result;
   24372           0 :   self->GetListStyle(result, rv);
   24373           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24374           0 :     return false;
   24375             :   }
   24376           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24377           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24378           0 :     return false;
   24379             :   }
   24380           0 :   return true;
   24381             : }
   24382             : 
   24383             : static bool
   24384           0 : set_list_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24385             : {
   24386           0 :   binding_detail::FakeString arg0;
   24387           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24388           0 :     return false;
   24389             :   }
   24390           0 :   binding_detail::FastErrorResult rv;
   24391           0 :   self->SetListStyle(NonNullHelper(Constify(arg0)), rv);
   24392           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24393           0 :     return false;
   24394             :   }
   24395           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24396             : 
   24397           0 :   return true;
   24398             : }
   24399             : 
   24400             : static const JSJitInfo list_style_getterinfo = {
   24401             :   { (JSJitGetterOp)get_list_style },
   24402             :   { prototypes::id::CSS2Properties },
   24403             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24404             :   JSJitInfo::Getter,
   24405             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24406             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24407             :   false,  /* isInfallible. False in setters. */
   24408             :   false,  /* isMovable.  Not relevant for setters. */
   24409             :   false, /* isEliminatable.  Not relevant for setters. */
   24410             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24411             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24412             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24413             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24414             : };
   24415             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24416             : static_assert(0 < 1, "There is no slot for us");
   24417             : static const JSJitInfo list_style_setterinfo = {
   24418             :   { (JSJitGetterOp)set_list_style },
   24419             :   { prototypes::id::CSS2Properties },
   24420             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24421             :   JSJitInfo::Setter,
   24422             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24423             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24424             :   false,  /* isInfallible. False in setters. */
   24425             :   false,  /* isMovable.  Not relevant for setters. */
   24426             :   false, /* isEliminatable.  Not relevant for setters. */
   24427             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24428             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24429             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24430             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24431             : };
   24432             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24433             : static_assert(0 < 1, "There is no slot for us");
   24434             : 
   24435             : static bool
   24436           0 : get_listStyleImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24437             : {
   24438           0 :   binding_detail::FastErrorResult rv;
   24439           0 :   DOMString result;
   24440           0 :   self->GetListStyleImage(result, rv);
   24441           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24442           0 :     return false;
   24443             :   }
   24444           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24445           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24446           0 :     return false;
   24447             :   }
   24448           0 :   return true;
   24449             : }
   24450             : 
   24451             : static bool
   24452           0 : set_listStyleImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24453             : {
   24454           0 :   binding_detail::FakeString arg0;
   24455           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24456           0 :     return false;
   24457             :   }
   24458           0 :   binding_detail::FastErrorResult rv;
   24459           0 :   self->SetListStyleImage(NonNullHelper(Constify(arg0)), rv);
   24460           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24461           0 :     return false;
   24462             :   }
   24463           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24464             : 
   24465           0 :   return true;
   24466             : }
   24467             : 
   24468             : static const JSJitInfo listStyleImage_getterinfo = {
   24469             :   { (JSJitGetterOp)get_listStyleImage },
   24470             :   { prototypes::id::CSS2Properties },
   24471             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24472             :   JSJitInfo::Getter,
   24473             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24474             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24475             :   false,  /* isInfallible. False in setters. */
   24476             :   false,  /* isMovable.  Not relevant for setters. */
   24477             :   false, /* isEliminatable.  Not relevant for setters. */
   24478             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24479             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24480             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24481             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24482             : };
   24483             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24484             : static_assert(0 < 1, "There is no slot for us");
   24485             : static const JSJitInfo listStyleImage_setterinfo = {
   24486             :   { (JSJitGetterOp)set_listStyleImage },
   24487             :   { prototypes::id::CSS2Properties },
   24488             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24489             :   JSJitInfo::Setter,
   24490             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24491             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24492             :   false,  /* isInfallible. False in setters. */
   24493             :   false,  /* isMovable.  Not relevant for setters. */
   24494             :   false, /* isEliminatable.  Not relevant for setters. */
   24495             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24496             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24497             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24498             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24499             : };
   24500             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24501             : static_assert(0 < 1, "There is no slot for us");
   24502             : 
   24503             : static bool
   24504           0 : get_list_style_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24505             : {
   24506           0 :   binding_detail::FastErrorResult rv;
   24507           0 :   DOMString result;
   24508           0 :   self->GetListStyleImage(result, rv);
   24509           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24510           0 :     return false;
   24511             :   }
   24512           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24513           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24514           0 :     return false;
   24515             :   }
   24516           0 :   return true;
   24517             : }
   24518             : 
   24519             : static bool
   24520           0 : set_list_style_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24521             : {
   24522           0 :   binding_detail::FakeString arg0;
   24523           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24524           0 :     return false;
   24525             :   }
   24526           0 :   binding_detail::FastErrorResult rv;
   24527           0 :   self->SetListStyleImage(NonNullHelper(Constify(arg0)), rv);
   24528           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24529           0 :     return false;
   24530             :   }
   24531           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24532             : 
   24533           0 :   return true;
   24534             : }
   24535             : 
   24536             : static const JSJitInfo list_style_image_getterinfo = {
   24537             :   { (JSJitGetterOp)get_list_style_image },
   24538             :   { prototypes::id::CSS2Properties },
   24539             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24540             :   JSJitInfo::Getter,
   24541             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24542             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24543             :   false,  /* isInfallible. False in setters. */
   24544             :   false,  /* isMovable.  Not relevant for setters. */
   24545             :   false, /* isEliminatable.  Not relevant for setters. */
   24546             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24547             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24548             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24549             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24550             : };
   24551             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24552             : static_assert(0 < 1, "There is no slot for us");
   24553             : static const JSJitInfo list_style_image_setterinfo = {
   24554             :   { (JSJitGetterOp)set_list_style_image },
   24555             :   { prototypes::id::CSS2Properties },
   24556             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24557             :   JSJitInfo::Setter,
   24558             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24559             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24560             :   false,  /* isInfallible. False in setters. */
   24561             :   false,  /* isMovable.  Not relevant for setters. */
   24562             :   false, /* isEliminatable.  Not relevant for setters. */
   24563             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24564             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24565             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24566             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24567             : };
   24568             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24569             : static_assert(0 < 1, "There is no slot for us");
   24570             : 
   24571             : static bool
   24572           0 : get_listStylePosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24573             : {
   24574           0 :   binding_detail::FastErrorResult rv;
   24575           0 :   DOMString result;
   24576           0 :   self->GetListStylePosition(result, rv);
   24577           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24578           0 :     return false;
   24579             :   }
   24580           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24581           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24582           0 :     return false;
   24583             :   }
   24584           0 :   return true;
   24585             : }
   24586             : 
   24587             : static bool
   24588           0 : set_listStylePosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24589             : {
   24590           0 :   binding_detail::FakeString arg0;
   24591           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24592           0 :     return false;
   24593             :   }
   24594           0 :   binding_detail::FastErrorResult rv;
   24595           0 :   self->SetListStylePosition(NonNullHelper(Constify(arg0)), rv);
   24596           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24597           0 :     return false;
   24598             :   }
   24599           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24600             : 
   24601           0 :   return true;
   24602             : }
   24603             : 
   24604             : static const JSJitInfo listStylePosition_getterinfo = {
   24605             :   { (JSJitGetterOp)get_listStylePosition },
   24606             :   { prototypes::id::CSS2Properties },
   24607             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24608             :   JSJitInfo::Getter,
   24609             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24610             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24611             :   false,  /* isInfallible. False in setters. */
   24612             :   false,  /* isMovable.  Not relevant for setters. */
   24613             :   false, /* isEliminatable.  Not relevant for setters. */
   24614             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24615             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24616             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24617             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24618             : };
   24619             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24620             : static_assert(0 < 1, "There is no slot for us");
   24621             : static const JSJitInfo listStylePosition_setterinfo = {
   24622             :   { (JSJitGetterOp)set_listStylePosition },
   24623             :   { prototypes::id::CSS2Properties },
   24624             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24625             :   JSJitInfo::Setter,
   24626             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24627             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24628             :   false,  /* isInfallible. False in setters. */
   24629             :   false,  /* isMovable.  Not relevant for setters. */
   24630             :   false, /* isEliminatable.  Not relevant for setters. */
   24631             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24632             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24633             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24634             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24635             : };
   24636             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24637             : static_assert(0 < 1, "There is no slot for us");
   24638             : 
   24639             : static bool
   24640           0 : get_list_style_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24641             : {
   24642           0 :   binding_detail::FastErrorResult rv;
   24643           0 :   DOMString result;
   24644           0 :   self->GetListStylePosition(result, rv);
   24645           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24646           0 :     return false;
   24647             :   }
   24648           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24649           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24650           0 :     return false;
   24651             :   }
   24652           0 :   return true;
   24653             : }
   24654             : 
   24655             : static bool
   24656           0 : set_list_style_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24657             : {
   24658           0 :   binding_detail::FakeString arg0;
   24659           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24660           0 :     return false;
   24661             :   }
   24662           0 :   binding_detail::FastErrorResult rv;
   24663           0 :   self->SetListStylePosition(NonNullHelper(Constify(arg0)), rv);
   24664           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24665           0 :     return false;
   24666             :   }
   24667           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24668             : 
   24669           0 :   return true;
   24670             : }
   24671             : 
   24672             : static const JSJitInfo list_style_position_getterinfo = {
   24673             :   { (JSJitGetterOp)get_list_style_position },
   24674             :   { prototypes::id::CSS2Properties },
   24675             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24676             :   JSJitInfo::Getter,
   24677             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24678             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24679             :   false,  /* isInfallible. False in setters. */
   24680             :   false,  /* isMovable.  Not relevant for setters. */
   24681             :   false, /* isEliminatable.  Not relevant for setters. */
   24682             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24683             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24684             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24685             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24686             : };
   24687             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24688             : static_assert(0 < 1, "There is no slot for us");
   24689             : static const JSJitInfo list_style_position_setterinfo = {
   24690             :   { (JSJitGetterOp)set_list_style_position },
   24691             :   { prototypes::id::CSS2Properties },
   24692             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24693             :   JSJitInfo::Setter,
   24694             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24695             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24696             :   false,  /* isInfallible. False in setters. */
   24697             :   false,  /* isMovable.  Not relevant for setters. */
   24698             :   false, /* isEliminatable.  Not relevant for setters. */
   24699             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24700             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24701             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24702             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24703             : };
   24704             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24705             : static_assert(0 < 1, "There is no slot for us");
   24706             : 
   24707             : static bool
   24708           0 : get_listStyleType(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24709             : {
   24710           0 :   binding_detail::FastErrorResult rv;
   24711           0 :   DOMString result;
   24712           0 :   self->GetListStyleType(result, rv);
   24713           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24714           0 :     return false;
   24715             :   }
   24716           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24717           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24718           0 :     return false;
   24719             :   }
   24720           0 :   return true;
   24721             : }
   24722             : 
   24723             : static bool
   24724           0 : set_listStyleType(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24725             : {
   24726           0 :   binding_detail::FakeString arg0;
   24727           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24728           0 :     return false;
   24729             :   }
   24730           0 :   binding_detail::FastErrorResult rv;
   24731           0 :   self->SetListStyleType(NonNullHelper(Constify(arg0)), rv);
   24732           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24733           0 :     return false;
   24734             :   }
   24735           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24736             : 
   24737           0 :   return true;
   24738             : }
   24739             : 
   24740             : static const JSJitInfo listStyleType_getterinfo = {
   24741             :   { (JSJitGetterOp)get_listStyleType },
   24742             :   { prototypes::id::CSS2Properties },
   24743             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24744             :   JSJitInfo::Getter,
   24745             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24746             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24747             :   false,  /* isInfallible. False in setters. */
   24748             :   false,  /* isMovable.  Not relevant for setters. */
   24749             :   false, /* isEliminatable.  Not relevant for setters. */
   24750             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24751             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24752             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24753             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24754             : };
   24755             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24756             : static_assert(0 < 1, "There is no slot for us");
   24757             : static const JSJitInfo listStyleType_setterinfo = {
   24758             :   { (JSJitGetterOp)set_listStyleType },
   24759             :   { prototypes::id::CSS2Properties },
   24760             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24761             :   JSJitInfo::Setter,
   24762             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24763             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24764             :   false,  /* isInfallible. False in setters. */
   24765             :   false,  /* isMovable.  Not relevant for setters. */
   24766             :   false, /* isEliminatable.  Not relevant for setters. */
   24767             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24768             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24769             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24770             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24771             : };
   24772             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24773             : static_assert(0 < 1, "There is no slot for us");
   24774             : 
   24775             : static bool
   24776           0 : get_list_style_type(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24777             : {
   24778           0 :   binding_detail::FastErrorResult rv;
   24779           0 :   DOMString result;
   24780           0 :   self->GetListStyleType(result, rv);
   24781           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24782           0 :     return false;
   24783             :   }
   24784           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24785           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24786           0 :     return false;
   24787             :   }
   24788           0 :   return true;
   24789             : }
   24790             : 
   24791             : static bool
   24792           0 : set_list_style_type(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24793             : {
   24794           0 :   binding_detail::FakeString arg0;
   24795           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24796           0 :     return false;
   24797             :   }
   24798           0 :   binding_detail::FastErrorResult rv;
   24799           0 :   self->SetListStyleType(NonNullHelper(Constify(arg0)), rv);
   24800           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24801           0 :     return false;
   24802             :   }
   24803           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24804             : 
   24805           0 :   return true;
   24806             : }
   24807             : 
   24808             : static const JSJitInfo list_style_type_getterinfo = {
   24809             :   { (JSJitGetterOp)get_list_style_type },
   24810             :   { prototypes::id::CSS2Properties },
   24811             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24812             :   JSJitInfo::Getter,
   24813             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24814             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24815             :   false,  /* isInfallible. False in setters. */
   24816             :   false,  /* isMovable.  Not relevant for setters. */
   24817             :   false, /* isEliminatable.  Not relevant for setters. */
   24818             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24819             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24820             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24821             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24822             : };
   24823             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24824             : static_assert(0 < 1, "There is no slot for us");
   24825             : static const JSJitInfo list_style_type_setterinfo = {
   24826             :   { (JSJitGetterOp)set_list_style_type },
   24827             :   { prototypes::id::CSS2Properties },
   24828             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24829             :   JSJitInfo::Setter,
   24830             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24831             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24832             :   false,  /* isInfallible. False in setters. */
   24833             :   false,  /* isMovable.  Not relevant for setters. */
   24834             :   false, /* isEliminatable.  Not relevant for setters. */
   24835             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24836             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24837             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24838             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24839             : };
   24840             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24841             : static_assert(0 < 1, "There is no slot for us");
   24842             : 
   24843             : static bool
   24844           0 : get_margin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24845             : {
   24846           0 :   binding_detail::FastErrorResult rv;
   24847           0 :   DOMString result;
   24848           0 :   self->GetMargin(result, rv);
   24849           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24850           0 :     return false;
   24851             :   }
   24852           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24853           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24854           0 :     return false;
   24855             :   }
   24856           0 :   return true;
   24857             : }
   24858             : 
   24859             : static bool
   24860           0 : set_margin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24861             : {
   24862           0 :   binding_detail::FakeString arg0;
   24863           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24864           0 :     return false;
   24865             :   }
   24866           0 :   binding_detail::FastErrorResult rv;
   24867           0 :   self->SetMargin(NonNullHelper(Constify(arg0)), rv);
   24868           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24869           0 :     return false;
   24870             :   }
   24871           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24872             : 
   24873           0 :   return true;
   24874             : }
   24875             : 
   24876             : static const JSJitInfo margin_getterinfo = {
   24877             :   { (JSJitGetterOp)get_margin },
   24878             :   { prototypes::id::CSS2Properties },
   24879             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24880             :   JSJitInfo::Getter,
   24881             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24882             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24883             :   false,  /* isInfallible. False in setters. */
   24884             :   false,  /* isMovable.  Not relevant for setters. */
   24885             :   false, /* isEliminatable.  Not relevant for setters. */
   24886             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24887             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24888             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24889             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24890             : };
   24891             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24892             : static_assert(0 < 1, "There is no slot for us");
   24893             : static const JSJitInfo margin_setterinfo = {
   24894             :   { (JSJitGetterOp)set_margin },
   24895             :   { prototypes::id::CSS2Properties },
   24896             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24897             :   JSJitInfo::Setter,
   24898             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24899             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24900             :   false,  /* isInfallible. False in setters. */
   24901             :   false,  /* isMovable.  Not relevant for setters. */
   24902             :   false, /* isEliminatable.  Not relevant for setters. */
   24903             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24904             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24905             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24906             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24907             : };
   24908             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24909             : static_assert(0 < 1, "There is no slot for us");
   24910             : 
   24911             : static bool
   24912           0 : get_marginBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24913             : {
   24914           0 :   binding_detail::FastErrorResult rv;
   24915           0 :   DOMString result;
   24916           0 :   self->GetMarginBlockEnd(result, rv);
   24917           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24918           0 :     return false;
   24919             :   }
   24920           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24921           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24922           0 :     return false;
   24923             :   }
   24924           0 :   return true;
   24925             : }
   24926             : 
   24927             : static bool
   24928           0 : set_marginBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24929             : {
   24930           0 :   binding_detail::FakeString arg0;
   24931           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   24932           0 :     return false;
   24933             :   }
   24934           0 :   binding_detail::FastErrorResult rv;
   24935           0 :   self->SetMarginBlockEnd(NonNullHelper(Constify(arg0)), rv);
   24936           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24937           0 :     return false;
   24938             :   }
   24939           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24940             : 
   24941           0 :   return true;
   24942             : }
   24943             : 
   24944             : static const JSJitInfo marginBlockEnd_getterinfo = {
   24945             :   { (JSJitGetterOp)get_marginBlockEnd },
   24946             :   { prototypes::id::CSS2Properties },
   24947             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24948             :   JSJitInfo::Getter,
   24949             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24950             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   24951             :   false,  /* isInfallible. False in setters. */
   24952             :   false,  /* isMovable.  Not relevant for setters. */
   24953             :   false, /* isEliminatable.  Not relevant for setters. */
   24954             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24955             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24956             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24957             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24958             : };
   24959             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24960             : static_assert(0 < 1, "There is no slot for us");
   24961             : static const JSJitInfo marginBlockEnd_setterinfo = {
   24962             :   { (JSJitGetterOp)set_marginBlockEnd },
   24963             :   { prototypes::id::CSS2Properties },
   24964             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   24965             :   JSJitInfo::Setter,
   24966             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   24967             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   24968             :   false,  /* isInfallible. False in setters. */
   24969             :   false,  /* isMovable.  Not relevant for setters. */
   24970             :   false, /* isEliminatable.  Not relevant for setters. */
   24971             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   24972             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   24973             :   false,  /* isTypedMethod.  Only relevant for methods. */
   24974             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   24975             : };
   24976             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   24977             : static_assert(0 < 1, "There is no slot for us");
   24978             : 
   24979             : static bool
   24980           0 : get_margin_block_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   24981             : {
   24982           0 :   binding_detail::FastErrorResult rv;
   24983           0 :   DOMString result;
   24984           0 :   self->GetMarginBlockEnd(result, rv);
   24985           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   24986           0 :     return false;
   24987             :   }
   24988           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   24989           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   24990           0 :     return false;
   24991             :   }
   24992           0 :   return true;
   24993             : }
   24994             : 
   24995             : static bool
   24996           0 : set_margin_block_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   24997             : {
   24998           0 :   binding_detail::FakeString arg0;
   24999           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25000           0 :     return false;
   25001             :   }
   25002           0 :   binding_detail::FastErrorResult rv;
   25003           0 :   self->SetMarginBlockEnd(NonNullHelper(Constify(arg0)), rv);
   25004           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25005           0 :     return false;
   25006             :   }
   25007           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25008             : 
   25009           0 :   return true;
   25010             : }
   25011             : 
   25012             : static const JSJitInfo margin_block_end_getterinfo = {
   25013             :   { (JSJitGetterOp)get_margin_block_end },
   25014             :   { prototypes::id::CSS2Properties },
   25015             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25016             :   JSJitInfo::Getter,
   25017             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25018             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25019             :   false,  /* isInfallible. False in setters. */
   25020             :   false,  /* isMovable.  Not relevant for setters. */
   25021             :   false, /* isEliminatable.  Not relevant for setters. */
   25022             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25023             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25024             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25025             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25026             : };
   25027             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25028             : static_assert(0 < 1, "There is no slot for us");
   25029             : static const JSJitInfo margin_block_end_setterinfo = {
   25030             :   { (JSJitGetterOp)set_margin_block_end },
   25031             :   { prototypes::id::CSS2Properties },
   25032             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25033             :   JSJitInfo::Setter,
   25034             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25035             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25036             :   false,  /* isInfallible. False in setters. */
   25037             :   false,  /* isMovable.  Not relevant for setters. */
   25038             :   false, /* isEliminatable.  Not relevant for setters. */
   25039             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25040             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25041             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25042             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25043             : };
   25044             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25045             : static_assert(0 < 1, "There is no slot for us");
   25046             : 
   25047             : static bool
   25048           0 : get_marginBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25049             : {
   25050           0 :   binding_detail::FastErrorResult rv;
   25051           0 :   DOMString result;
   25052           0 :   self->GetMarginBlockStart(result, rv);
   25053           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25054           0 :     return false;
   25055             :   }
   25056           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25057           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25058           0 :     return false;
   25059             :   }
   25060           0 :   return true;
   25061             : }
   25062             : 
   25063             : static bool
   25064           0 : set_marginBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25065             : {
   25066           0 :   binding_detail::FakeString arg0;
   25067           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25068           0 :     return false;
   25069             :   }
   25070           0 :   binding_detail::FastErrorResult rv;
   25071           0 :   self->SetMarginBlockStart(NonNullHelper(Constify(arg0)), rv);
   25072           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25073           0 :     return false;
   25074             :   }
   25075           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25076             : 
   25077           0 :   return true;
   25078             : }
   25079             : 
   25080             : static const JSJitInfo marginBlockStart_getterinfo = {
   25081             :   { (JSJitGetterOp)get_marginBlockStart },
   25082             :   { prototypes::id::CSS2Properties },
   25083             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25084             :   JSJitInfo::Getter,
   25085             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25086             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25087             :   false,  /* isInfallible. False in setters. */
   25088             :   false,  /* isMovable.  Not relevant for setters. */
   25089             :   false, /* isEliminatable.  Not relevant for setters. */
   25090             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25091             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25092             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25093             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25094             : };
   25095             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25096             : static_assert(0 < 1, "There is no slot for us");
   25097             : static const JSJitInfo marginBlockStart_setterinfo = {
   25098             :   { (JSJitGetterOp)set_marginBlockStart },
   25099             :   { prototypes::id::CSS2Properties },
   25100             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25101             :   JSJitInfo::Setter,
   25102             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25103             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25104             :   false,  /* isInfallible. False in setters. */
   25105             :   false,  /* isMovable.  Not relevant for setters. */
   25106             :   false, /* isEliminatable.  Not relevant for setters. */
   25107             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25108             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25109             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25110             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25111             : };
   25112             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25113             : static_assert(0 < 1, "There is no slot for us");
   25114             : 
   25115             : static bool
   25116           0 : get_margin_block_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25117             : {
   25118           0 :   binding_detail::FastErrorResult rv;
   25119           0 :   DOMString result;
   25120           0 :   self->GetMarginBlockStart(result, rv);
   25121           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25122           0 :     return false;
   25123             :   }
   25124           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25125           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25126           0 :     return false;
   25127             :   }
   25128           0 :   return true;
   25129             : }
   25130             : 
   25131             : static bool
   25132           0 : set_margin_block_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25133             : {
   25134           0 :   binding_detail::FakeString arg0;
   25135           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25136           0 :     return false;
   25137             :   }
   25138           0 :   binding_detail::FastErrorResult rv;
   25139           0 :   self->SetMarginBlockStart(NonNullHelper(Constify(arg0)), rv);
   25140           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25141           0 :     return false;
   25142             :   }
   25143           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25144             : 
   25145           0 :   return true;
   25146             : }
   25147             : 
   25148             : static const JSJitInfo margin_block_start_getterinfo = {
   25149             :   { (JSJitGetterOp)get_margin_block_start },
   25150             :   { prototypes::id::CSS2Properties },
   25151             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25152             :   JSJitInfo::Getter,
   25153             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25154             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25155             :   false,  /* isInfallible. False in setters. */
   25156             :   false,  /* isMovable.  Not relevant for setters. */
   25157             :   false, /* isEliminatable.  Not relevant for setters. */
   25158             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25159             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25160             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25161             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25162             : };
   25163             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25164             : static_assert(0 < 1, "There is no slot for us");
   25165             : static const JSJitInfo margin_block_start_setterinfo = {
   25166             :   { (JSJitGetterOp)set_margin_block_start },
   25167             :   { prototypes::id::CSS2Properties },
   25168             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25169             :   JSJitInfo::Setter,
   25170             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25171             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25172             :   false,  /* isInfallible. False in setters. */
   25173             :   false,  /* isMovable.  Not relevant for setters. */
   25174             :   false, /* isEliminatable.  Not relevant for setters. */
   25175             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25176             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25177             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25178             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25179             : };
   25180             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25181             : static_assert(0 < 1, "There is no slot for us");
   25182             : 
   25183             : static bool
   25184           0 : get_marginBottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25185             : {
   25186           0 :   binding_detail::FastErrorResult rv;
   25187           0 :   DOMString result;
   25188           0 :   self->GetMarginBottom(result, rv);
   25189           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25190           0 :     return false;
   25191             :   }
   25192           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25193           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25194           0 :     return false;
   25195             :   }
   25196           0 :   return true;
   25197             : }
   25198             : 
   25199             : static bool
   25200           0 : set_marginBottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25201             : {
   25202           0 :   binding_detail::FakeString arg0;
   25203           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25204           0 :     return false;
   25205             :   }
   25206           0 :   binding_detail::FastErrorResult rv;
   25207           0 :   self->SetMarginBottom(NonNullHelper(Constify(arg0)), rv);
   25208           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25209           0 :     return false;
   25210             :   }
   25211           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25212             : 
   25213           0 :   return true;
   25214             : }
   25215             : 
   25216             : static const JSJitInfo marginBottom_getterinfo = {
   25217             :   { (JSJitGetterOp)get_marginBottom },
   25218             :   { prototypes::id::CSS2Properties },
   25219             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25220             :   JSJitInfo::Getter,
   25221             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25222             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25223             :   false,  /* isInfallible. False in setters. */
   25224             :   false,  /* isMovable.  Not relevant for setters. */
   25225             :   false, /* isEliminatable.  Not relevant for setters. */
   25226             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25227             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25228             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25229             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25230             : };
   25231             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25232             : static_assert(0 < 1, "There is no slot for us");
   25233             : static const JSJitInfo marginBottom_setterinfo = {
   25234             :   { (JSJitGetterOp)set_marginBottom },
   25235             :   { prototypes::id::CSS2Properties },
   25236             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25237             :   JSJitInfo::Setter,
   25238             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25239             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25240             :   false,  /* isInfallible. False in setters. */
   25241             :   false,  /* isMovable.  Not relevant for setters. */
   25242             :   false, /* isEliminatable.  Not relevant for setters. */
   25243             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25244             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25245             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25246             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25247             : };
   25248             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25249             : static_assert(0 < 1, "There is no slot for us");
   25250             : 
   25251             : static bool
   25252           0 : get_margin_bottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25253             : {
   25254           0 :   binding_detail::FastErrorResult rv;
   25255           0 :   DOMString result;
   25256           0 :   self->GetMarginBottom(result, rv);
   25257           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25258           0 :     return false;
   25259             :   }
   25260           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25261           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25262           0 :     return false;
   25263             :   }
   25264           0 :   return true;
   25265             : }
   25266             : 
   25267             : static bool
   25268           0 : set_margin_bottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25269             : {
   25270           0 :   binding_detail::FakeString arg0;
   25271           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25272           0 :     return false;
   25273             :   }
   25274           0 :   binding_detail::FastErrorResult rv;
   25275           0 :   self->SetMarginBottom(NonNullHelper(Constify(arg0)), rv);
   25276           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25277           0 :     return false;
   25278             :   }
   25279           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25280             : 
   25281           0 :   return true;
   25282             : }
   25283             : 
   25284             : static const JSJitInfo margin_bottom_getterinfo = {
   25285             :   { (JSJitGetterOp)get_margin_bottom },
   25286             :   { prototypes::id::CSS2Properties },
   25287             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25288             :   JSJitInfo::Getter,
   25289             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25290             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25291             :   false,  /* isInfallible. False in setters. */
   25292             :   false,  /* isMovable.  Not relevant for setters. */
   25293             :   false, /* isEliminatable.  Not relevant for setters. */
   25294             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25295             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25296             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25297             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25298             : };
   25299             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25300             : static_assert(0 < 1, "There is no slot for us");
   25301             : static const JSJitInfo margin_bottom_setterinfo = {
   25302             :   { (JSJitGetterOp)set_margin_bottom },
   25303             :   { prototypes::id::CSS2Properties },
   25304             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25305             :   JSJitInfo::Setter,
   25306             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25307             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25308             :   false,  /* isInfallible. False in setters. */
   25309             :   false,  /* isMovable.  Not relevant for setters. */
   25310             :   false, /* isEliminatable.  Not relevant for setters. */
   25311             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25312             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25313             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25314             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25315             : };
   25316             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25317             : static_assert(0 < 1, "There is no slot for us");
   25318             : 
   25319             : static bool
   25320           0 : get_marginInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25321             : {
   25322           0 :   binding_detail::FastErrorResult rv;
   25323           0 :   DOMString result;
   25324           0 :   self->GetMarginInlineEnd(result, rv);
   25325           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25326           0 :     return false;
   25327             :   }
   25328           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25329           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25330           0 :     return false;
   25331             :   }
   25332           0 :   return true;
   25333             : }
   25334             : 
   25335             : static bool
   25336           0 : set_marginInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25337             : {
   25338           0 :   binding_detail::FakeString arg0;
   25339           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25340           0 :     return false;
   25341             :   }
   25342           0 :   binding_detail::FastErrorResult rv;
   25343           0 :   self->SetMarginInlineEnd(NonNullHelper(Constify(arg0)), rv);
   25344           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25345           0 :     return false;
   25346             :   }
   25347           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25348             : 
   25349           0 :   return true;
   25350             : }
   25351             : 
   25352             : static const JSJitInfo marginInlineEnd_getterinfo = {
   25353             :   { (JSJitGetterOp)get_marginInlineEnd },
   25354             :   { prototypes::id::CSS2Properties },
   25355             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25356             :   JSJitInfo::Getter,
   25357             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25358             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25359             :   false,  /* isInfallible. False in setters. */
   25360             :   false,  /* isMovable.  Not relevant for setters. */
   25361             :   false, /* isEliminatable.  Not relevant for setters. */
   25362             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25363             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25364             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25365             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25366             : };
   25367             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25368             : static_assert(0 < 1, "There is no slot for us");
   25369             : static const JSJitInfo marginInlineEnd_setterinfo = {
   25370             :   { (JSJitGetterOp)set_marginInlineEnd },
   25371             :   { prototypes::id::CSS2Properties },
   25372             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25373             :   JSJitInfo::Setter,
   25374             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25375             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25376             :   false,  /* isInfallible. False in setters. */
   25377             :   false,  /* isMovable.  Not relevant for setters. */
   25378             :   false, /* isEliminatable.  Not relevant for setters. */
   25379             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25380             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25381             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25382             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25383             : };
   25384             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25385             : static_assert(0 < 1, "There is no slot for us");
   25386             : 
   25387             : static bool
   25388           0 : get_margin_inline_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25389             : {
   25390           0 :   binding_detail::FastErrorResult rv;
   25391           0 :   DOMString result;
   25392           0 :   self->GetMarginInlineEnd(result, rv);
   25393           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25394           0 :     return false;
   25395             :   }
   25396           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25397           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25398           0 :     return false;
   25399             :   }
   25400           0 :   return true;
   25401             : }
   25402             : 
   25403             : static bool
   25404           0 : set_margin_inline_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25405             : {
   25406           0 :   binding_detail::FakeString arg0;
   25407           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25408           0 :     return false;
   25409             :   }
   25410           0 :   binding_detail::FastErrorResult rv;
   25411           0 :   self->SetMarginInlineEnd(NonNullHelper(Constify(arg0)), rv);
   25412           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25413           0 :     return false;
   25414             :   }
   25415           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25416             : 
   25417           0 :   return true;
   25418             : }
   25419             : 
   25420             : static const JSJitInfo margin_inline_end_getterinfo = {
   25421             :   { (JSJitGetterOp)get_margin_inline_end },
   25422             :   { prototypes::id::CSS2Properties },
   25423             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25424             :   JSJitInfo::Getter,
   25425             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25426             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25427             :   false,  /* isInfallible. False in setters. */
   25428             :   false,  /* isMovable.  Not relevant for setters. */
   25429             :   false, /* isEliminatable.  Not relevant for setters. */
   25430             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25431             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25432             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25433             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25434             : };
   25435             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25436             : static_assert(0 < 1, "There is no slot for us");
   25437             : static const JSJitInfo margin_inline_end_setterinfo = {
   25438             :   { (JSJitGetterOp)set_margin_inline_end },
   25439             :   { prototypes::id::CSS2Properties },
   25440             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25441             :   JSJitInfo::Setter,
   25442             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25443             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25444             :   false,  /* isInfallible. False in setters. */
   25445             :   false,  /* isMovable.  Not relevant for setters. */
   25446             :   false, /* isEliminatable.  Not relevant for setters. */
   25447             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25448             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25449             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25450             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25451             : };
   25452             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25453             : static_assert(0 < 1, "There is no slot for us");
   25454             : 
   25455             : static bool
   25456           0 : get_marginInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25457             : {
   25458           0 :   binding_detail::FastErrorResult rv;
   25459           0 :   DOMString result;
   25460           0 :   self->GetMarginInlineStart(result, rv);
   25461           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25462           0 :     return false;
   25463             :   }
   25464           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25465           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25466           0 :     return false;
   25467             :   }
   25468           0 :   return true;
   25469             : }
   25470             : 
   25471             : static bool
   25472           0 : set_marginInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25473             : {
   25474           0 :   binding_detail::FakeString arg0;
   25475           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25476           0 :     return false;
   25477             :   }
   25478           0 :   binding_detail::FastErrorResult rv;
   25479           0 :   self->SetMarginInlineStart(NonNullHelper(Constify(arg0)), rv);
   25480           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25481           0 :     return false;
   25482             :   }
   25483           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25484             : 
   25485           0 :   return true;
   25486             : }
   25487             : 
   25488             : static const JSJitInfo marginInlineStart_getterinfo = {
   25489             :   { (JSJitGetterOp)get_marginInlineStart },
   25490             :   { prototypes::id::CSS2Properties },
   25491             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25492             :   JSJitInfo::Getter,
   25493             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25494             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25495             :   false,  /* isInfallible. False in setters. */
   25496             :   false,  /* isMovable.  Not relevant for setters. */
   25497             :   false, /* isEliminatable.  Not relevant for setters. */
   25498             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25499             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25500             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25501             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25502             : };
   25503             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25504             : static_assert(0 < 1, "There is no slot for us");
   25505             : static const JSJitInfo marginInlineStart_setterinfo = {
   25506             :   { (JSJitGetterOp)set_marginInlineStart },
   25507             :   { prototypes::id::CSS2Properties },
   25508             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25509             :   JSJitInfo::Setter,
   25510             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25511             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25512             :   false,  /* isInfallible. False in setters. */
   25513             :   false,  /* isMovable.  Not relevant for setters. */
   25514             :   false, /* isEliminatable.  Not relevant for setters. */
   25515             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25516             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25517             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25518             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25519             : };
   25520             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25521             : static_assert(0 < 1, "There is no slot for us");
   25522             : 
   25523             : static bool
   25524           0 : get_margin_inline_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25525             : {
   25526           0 :   binding_detail::FastErrorResult rv;
   25527           0 :   DOMString result;
   25528           0 :   self->GetMarginInlineStart(result, rv);
   25529           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25530           0 :     return false;
   25531             :   }
   25532           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25533           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25534           0 :     return false;
   25535             :   }
   25536           0 :   return true;
   25537             : }
   25538             : 
   25539             : static bool
   25540           0 : set_margin_inline_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25541             : {
   25542           0 :   binding_detail::FakeString arg0;
   25543           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25544           0 :     return false;
   25545             :   }
   25546           0 :   binding_detail::FastErrorResult rv;
   25547           0 :   self->SetMarginInlineStart(NonNullHelper(Constify(arg0)), rv);
   25548           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25549           0 :     return false;
   25550             :   }
   25551           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25552             : 
   25553           0 :   return true;
   25554             : }
   25555             : 
   25556             : static const JSJitInfo margin_inline_start_getterinfo = {
   25557             :   { (JSJitGetterOp)get_margin_inline_start },
   25558             :   { prototypes::id::CSS2Properties },
   25559             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25560             :   JSJitInfo::Getter,
   25561             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25562             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25563             :   false,  /* isInfallible. False in setters. */
   25564             :   false,  /* isMovable.  Not relevant for setters. */
   25565             :   false, /* isEliminatable.  Not relevant for setters. */
   25566             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25567             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25568             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25569             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25570             : };
   25571             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25572             : static_assert(0 < 1, "There is no slot for us");
   25573             : static const JSJitInfo margin_inline_start_setterinfo = {
   25574             :   { (JSJitGetterOp)set_margin_inline_start },
   25575             :   { prototypes::id::CSS2Properties },
   25576             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25577             :   JSJitInfo::Setter,
   25578             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25579             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25580             :   false,  /* isInfallible. False in setters. */
   25581             :   false,  /* isMovable.  Not relevant for setters. */
   25582             :   false, /* isEliminatable.  Not relevant for setters. */
   25583             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25584             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25585             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25586             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25587             : };
   25588             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25589             : static_assert(0 < 1, "There is no slot for us");
   25590             : 
   25591             : static bool
   25592           0 : get_marginLeft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25593             : {
   25594           0 :   binding_detail::FastErrorResult rv;
   25595           0 :   DOMString result;
   25596           0 :   self->GetMarginLeft(result, rv);
   25597           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25598           0 :     return false;
   25599             :   }
   25600           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25601           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25602           0 :     return false;
   25603             :   }
   25604           0 :   return true;
   25605             : }
   25606             : 
   25607             : static bool
   25608           0 : set_marginLeft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25609             : {
   25610           0 :   binding_detail::FakeString arg0;
   25611           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25612           0 :     return false;
   25613             :   }
   25614           0 :   binding_detail::FastErrorResult rv;
   25615           0 :   self->SetMarginLeft(NonNullHelper(Constify(arg0)), rv);
   25616           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25617           0 :     return false;
   25618             :   }
   25619           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25620             : 
   25621           0 :   return true;
   25622             : }
   25623             : 
   25624             : static const JSJitInfo marginLeft_getterinfo = {
   25625             :   { (JSJitGetterOp)get_marginLeft },
   25626             :   { prototypes::id::CSS2Properties },
   25627             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25628             :   JSJitInfo::Getter,
   25629             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25630             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25631             :   false,  /* isInfallible. False in setters. */
   25632             :   false,  /* isMovable.  Not relevant for setters. */
   25633             :   false, /* isEliminatable.  Not relevant for setters. */
   25634             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25635             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25636             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25637             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25638             : };
   25639             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25640             : static_assert(0 < 1, "There is no slot for us");
   25641             : static const JSJitInfo marginLeft_setterinfo = {
   25642             :   { (JSJitGetterOp)set_marginLeft },
   25643             :   { prototypes::id::CSS2Properties },
   25644             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25645             :   JSJitInfo::Setter,
   25646             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25647             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25648             :   false,  /* isInfallible. False in setters. */
   25649             :   false,  /* isMovable.  Not relevant for setters. */
   25650             :   false, /* isEliminatable.  Not relevant for setters. */
   25651             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25652             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25653             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25654             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25655             : };
   25656             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25657             : static_assert(0 < 1, "There is no slot for us");
   25658             : 
   25659             : static bool
   25660           0 : get_margin_left(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25661             : {
   25662           0 :   binding_detail::FastErrorResult rv;
   25663           0 :   DOMString result;
   25664           0 :   self->GetMarginLeft(result, rv);
   25665           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25666           0 :     return false;
   25667             :   }
   25668           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25669           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25670           0 :     return false;
   25671             :   }
   25672           0 :   return true;
   25673             : }
   25674             : 
   25675             : static bool
   25676           0 : set_margin_left(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25677             : {
   25678           0 :   binding_detail::FakeString arg0;
   25679           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25680           0 :     return false;
   25681             :   }
   25682           0 :   binding_detail::FastErrorResult rv;
   25683           0 :   self->SetMarginLeft(NonNullHelper(Constify(arg0)), rv);
   25684           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25685           0 :     return false;
   25686             :   }
   25687           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25688             : 
   25689           0 :   return true;
   25690             : }
   25691             : 
   25692             : static const JSJitInfo margin_left_getterinfo = {
   25693             :   { (JSJitGetterOp)get_margin_left },
   25694             :   { prototypes::id::CSS2Properties },
   25695             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25696             :   JSJitInfo::Getter,
   25697             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25698             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25699             :   false,  /* isInfallible. False in setters. */
   25700             :   false,  /* isMovable.  Not relevant for setters. */
   25701             :   false, /* isEliminatable.  Not relevant for setters. */
   25702             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25703             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25704             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25705             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25706             : };
   25707             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25708             : static_assert(0 < 1, "There is no slot for us");
   25709             : static const JSJitInfo margin_left_setterinfo = {
   25710             :   { (JSJitGetterOp)set_margin_left },
   25711             :   { prototypes::id::CSS2Properties },
   25712             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25713             :   JSJitInfo::Setter,
   25714             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25715             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25716             :   false,  /* isInfallible. False in setters. */
   25717             :   false,  /* isMovable.  Not relevant for setters. */
   25718             :   false, /* isEliminatable.  Not relevant for setters. */
   25719             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25720             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25721             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25722             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25723             : };
   25724             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25725             : static_assert(0 < 1, "There is no slot for us");
   25726             : 
   25727             : static bool
   25728           0 : get_marginRight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25729             : {
   25730           0 :   binding_detail::FastErrorResult rv;
   25731           0 :   DOMString result;
   25732           0 :   self->GetMarginRight(result, rv);
   25733           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25734           0 :     return false;
   25735             :   }
   25736           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25737           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25738           0 :     return false;
   25739             :   }
   25740           0 :   return true;
   25741             : }
   25742             : 
   25743             : static bool
   25744           0 : set_marginRight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25745             : {
   25746           0 :   binding_detail::FakeString arg0;
   25747           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25748           0 :     return false;
   25749             :   }
   25750           0 :   binding_detail::FastErrorResult rv;
   25751           0 :   self->SetMarginRight(NonNullHelper(Constify(arg0)), rv);
   25752           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25753           0 :     return false;
   25754             :   }
   25755           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25756             : 
   25757           0 :   return true;
   25758             : }
   25759             : 
   25760             : static const JSJitInfo marginRight_getterinfo = {
   25761             :   { (JSJitGetterOp)get_marginRight },
   25762             :   { prototypes::id::CSS2Properties },
   25763             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25764             :   JSJitInfo::Getter,
   25765             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25766             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25767             :   false,  /* isInfallible. False in setters. */
   25768             :   false,  /* isMovable.  Not relevant for setters. */
   25769             :   false, /* isEliminatable.  Not relevant for setters. */
   25770             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25771             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25772             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25773             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25774             : };
   25775             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25776             : static_assert(0 < 1, "There is no slot for us");
   25777             : static const JSJitInfo marginRight_setterinfo = {
   25778             :   { (JSJitGetterOp)set_marginRight },
   25779             :   { prototypes::id::CSS2Properties },
   25780             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25781             :   JSJitInfo::Setter,
   25782             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25783             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25784             :   false,  /* isInfallible. False in setters. */
   25785             :   false,  /* isMovable.  Not relevant for setters. */
   25786             :   false, /* isEliminatable.  Not relevant for setters. */
   25787             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25788             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25789             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25790             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25791             : };
   25792             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25793             : static_assert(0 < 1, "There is no slot for us");
   25794             : 
   25795             : static bool
   25796           0 : get_margin_right(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25797             : {
   25798           0 :   binding_detail::FastErrorResult rv;
   25799           0 :   DOMString result;
   25800           0 :   self->GetMarginRight(result, rv);
   25801           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25802           0 :     return false;
   25803             :   }
   25804           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25805           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25806           0 :     return false;
   25807             :   }
   25808           0 :   return true;
   25809             : }
   25810             : 
   25811             : static bool
   25812           0 : set_margin_right(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25813             : {
   25814           0 :   binding_detail::FakeString arg0;
   25815           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25816           0 :     return false;
   25817             :   }
   25818           0 :   binding_detail::FastErrorResult rv;
   25819           0 :   self->SetMarginRight(NonNullHelper(Constify(arg0)), rv);
   25820           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25821           0 :     return false;
   25822             :   }
   25823           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25824             : 
   25825           0 :   return true;
   25826             : }
   25827             : 
   25828             : static const JSJitInfo margin_right_getterinfo = {
   25829             :   { (JSJitGetterOp)get_margin_right },
   25830             :   { prototypes::id::CSS2Properties },
   25831             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25832             :   JSJitInfo::Getter,
   25833             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25834             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25835             :   false,  /* isInfallible. False in setters. */
   25836             :   false,  /* isMovable.  Not relevant for setters. */
   25837             :   false, /* isEliminatable.  Not relevant for setters. */
   25838             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25839             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25840             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25841             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25842             : };
   25843             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25844             : static_assert(0 < 1, "There is no slot for us");
   25845             : static const JSJitInfo margin_right_setterinfo = {
   25846             :   { (JSJitGetterOp)set_margin_right },
   25847             :   { prototypes::id::CSS2Properties },
   25848             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25849             :   JSJitInfo::Setter,
   25850             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25851             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25852             :   false,  /* isInfallible. False in setters. */
   25853             :   false,  /* isMovable.  Not relevant for setters. */
   25854             :   false, /* isEliminatable.  Not relevant for setters. */
   25855             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25856             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25857             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25858             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25859             : };
   25860             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25861             : static_assert(0 < 1, "There is no slot for us");
   25862             : 
   25863             : static bool
   25864           0 : get_marginTop(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25865             : {
   25866           0 :   binding_detail::FastErrorResult rv;
   25867           0 :   DOMString result;
   25868           0 :   self->GetMarginTop(result, rv);
   25869           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25870           0 :     return false;
   25871             :   }
   25872           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25873           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25874           0 :     return false;
   25875             :   }
   25876           0 :   return true;
   25877             : }
   25878             : 
   25879             : static bool
   25880           0 : set_marginTop(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25881             : {
   25882           0 :   binding_detail::FakeString arg0;
   25883           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25884           0 :     return false;
   25885             :   }
   25886           0 :   binding_detail::FastErrorResult rv;
   25887           0 :   self->SetMarginTop(NonNullHelper(Constify(arg0)), rv);
   25888           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25889           0 :     return false;
   25890             :   }
   25891           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25892             : 
   25893           0 :   return true;
   25894             : }
   25895             : 
   25896             : static const JSJitInfo marginTop_getterinfo = {
   25897             :   { (JSJitGetterOp)get_marginTop },
   25898             :   { prototypes::id::CSS2Properties },
   25899             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25900             :   JSJitInfo::Getter,
   25901             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25902             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25903             :   false,  /* isInfallible. False in setters. */
   25904             :   false,  /* isMovable.  Not relevant for setters. */
   25905             :   false, /* isEliminatable.  Not relevant for setters. */
   25906             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25907             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25908             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25909             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25910             : };
   25911             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25912             : static_assert(0 < 1, "There is no slot for us");
   25913             : static const JSJitInfo marginTop_setterinfo = {
   25914             :   { (JSJitGetterOp)set_marginTop },
   25915             :   { prototypes::id::CSS2Properties },
   25916             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25917             :   JSJitInfo::Setter,
   25918             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25919             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25920             :   false,  /* isInfallible. False in setters. */
   25921             :   false,  /* isMovable.  Not relevant for setters. */
   25922             :   false, /* isEliminatable.  Not relevant for setters. */
   25923             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25924             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25925             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25926             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25927             : };
   25928             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25929             : static_assert(0 < 1, "There is no slot for us");
   25930             : 
   25931             : static bool
   25932           0 : get_margin_top(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   25933             : {
   25934           0 :   binding_detail::FastErrorResult rv;
   25935           0 :   DOMString result;
   25936           0 :   self->GetMarginTop(result, rv);
   25937           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25938           0 :     return false;
   25939             :   }
   25940           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25941           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   25942           0 :     return false;
   25943             :   }
   25944           0 :   return true;
   25945             : }
   25946             : 
   25947             : static bool
   25948           0 : set_margin_top(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   25949             : {
   25950           0 :   binding_detail::FakeString arg0;
   25951           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   25952           0 :     return false;
   25953             :   }
   25954           0 :   binding_detail::FastErrorResult rv;
   25955           0 :   self->SetMarginTop(NonNullHelper(Constify(arg0)), rv);
   25956           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   25957           0 :     return false;
   25958             :   }
   25959           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   25960             : 
   25961           0 :   return true;
   25962             : }
   25963             : 
   25964             : static const JSJitInfo margin_top_getterinfo = {
   25965             :   { (JSJitGetterOp)get_margin_top },
   25966             :   { prototypes::id::CSS2Properties },
   25967             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25968             :   JSJitInfo::Getter,
   25969             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25970             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   25971             :   false,  /* isInfallible. False in setters. */
   25972             :   false,  /* isMovable.  Not relevant for setters. */
   25973             :   false, /* isEliminatable.  Not relevant for setters. */
   25974             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25975             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25976             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25977             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25978             : };
   25979             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25980             : static_assert(0 < 1, "There is no slot for us");
   25981             : static const JSJitInfo margin_top_setterinfo = {
   25982             :   { (JSJitGetterOp)set_margin_top },
   25983             :   { prototypes::id::CSS2Properties },
   25984             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   25985             :   JSJitInfo::Setter,
   25986             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   25987             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   25988             :   false,  /* isInfallible. False in setters. */
   25989             :   false,  /* isMovable.  Not relevant for setters. */
   25990             :   false, /* isEliminatable.  Not relevant for setters. */
   25991             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   25992             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   25993             :   false,  /* isTypedMethod.  Only relevant for methods. */
   25994             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   25995             : };
   25996             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   25997             : static_assert(0 < 1, "There is no slot for us");
   25998             : 
   25999             : static bool
   26000           0 : get_marker(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26001             : {
   26002           0 :   binding_detail::FastErrorResult rv;
   26003           0 :   DOMString result;
   26004           0 :   self->GetMarker(result, rv);
   26005           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26006           0 :     return false;
   26007             :   }
   26008           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26009           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26010           0 :     return false;
   26011             :   }
   26012           0 :   return true;
   26013             : }
   26014             : 
   26015             : static bool
   26016           0 : set_marker(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26017             : {
   26018           0 :   binding_detail::FakeString arg0;
   26019           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26020           0 :     return false;
   26021             :   }
   26022           0 :   binding_detail::FastErrorResult rv;
   26023           0 :   self->SetMarker(NonNullHelper(Constify(arg0)), rv);
   26024           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26025           0 :     return false;
   26026             :   }
   26027           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26028             : 
   26029           0 :   return true;
   26030             : }
   26031             : 
   26032             : static const JSJitInfo marker_getterinfo = {
   26033             :   { (JSJitGetterOp)get_marker },
   26034             :   { prototypes::id::CSS2Properties },
   26035             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26036             :   JSJitInfo::Getter,
   26037             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26038             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26039             :   false,  /* isInfallible. False in setters. */
   26040             :   false,  /* isMovable.  Not relevant for setters. */
   26041             :   false, /* isEliminatable.  Not relevant for setters. */
   26042             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26043             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26044             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26045             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26046             : };
   26047             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26048             : static_assert(0 < 1, "There is no slot for us");
   26049             : static const JSJitInfo marker_setterinfo = {
   26050             :   { (JSJitGetterOp)set_marker },
   26051             :   { prototypes::id::CSS2Properties },
   26052             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26053             :   JSJitInfo::Setter,
   26054             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26055             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26056             :   false,  /* isInfallible. False in setters. */
   26057             :   false,  /* isMovable.  Not relevant for setters. */
   26058             :   false, /* isEliminatable.  Not relevant for setters. */
   26059             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26060             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26061             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26062             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26063             : };
   26064             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26065             : static_assert(0 < 1, "There is no slot for us");
   26066             : 
   26067             : static bool
   26068           0 : get_markerEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26069             : {
   26070           0 :   binding_detail::FastErrorResult rv;
   26071           0 :   DOMString result;
   26072           0 :   self->GetMarkerEnd(result, rv);
   26073           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26074           0 :     return false;
   26075             :   }
   26076           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26077           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26078           0 :     return false;
   26079             :   }
   26080           0 :   return true;
   26081             : }
   26082             : 
   26083             : static bool
   26084           0 : set_markerEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26085             : {
   26086           0 :   binding_detail::FakeString arg0;
   26087           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26088           0 :     return false;
   26089             :   }
   26090           0 :   binding_detail::FastErrorResult rv;
   26091           0 :   self->SetMarkerEnd(NonNullHelper(Constify(arg0)), rv);
   26092           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26093           0 :     return false;
   26094             :   }
   26095           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26096             : 
   26097           0 :   return true;
   26098             : }
   26099             : 
   26100             : static const JSJitInfo markerEnd_getterinfo = {
   26101             :   { (JSJitGetterOp)get_markerEnd },
   26102             :   { prototypes::id::CSS2Properties },
   26103             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26104             :   JSJitInfo::Getter,
   26105             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26106             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26107             :   false,  /* isInfallible. False in setters. */
   26108             :   false,  /* isMovable.  Not relevant for setters. */
   26109             :   false, /* isEliminatable.  Not relevant for setters. */
   26110             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26111             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26112             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26113             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26114             : };
   26115             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26116             : static_assert(0 < 1, "There is no slot for us");
   26117             : static const JSJitInfo markerEnd_setterinfo = {
   26118             :   { (JSJitGetterOp)set_markerEnd },
   26119             :   { prototypes::id::CSS2Properties },
   26120             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26121             :   JSJitInfo::Setter,
   26122             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26123             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26124             :   false,  /* isInfallible. False in setters. */
   26125             :   false,  /* isMovable.  Not relevant for setters. */
   26126             :   false, /* isEliminatable.  Not relevant for setters. */
   26127             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26128             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26129             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26130             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26131             : };
   26132             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26133             : static_assert(0 < 1, "There is no slot for us");
   26134             : 
   26135             : static bool
   26136           0 : get_marker_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26137             : {
   26138           0 :   binding_detail::FastErrorResult rv;
   26139           0 :   DOMString result;
   26140           0 :   self->GetMarkerEnd(result, rv);
   26141           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26142           0 :     return false;
   26143             :   }
   26144           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26145           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26146           0 :     return false;
   26147             :   }
   26148           0 :   return true;
   26149             : }
   26150             : 
   26151             : static bool
   26152           0 : set_marker_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26153             : {
   26154           0 :   binding_detail::FakeString arg0;
   26155           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26156           0 :     return false;
   26157             :   }
   26158           0 :   binding_detail::FastErrorResult rv;
   26159           0 :   self->SetMarkerEnd(NonNullHelper(Constify(arg0)), rv);
   26160           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26161           0 :     return false;
   26162             :   }
   26163           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26164             : 
   26165           0 :   return true;
   26166             : }
   26167             : 
   26168             : static const JSJitInfo marker_end_getterinfo = {
   26169             :   { (JSJitGetterOp)get_marker_end },
   26170             :   { prototypes::id::CSS2Properties },
   26171             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26172             :   JSJitInfo::Getter,
   26173             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26174             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26175             :   false,  /* isInfallible. False in setters. */
   26176             :   false,  /* isMovable.  Not relevant for setters. */
   26177             :   false, /* isEliminatable.  Not relevant for setters. */
   26178             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26179             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26180             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26181             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26182             : };
   26183             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26184             : static_assert(0 < 1, "There is no slot for us");
   26185             : static const JSJitInfo marker_end_setterinfo = {
   26186             :   { (JSJitGetterOp)set_marker_end },
   26187             :   { prototypes::id::CSS2Properties },
   26188             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26189             :   JSJitInfo::Setter,
   26190             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26191             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26192             :   false,  /* isInfallible. False in setters. */
   26193             :   false,  /* isMovable.  Not relevant for setters. */
   26194             :   false, /* isEliminatable.  Not relevant for setters. */
   26195             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26196             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26197             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26198             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26199             : };
   26200             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26201             : static_assert(0 < 1, "There is no slot for us");
   26202             : 
   26203             : static bool
   26204           0 : get_markerMid(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26205             : {
   26206           0 :   binding_detail::FastErrorResult rv;
   26207           0 :   DOMString result;
   26208           0 :   self->GetMarkerMid(result, rv);
   26209           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26210           0 :     return false;
   26211             :   }
   26212           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26213           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26214           0 :     return false;
   26215             :   }
   26216           0 :   return true;
   26217             : }
   26218             : 
   26219             : static bool
   26220           0 : set_markerMid(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26221             : {
   26222           0 :   binding_detail::FakeString arg0;
   26223           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26224           0 :     return false;
   26225             :   }
   26226           0 :   binding_detail::FastErrorResult rv;
   26227           0 :   self->SetMarkerMid(NonNullHelper(Constify(arg0)), rv);
   26228           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26229           0 :     return false;
   26230             :   }
   26231           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26232             : 
   26233           0 :   return true;
   26234             : }
   26235             : 
   26236             : static const JSJitInfo markerMid_getterinfo = {
   26237             :   { (JSJitGetterOp)get_markerMid },
   26238             :   { prototypes::id::CSS2Properties },
   26239             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26240             :   JSJitInfo::Getter,
   26241             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26242             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26243             :   false,  /* isInfallible. False in setters. */
   26244             :   false,  /* isMovable.  Not relevant for setters. */
   26245             :   false, /* isEliminatable.  Not relevant for setters. */
   26246             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26247             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26248             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26249             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26250             : };
   26251             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26252             : static_assert(0 < 1, "There is no slot for us");
   26253             : static const JSJitInfo markerMid_setterinfo = {
   26254             :   { (JSJitGetterOp)set_markerMid },
   26255             :   { prototypes::id::CSS2Properties },
   26256             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26257             :   JSJitInfo::Setter,
   26258             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26259             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26260             :   false,  /* isInfallible. False in setters. */
   26261             :   false,  /* isMovable.  Not relevant for setters. */
   26262             :   false, /* isEliminatable.  Not relevant for setters. */
   26263             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26264             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26265             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26266             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26267             : };
   26268             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26269             : static_assert(0 < 1, "There is no slot for us");
   26270             : 
   26271             : static bool
   26272           0 : get_marker_mid(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26273             : {
   26274           0 :   binding_detail::FastErrorResult rv;
   26275           0 :   DOMString result;
   26276           0 :   self->GetMarkerMid(result, rv);
   26277           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26278           0 :     return false;
   26279             :   }
   26280           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26281           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26282           0 :     return false;
   26283             :   }
   26284           0 :   return true;
   26285             : }
   26286             : 
   26287             : static bool
   26288           0 : set_marker_mid(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26289             : {
   26290           0 :   binding_detail::FakeString arg0;
   26291           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26292           0 :     return false;
   26293             :   }
   26294           0 :   binding_detail::FastErrorResult rv;
   26295           0 :   self->SetMarkerMid(NonNullHelper(Constify(arg0)), rv);
   26296           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26297           0 :     return false;
   26298             :   }
   26299           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26300             : 
   26301           0 :   return true;
   26302             : }
   26303             : 
   26304             : static const JSJitInfo marker_mid_getterinfo = {
   26305             :   { (JSJitGetterOp)get_marker_mid },
   26306             :   { prototypes::id::CSS2Properties },
   26307             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26308             :   JSJitInfo::Getter,
   26309             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26310             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26311             :   false,  /* isInfallible. False in setters. */
   26312             :   false,  /* isMovable.  Not relevant for setters. */
   26313             :   false, /* isEliminatable.  Not relevant for setters. */
   26314             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26315             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26316             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26317             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26318             : };
   26319             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26320             : static_assert(0 < 1, "There is no slot for us");
   26321             : static const JSJitInfo marker_mid_setterinfo = {
   26322             :   { (JSJitGetterOp)set_marker_mid },
   26323             :   { prototypes::id::CSS2Properties },
   26324             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26325             :   JSJitInfo::Setter,
   26326             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26327             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26328             :   false,  /* isInfallible. False in setters. */
   26329             :   false,  /* isMovable.  Not relevant for setters. */
   26330             :   false, /* isEliminatable.  Not relevant for setters. */
   26331             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26332             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26333             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26334             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26335             : };
   26336             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26337             : static_assert(0 < 1, "There is no slot for us");
   26338             : 
   26339             : static bool
   26340           0 : get_markerStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26341             : {
   26342           0 :   binding_detail::FastErrorResult rv;
   26343           0 :   DOMString result;
   26344           0 :   self->GetMarkerStart(result, rv);
   26345           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26346           0 :     return false;
   26347             :   }
   26348           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26349           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26350           0 :     return false;
   26351             :   }
   26352           0 :   return true;
   26353             : }
   26354             : 
   26355             : static bool
   26356           0 : set_markerStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26357             : {
   26358           0 :   binding_detail::FakeString arg0;
   26359           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26360           0 :     return false;
   26361             :   }
   26362           0 :   binding_detail::FastErrorResult rv;
   26363           0 :   self->SetMarkerStart(NonNullHelper(Constify(arg0)), rv);
   26364           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26365           0 :     return false;
   26366             :   }
   26367           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26368             : 
   26369           0 :   return true;
   26370             : }
   26371             : 
   26372             : static const JSJitInfo markerStart_getterinfo = {
   26373             :   { (JSJitGetterOp)get_markerStart },
   26374             :   { prototypes::id::CSS2Properties },
   26375             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26376             :   JSJitInfo::Getter,
   26377             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26378             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26379             :   false,  /* isInfallible. False in setters. */
   26380             :   false,  /* isMovable.  Not relevant for setters. */
   26381             :   false, /* isEliminatable.  Not relevant for setters. */
   26382             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26383             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26384             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26385             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26386             : };
   26387             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26388             : static_assert(0 < 1, "There is no slot for us");
   26389             : static const JSJitInfo markerStart_setterinfo = {
   26390             :   { (JSJitGetterOp)set_markerStart },
   26391             :   { prototypes::id::CSS2Properties },
   26392             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26393             :   JSJitInfo::Setter,
   26394             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26395             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26396             :   false,  /* isInfallible. False in setters. */
   26397             :   false,  /* isMovable.  Not relevant for setters. */
   26398             :   false, /* isEliminatable.  Not relevant for setters. */
   26399             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26400             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26401             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26402             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26403             : };
   26404             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26405             : static_assert(0 < 1, "There is no slot for us");
   26406             : 
   26407             : static bool
   26408           0 : get_marker_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26409             : {
   26410           0 :   binding_detail::FastErrorResult rv;
   26411           0 :   DOMString result;
   26412           0 :   self->GetMarkerStart(result, rv);
   26413           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26414           0 :     return false;
   26415             :   }
   26416           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26417           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26418           0 :     return false;
   26419             :   }
   26420           0 :   return true;
   26421             : }
   26422             : 
   26423             : static bool
   26424           0 : set_marker_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26425             : {
   26426           0 :   binding_detail::FakeString arg0;
   26427           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26428           0 :     return false;
   26429             :   }
   26430           0 :   binding_detail::FastErrorResult rv;
   26431           0 :   self->SetMarkerStart(NonNullHelper(Constify(arg0)), rv);
   26432           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26433           0 :     return false;
   26434             :   }
   26435           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26436             : 
   26437           0 :   return true;
   26438             : }
   26439             : 
   26440             : static const JSJitInfo marker_start_getterinfo = {
   26441             :   { (JSJitGetterOp)get_marker_start },
   26442             :   { prototypes::id::CSS2Properties },
   26443             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26444             :   JSJitInfo::Getter,
   26445             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26446             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26447             :   false,  /* isInfallible. False in setters. */
   26448             :   false,  /* isMovable.  Not relevant for setters. */
   26449             :   false, /* isEliminatable.  Not relevant for setters. */
   26450             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26451             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26452             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26453             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26454             : };
   26455             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26456             : static_assert(0 < 1, "There is no slot for us");
   26457             : static const JSJitInfo marker_start_setterinfo = {
   26458             :   { (JSJitGetterOp)set_marker_start },
   26459             :   { prototypes::id::CSS2Properties },
   26460             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26461             :   JSJitInfo::Setter,
   26462             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26463             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26464             :   false,  /* isInfallible. False in setters. */
   26465             :   false,  /* isMovable.  Not relevant for setters. */
   26466             :   false, /* isEliminatable.  Not relevant for setters. */
   26467             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26468             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26469             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26470             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26471             : };
   26472             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26473             : static_assert(0 < 1, "There is no slot for us");
   26474             : 
   26475             : static bool
   26476           0 : get_mask(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26477             : {
   26478           0 :   binding_detail::FastErrorResult rv;
   26479           0 :   DOMString result;
   26480           0 :   self->GetMask(result, rv);
   26481           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26482           0 :     return false;
   26483             :   }
   26484           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26485           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26486           0 :     return false;
   26487             :   }
   26488           0 :   return true;
   26489             : }
   26490             : 
   26491             : static bool
   26492           0 : set_mask(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26493             : {
   26494           0 :   binding_detail::FakeString arg0;
   26495           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26496           0 :     return false;
   26497             :   }
   26498           0 :   binding_detail::FastErrorResult rv;
   26499           0 :   self->SetMask(NonNullHelper(Constify(arg0)), rv);
   26500           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26501           0 :     return false;
   26502             :   }
   26503           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26504             : 
   26505           0 :   return true;
   26506             : }
   26507             : 
   26508             : static const JSJitInfo mask_getterinfo = {
   26509             :   { (JSJitGetterOp)get_mask },
   26510             :   { prototypes::id::CSS2Properties },
   26511             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26512             :   JSJitInfo::Getter,
   26513             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26514             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26515             :   false,  /* isInfallible. False in setters. */
   26516             :   false,  /* isMovable.  Not relevant for setters. */
   26517             :   false, /* isEliminatable.  Not relevant for setters. */
   26518             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26519             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26520             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26521             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26522             : };
   26523             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26524             : static_assert(0 < 1, "There is no slot for us");
   26525             : static const JSJitInfo mask_setterinfo = {
   26526             :   { (JSJitGetterOp)set_mask },
   26527             :   { prototypes::id::CSS2Properties },
   26528             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26529             :   JSJitInfo::Setter,
   26530             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26531             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26532             :   false,  /* isInfallible. False in setters. */
   26533             :   false,  /* isMovable.  Not relevant for setters. */
   26534             :   false, /* isEliminatable.  Not relevant for setters. */
   26535             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26536             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26537             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26538             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26539             : };
   26540             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26541             : static_assert(0 < 1, "There is no slot for us");
   26542             : 
   26543             : static bool
   26544           0 : get_maskClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26545             : {
   26546           0 :   binding_detail::FastErrorResult rv;
   26547           0 :   DOMString result;
   26548           0 :   self->GetMaskClip(result, rv);
   26549           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26550           0 :     return false;
   26551             :   }
   26552           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26553           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26554           0 :     return false;
   26555             :   }
   26556           0 :   return true;
   26557             : }
   26558             : 
   26559             : static bool
   26560           0 : set_maskClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26561             : {
   26562           0 :   binding_detail::FakeString arg0;
   26563           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26564           0 :     return false;
   26565             :   }
   26566           0 :   binding_detail::FastErrorResult rv;
   26567           0 :   self->SetMaskClip(NonNullHelper(Constify(arg0)), rv);
   26568           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26569           0 :     return false;
   26570             :   }
   26571           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26572             : 
   26573           0 :   return true;
   26574             : }
   26575             : 
   26576             : static const JSJitInfo maskClip_getterinfo = {
   26577             :   { (JSJitGetterOp)get_maskClip },
   26578             :   { prototypes::id::CSS2Properties },
   26579             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26580             :   JSJitInfo::Getter,
   26581             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26582             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26583             :   false,  /* isInfallible. False in setters. */
   26584             :   false,  /* isMovable.  Not relevant for setters. */
   26585             :   false, /* isEliminatable.  Not relevant for setters. */
   26586             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26587             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26588             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26589             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26590             : };
   26591             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26592             : static_assert(0 < 1, "There is no slot for us");
   26593             : static const JSJitInfo maskClip_setterinfo = {
   26594             :   { (JSJitGetterOp)set_maskClip },
   26595             :   { prototypes::id::CSS2Properties },
   26596             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26597             :   JSJitInfo::Setter,
   26598             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26599             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26600             :   false,  /* isInfallible. False in setters. */
   26601             :   false,  /* isMovable.  Not relevant for setters. */
   26602             :   false, /* isEliminatable.  Not relevant for setters. */
   26603             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26604             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26605             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26606             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26607             : };
   26608             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26609             : static_assert(0 < 1, "There is no slot for us");
   26610             : 
   26611             : static bool
   26612           0 : get_mask_clip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26613             : {
   26614           0 :   binding_detail::FastErrorResult rv;
   26615           0 :   DOMString result;
   26616           0 :   self->GetMaskClip(result, rv);
   26617           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26618           0 :     return false;
   26619             :   }
   26620           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26621           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26622           0 :     return false;
   26623             :   }
   26624           0 :   return true;
   26625             : }
   26626             : 
   26627             : static bool
   26628           0 : set_mask_clip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26629             : {
   26630           0 :   binding_detail::FakeString arg0;
   26631           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26632           0 :     return false;
   26633             :   }
   26634           0 :   binding_detail::FastErrorResult rv;
   26635           0 :   self->SetMaskClip(NonNullHelper(Constify(arg0)), rv);
   26636           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26637           0 :     return false;
   26638             :   }
   26639           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26640             : 
   26641           0 :   return true;
   26642             : }
   26643             : 
   26644             : static const JSJitInfo mask_clip_getterinfo = {
   26645             :   { (JSJitGetterOp)get_mask_clip },
   26646             :   { prototypes::id::CSS2Properties },
   26647             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26648             :   JSJitInfo::Getter,
   26649             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26650             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26651             :   false,  /* isInfallible. False in setters. */
   26652             :   false,  /* isMovable.  Not relevant for setters. */
   26653             :   false, /* isEliminatable.  Not relevant for setters. */
   26654             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26655             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26656             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26657             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26658             : };
   26659             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26660             : static_assert(0 < 1, "There is no slot for us");
   26661             : static const JSJitInfo mask_clip_setterinfo = {
   26662             :   { (JSJitGetterOp)set_mask_clip },
   26663             :   { prototypes::id::CSS2Properties },
   26664             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26665             :   JSJitInfo::Setter,
   26666             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26667             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26668             :   false,  /* isInfallible. False in setters. */
   26669             :   false,  /* isMovable.  Not relevant for setters. */
   26670             :   false, /* isEliminatable.  Not relevant for setters. */
   26671             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26672             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26673             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26674             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26675             : };
   26676             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26677             : static_assert(0 < 1, "There is no slot for us");
   26678             : 
   26679             : static bool
   26680           0 : get_maskComposite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26681             : {
   26682           0 :   binding_detail::FastErrorResult rv;
   26683           0 :   DOMString result;
   26684           0 :   self->GetMaskComposite(result, rv);
   26685           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26686           0 :     return false;
   26687             :   }
   26688           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26689           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26690           0 :     return false;
   26691             :   }
   26692           0 :   return true;
   26693             : }
   26694             : 
   26695             : static bool
   26696           0 : set_maskComposite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26697             : {
   26698           0 :   binding_detail::FakeString arg0;
   26699           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26700           0 :     return false;
   26701             :   }
   26702           0 :   binding_detail::FastErrorResult rv;
   26703           0 :   self->SetMaskComposite(NonNullHelper(Constify(arg0)), rv);
   26704           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26705           0 :     return false;
   26706             :   }
   26707           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26708             : 
   26709           0 :   return true;
   26710             : }
   26711             : 
   26712             : static const JSJitInfo maskComposite_getterinfo = {
   26713             :   { (JSJitGetterOp)get_maskComposite },
   26714             :   { prototypes::id::CSS2Properties },
   26715             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26716             :   JSJitInfo::Getter,
   26717             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26718             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26719             :   false,  /* isInfallible. False in setters. */
   26720             :   false,  /* isMovable.  Not relevant for setters. */
   26721             :   false, /* isEliminatable.  Not relevant for setters. */
   26722             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26723             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26724             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26725             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26726             : };
   26727             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26728             : static_assert(0 < 1, "There is no slot for us");
   26729             : static const JSJitInfo maskComposite_setterinfo = {
   26730             :   { (JSJitGetterOp)set_maskComposite },
   26731             :   { prototypes::id::CSS2Properties },
   26732             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26733             :   JSJitInfo::Setter,
   26734             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26735             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26736             :   false,  /* isInfallible. False in setters. */
   26737             :   false,  /* isMovable.  Not relevant for setters. */
   26738             :   false, /* isEliminatable.  Not relevant for setters. */
   26739             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26740             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26741             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26742             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26743             : };
   26744             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26745             : static_assert(0 < 1, "There is no slot for us");
   26746             : 
   26747             : static bool
   26748           0 : get_mask_composite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26749             : {
   26750           0 :   binding_detail::FastErrorResult rv;
   26751           0 :   DOMString result;
   26752           0 :   self->GetMaskComposite(result, rv);
   26753           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26754           0 :     return false;
   26755             :   }
   26756           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26757           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26758           0 :     return false;
   26759             :   }
   26760           0 :   return true;
   26761             : }
   26762             : 
   26763             : static bool
   26764           0 : set_mask_composite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26765             : {
   26766           0 :   binding_detail::FakeString arg0;
   26767           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26768           0 :     return false;
   26769             :   }
   26770           0 :   binding_detail::FastErrorResult rv;
   26771           0 :   self->SetMaskComposite(NonNullHelper(Constify(arg0)), rv);
   26772           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26773           0 :     return false;
   26774             :   }
   26775           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26776             : 
   26777           0 :   return true;
   26778             : }
   26779             : 
   26780             : static const JSJitInfo mask_composite_getterinfo = {
   26781             :   { (JSJitGetterOp)get_mask_composite },
   26782             :   { prototypes::id::CSS2Properties },
   26783             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26784             :   JSJitInfo::Getter,
   26785             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26786             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26787             :   false,  /* isInfallible. False in setters. */
   26788             :   false,  /* isMovable.  Not relevant for setters. */
   26789             :   false, /* isEliminatable.  Not relevant for setters. */
   26790             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26791             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26792             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26793             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26794             : };
   26795             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26796             : static_assert(0 < 1, "There is no slot for us");
   26797             : static const JSJitInfo mask_composite_setterinfo = {
   26798             :   { (JSJitGetterOp)set_mask_composite },
   26799             :   { prototypes::id::CSS2Properties },
   26800             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26801             :   JSJitInfo::Setter,
   26802             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26803             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26804             :   false,  /* isInfallible. False in setters. */
   26805             :   false,  /* isMovable.  Not relevant for setters. */
   26806             :   false, /* isEliminatable.  Not relevant for setters. */
   26807             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26808             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26809             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26810             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26811             : };
   26812             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26813             : static_assert(0 < 1, "There is no slot for us");
   26814             : 
   26815             : static bool
   26816           0 : get_maskImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26817             : {
   26818           0 :   binding_detail::FastErrorResult rv;
   26819           0 :   DOMString result;
   26820           0 :   self->GetMaskImage(result, rv);
   26821           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26822           0 :     return false;
   26823             :   }
   26824           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26825           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26826           0 :     return false;
   26827             :   }
   26828           0 :   return true;
   26829             : }
   26830             : 
   26831             : static bool
   26832           0 : set_maskImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26833             : {
   26834           0 :   binding_detail::FakeString arg0;
   26835           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26836           0 :     return false;
   26837             :   }
   26838           0 :   binding_detail::FastErrorResult rv;
   26839           0 :   self->SetMaskImage(NonNullHelper(Constify(arg0)), rv);
   26840           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26841           0 :     return false;
   26842             :   }
   26843           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26844             : 
   26845           0 :   return true;
   26846             : }
   26847             : 
   26848             : static const JSJitInfo maskImage_getterinfo = {
   26849             :   { (JSJitGetterOp)get_maskImage },
   26850             :   { prototypes::id::CSS2Properties },
   26851             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26852             :   JSJitInfo::Getter,
   26853             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26854             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26855             :   false,  /* isInfallible. False in setters. */
   26856             :   false,  /* isMovable.  Not relevant for setters. */
   26857             :   false, /* isEliminatable.  Not relevant for setters. */
   26858             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26859             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26860             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26861             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26862             : };
   26863             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26864             : static_assert(0 < 1, "There is no slot for us");
   26865             : static const JSJitInfo maskImage_setterinfo = {
   26866             :   { (JSJitGetterOp)set_maskImage },
   26867             :   { prototypes::id::CSS2Properties },
   26868             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26869             :   JSJitInfo::Setter,
   26870             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26871             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26872             :   false,  /* isInfallible. False in setters. */
   26873             :   false,  /* isMovable.  Not relevant for setters. */
   26874             :   false, /* isEliminatable.  Not relevant for setters. */
   26875             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26876             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26877             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26878             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26879             : };
   26880             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26881             : static_assert(0 < 1, "There is no slot for us");
   26882             : 
   26883             : static bool
   26884           0 : get_mask_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26885             : {
   26886           0 :   binding_detail::FastErrorResult rv;
   26887           0 :   DOMString result;
   26888           0 :   self->GetMaskImage(result, rv);
   26889           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26890           0 :     return false;
   26891             :   }
   26892           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26893           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26894           0 :     return false;
   26895             :   }
   26896           0 :   return true;
   26897             : }
   26898             : 
   26899             : static bool
   26900           0 : set_mask_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26901             : {
   26902           0 :   binding_detail::FakeString arg0;
   26903           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26904           0 :     return false;
   26905             :   }
   26906           0 :   binding_detail::FastErrorResult rv;
   26907           0 :   self->SetMaskImage(NonNullHelper(Constify(arg0)), rv);
   26908           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26909           0 :     return false;
   26910             :   }
   26911           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26912             : 
   26913           0 :   return true;
   26914             : }
   26915             : 
   26916             : static const JSJitInfo mask_image_getterinfo = {
   26917             :   { (JSJitGetterOp)get_mask_image },
   26918             :   { prototypes::id::CSS2Properties },
   26919             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26920             :   JSJitInfo::Getter,
   26921             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26922             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26923             :   false,  /* isInfallible. False in setters. */
   26924             :   false,  /* isMovable.  Not relevant for setters. */
   26925             :   false, /* isEliminatable.  Not relevant for setters. */
   26926             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26927             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26928             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26929             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26930             : };
   26931             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26932             : static_assert(0 < 1, "There is no slot for us");
   26933             : static const JSJitInfo mask_image_setterinfo = {
   26934             :   { (JSJitGetterOp)set_mask_image },
   26935             :   { prototypes::id::CSS2Properties },
   26936             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26937             :   JSJitInfo::Setter,
   26938             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26939             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   26940             :   false,  /* isInfallible. False in setters. */
   26941             :   false,  /* isMovable.  Not relevant for setters. */
   26942             :   false, /* isEliminatable.  Not relevant for setters. */
   26943             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26944             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26945             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26946             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26947             : };
   26948             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   26949             : static_assert(0 < 1, "There is no slot for us");
   26950             : 
   26951             : static bool
   26952           0 : get_maskMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   26953             : {
   26954           0 :   binding_detail::FastErrorResult rv;
   26955           0 :   DOMString result;
   26956           0 :   self->GetMaskMode(result, rv);
   26957           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26958           0 :     return false;
   26959             :   }
   26960           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26961           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   26962           0 :     return false;
   26963             :   }
   26964           0 :   return true;
   26965             : }
   26966             : 
   26967             : static bool
   26968           0 : set_maskMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   26969             : {
   26970           0 :   binding_detail::FakeString arg0;
   26971           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   26972           0 :     return false;
   26973             :   }
   26974           0 :   binding_detail::FastErrorResult rv;
   26975           0 :   self->SetMaskMode(NonNullHelper(Constify(arg0)), rv);
   26976           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   26977           0 :     return false;
   26978             :   }
   26979           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   26980             : 
   26981           0 :   return true;
   26982             : }
   26983             : 
   26984             : static const JSJitInfo maskMode_getterinfo = {
   26985             :   { (JSJitGetterOp)get_maskMode },
   26986             :   { prototypes::id::CSS2Properties },
   26987             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   26988             :   JSJitInfo::Getter,
   26989             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   26990             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   26991             :   false,  /* isInfallible. False in setters. */
   26992             :   false,  /* isMovable.  Not relevant for setters. */
   26993             :   false, /* isEliminatable.  Not relevant for setters. */
   26994             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   26995             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   26996             :   false,  /* isTypedMethod.  Only relevant for methods. */
   26997             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   26998             : };
   26999             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27000             : static_assert(0 < 1, "There is no slot for us");
   27001             : static const JSJitInfo maskMode_setterinfo = {
   27002             :   { (JSJitGetterOp)set_maskMode },
   27003             :   { prototypes::id::CSS2Properties },
   27004             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27005             :   JSJitInfo::Setter,
   27006             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27007             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27008             :   false,  /* isInfallible. False in setters. */
   27009             :   false,  /* isMovable.  Not relevant for setters. */
   27010             :   false, /* isEliminatable.  Not relevant for setters. */
   27011             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27012             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27013             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27014             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27015             : };
   27016             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27017             : static_assert(0 < 1, "There is no slot for us");
   27018             : 
   27019             : static bool
   27020           0 : get_mask_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27021             : {
   27022           0 :   binding_detail::FastErrorResult rv;
   27023           0 :   DOMString result;
   27024           0 :   self->GetMaskMode(result, rv);
   27025           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27026           0 :     return false;
   27027             :   }
   27028           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27029           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27030           0 :     return false;
   27031             :   }
   27032           0 :   return true;
   27033             : }
   27034             : 
   27035             : static bool
   27036           0 : set_mask_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27037             : {
   27038           0 :   binding_detail::FakeString arg0;
   27039           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27040           0 :     return false;
   27041             :   }
   27042           0 :   binding_detail::FastErrorResult rv;
   27043           0 :   self->SetMaskMode(NonNullHelper(Constify(arg0)), rv);
   27044           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27045           0 :     return false;
   27046             :   }
   27047           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27048             : 
   27049           0 :   return true;
   27050             : }
   27051             : 
   27052             : static const JSJitInfo mask_mode_getterinfo = {
   27053             :   { (JSJitGetterOp)get_mask_mode },
   27054             :   { prototypes::id::CSS2Properties },
   27055             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27056             :   JSJitInfo::Getter,
   27057             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27058             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27059             :   false,  /* isInfallible. False in setters. */
   27060             :   false,  /* isMovable.  Not relevant for setters. */
   27061             :   false, /* isEliminatable.  Not relevant for setters. */
   27062             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27063             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27064             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27065             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27066             : };
   27067             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27068             : static_assert(0 < 1, "There is no slot for us");
   27069             : static const JSJitInfo mask_mode_setterinfo = {
   27070             :   { (JSJitGetterOp)set_mask_mode },
   27071             :   { prototypes::id::CSS2Properties },
   27072             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27073             :   JSJitInfo::Setter,
   27074             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27075             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27076             :   false,  /* isInfallible. False in setters. */
   27077             :   false,  /* isMovable.  Not relevant for setters. */
   27078             :   false, /* isEliminatable.  Not relevant for setters. */
   27079             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27080             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27081             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27082             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27083             : };
   27084             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27085             : static_assert(0 < 1, "There is no slot for us");
   27086             : 
   27087             : static bool
   27088           0 : get_maskOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27089             : {
   27090           0 :   binding_detail::FastErrorResult rv;
   27091           0 :   DOMString result;
   27092           0 :   self->GetMaskOrigin(result, rv);
   27093           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27094           0 :     return false;
   27095             :   }
   27096           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27097           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27098           0 :     return false;
   27099             :   }
   27100           0 :   return true;
   27101             : }
   27102             : 
   27103             : static bool
   27104           0 : set_maskOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27105             : {
   27106           0 :   binding_detail::FakeString arg0;
   27107           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27108           0 :     return false;
   27109             :   }
   27110           0 :   binding_detail::FastErrorResult rv;
   27111           0 :   self->SetMaskOrigin(NonNullHelper(Constify(arg0)), rv);
   27112           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27113           0 :     return false;
   27114             :   }
   27115           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27116             : 
   27117           0 :   return true;
   27118             : }
   27119             : 
   27120             : static const JSJitInfo maskOrigin_getterinfo = {
   27121             :   { (JSJitGetterOp)get_maskOrigin },
   27122             :   { prototypes::id::CSS2Properties },
   27123             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27124             :   JSJitInfo::Getter,
   27125             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27126             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27127             :   false,  /* isInfallible. False in setters. */
   27128             :   false,  /* isMovable.  Not relevant for setters. */
   27129             :   false, /* isEliminatable.  Not relevant for setters. */
   27130             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27131             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27132             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27133             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27134             : };
   27135             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27136             : static_assert(0 < 1, "There is no slot for us");
   27137             : static const JSJitInfo maskOrigin_setterinfo = {
   27138             :   { (JSJitGetterOp)set_maskOrigin },
   27139             :   { prototypes::id::CSS2Properties },
   27140             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27141             :   JSJitInfo::Setter,
   27142             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27143             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27144             :   false,  /* isInfallible. False in setters. */
   27145             :   false,  /* isMovable.  Not relevant for setters. */
   27146             :   false, /* isEliminatable.  Not relevant for setters. */
   27147             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27148             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27149             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27150             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27151             : };
   27152             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27153             : static_assert(0 < 1, "There is no slot for us");
   27154             : 
   27155             : static bool
   27156           0 : get_mask_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27157             : {
   27158           0 :   binding_detail::FastErrorResult rv;
   27159           0 :   DOMString result;
   27160           0 :   self->GetMaskOrigin(result, rv);
   27161           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27162           0 :     return false;
   27163             :   }
   27164           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27165           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27166           0 :     return false;
   27167             :   }
   27168           0 :   return true;
   27169             : }
   27170             : 
   27171             : static bool
   27172           0 : set_mask_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27173             : {
   27174           0 :   binding_detail::FakeString arg0;
   27175           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27176           0 :     return false;
   27177             :   }
   27178           0 :   binding_detail::FastErrorResult rv;
   27179           0 :   self->SetMaskOrigin(NonNullHelper(Constify(arg0)), rv);
   27180           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27181           0 :     return false;
   27182             :   }
   27183           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27184             : 
   27185           0 :   return true;
   27186             : }
   27187             : 
   27188             : static const JSJitInfo mask_origin_getterinfo = {
   27189             :   { (JSJitGetterOp)get_mask_origin },
   27190             :   { prototypes::id::CSS2Properties },
   27191             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27192             :   JSJitInfo::Getter,
   27193             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27194             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27195             :   false,  /* isInfallible. False in setters. */
   27196             :   false,  /* isMovable.  Not relevant for setters. */
   27197             :   false, /* isEliminatable.  Not relevant for setters. */
   27198             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27199             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27200             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27201             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27202             : };
   27203             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27204             : static_assert(0 < 1, "There is no slot for us");
   27205             : static const JSJitInfo mask_origin_setterinfo = {
   27206             :   { (JSJitGetterOp)set_mask_origin },
   27207             :   { prototypes::id::CSS2Properties },
   27208             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27209             :   JSJitInfo::Setter,
   27210             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27211             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27212             :   false,  /* isInfallible. False in setters. */
   27213             :   false,  /* isMovable.  Not relevant for setters. */
   27214             :   false, /* isEliminatable.  Not relevant for setters. */
   27215             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27216             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27217             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27218             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27219             : };
   27220             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27221             : static_assert(0 < 1, "There is no slot for us");
   27222             : 
   27223             : static bool
   27224           0 : get_maskPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27225             : {
   27226           0 :   binding_detail::FastErrorResult rv;
   27227           0 :   DOMString result;
   27228           0 :   self->GetMaskPosition(result, rv);
   27229           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27230           0 :     return false;
   27231             :   }
   27232           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27233           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27234           0 :     return false;
   27235             :   }
   27236           0 :   return true;
   27237             : }
   27238             : 
   27239             : static bool
   27240           0 : set_maskPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27241             : {
   27242           0 :   binding_detail::FakeString arg0;
   27243           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27244           0 :     return false;
   27245             :   }
   27246           0 :   binding_detail::FastErrorResult rv;
   27247           0 :   self->SetMaskPosition(NonNullHelper(Constify(arg0)), rv);
   27248           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27249           0 :     return false;
   27250             :   }
   27251           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27252             : 
   27253           0 :   return true;
   27254             : }
   27255             : 
   27256             : static const JSJitInfo maskPosition_getterinfo = {
   27257             :   { (JSJitGetterOp)get_maskPosition },
   27258             :   { prototypes::id::CSS2Properties },
   27259             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27260             :   JSJitInfo::Getter,
   27261             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27262             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27263             :   false,  /* isInfallible. False in setters. */
   27264             :   false,  /* isMovable.  Not relevant for setters. */
   27265             :   false, /* isEliminatable.  Not relevant for setters. */
   27266             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27267             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27268             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27269             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27270             : };
   27271             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27272             : static_assert(0 < 1, "There is no slot for us");
   27273             : static const JSJitInfo maskPosition_setterinfo = {
   27274             :   { (JSJitGetterOp)set_maskPosition },
   27275             :   { prototypes::id::CSS2Properties },
   27276             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27277             :   JSJitInfo::Setter,
   27278             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27279             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27280             :   false,  /* isInfallible. False in setters. */
   27281             :   false,  /* isMovable.  Not relevant for setters. */
   27282             :   false, /* isEliminatable.  Not relevant for setters. */
   27283             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27284             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27285             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27286             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27287             : };
   27288             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27289             : static_assert(0 < 1, "There is no slot for us");
   27290             : 
   27291             : static bool
   27292           0 : get_mask_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27293             : {
   27294           0 :   binding_detail::FastErrorResult rv;
   27295           0 :   DOMString result;
   27296           0 :   self->GetMaskPosition(result, rv);
   27297           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27298           0 :     return false;
   27299             :   }
   27300           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27301           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27302           0 :     return false;
   27303             :   }
   27304           0 :   return true;
   27305             : }
   27306             : 
   27307             : static bool
   27308           0 : set_mask_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27309             : {
   27310           0 :   binding_detail::FakeString arg0;
   27311           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27312           0 :     return false;
   27313             :   }
   27314           0 :   binding_detail::FastErrorResult rv;
   27315           0 :   self->SetMaskPosition(NonNullHelper(Constify(arg0)), rv);
   27316           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27317           0 :     return false;
   27318             :   }
   27319           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27320             : 
   27321           0 :   return true;
   27322             : }
   27323             : 
   27324             : static const JSJitInfo mask_position_getterinfo = {
   27325             :   { (JSJitGetterOp)get_mask_position },
   27326             :   { prototypes::id::CSS2Properties },
   27327             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27328             :   JSJitInfo::Getter,
   27329             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27330             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27331             :   false,  /* isInfallible. False in setters. */
   27332             :   false,  /* isMovable.  Not relevant for setters. */
   27333             :   false, /* isEliminatable.  Not relevant for setters. */
   27334             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27335             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27336             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27337             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27338             : };
   27339             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27340             : static_assert(0 < 1, "There is no slot for us");
   27341             : static const JSJitInfo mask_position_setterinfo = {
   27342             :   { (JSJitGetterOp)set_mask_position },
   27343             :   { prototypes::id::CSS2Properties },
   27344             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27345             :   JSJitInfo::Setter,
   27346             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27347             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27348             :   false,  /* isInfallible. False in setters. */
   27349             :   false,  /* isMovable.  Not relevant for setters. */
   27350             :   false, /* isEliminatable.  Not relevant for setters. */
   27351             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27352             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27353             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27354             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27355             : };
   27356             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27357             : static_assert(0 < 1, "There is no slot for us");
   27358             : 
   27359             : static bool
   27360           0 : get_maskPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27361             : {
   27362           0 :   binding_detail::FastErrorResult rv;
   27363           0 :   DOMString result;
   27364           0 :   self->GetMaskPositionX(result, rv);
   27365           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27366           0 :     return false;
   27367             :   }
   27368           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27369           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27370           0 :     return false;
   27371             :   }
   27372           0 :   return true;
   27373             : }
   27374             : 
   27375             : static bool
   27376           0 : set_maskPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27377             : {
   27378           0 :   binding_detail::FakeString arg0;
   27379           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27380           0 :     return false;
   27381             :   }
   27382           0 :   binding_detail::FastErrorResult rv;
   27383           0 :   self->SetMaskPositionX(NonNullHelper(Constify(arg0)), rv);
   27384           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27385           0 :     return false;
   27386             :   }
   27387           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27388             : 
   27389           0 :   return true;
   27390             : }
   27391             : 
   27392             : static const JSJitInfo maskPositionX_getterinfo = {
   27393             :   { (JSJitGetterOp)get_maskPositionX },
   27394             :   { prototypes::id::CSS2Properties },
   27395             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27396             :   JSJitInfo::Getter,
   27397             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27398             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27399             :   false,  /* isInfallible. False in setters. */
   27400             :   false,  /* isMovable.  Not relevant for setters. */
   27401             :   false, /* isEliminatable.  Not relevant for setters. */
   27402             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27403             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27404             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27405             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27406             : };
   27407             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27408             : static_assert(0 < 1, "There is no slot for us");
   27409             : static const JSJitInfo maskPositionX_setterinfo = {
   27410             :   { (JSJitGetterOp)set_maskPositionX },
   27411             :   { prototypes::id::CSS2Properties },
   27412             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27413             :   JSJitInfo::Setter,
   27414             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27415             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27416             :   false,  /* isInfallible. False in setters. */
   27417             :   false,  /* isMovable.  Not relevant for setters. */
   27418             :   false, /* isEliminatable.  Not relevant for setters. */
   27419             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27420             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27421             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27422             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27423             : };
   27424             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27425             : static_assert(0 < 1, "There is no slot for us");
   27426             : 
   27427             : static bool
   27428           0 : get_mask_position_x(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27429             : {
   27430           0 :   binding_detail::FastErrorResult rv;
   27431           0 :   DOMString result;
   27432           0 :   self->GetMaskPositionX(result, rv);
   27433           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27434           0 :     return false;
   27435             :   }
   27436           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27437           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27438           0 :     return false;
   27439             :   }
   27440           0 :   return true;
   27441             : }
   27442             : 
   27443             : static bool
   27444           0 : set_mask_position_x(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27445             : {
   27446           0 :   binding_detail::FakeString arg0;
   27447           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27448           0 :     return false;
   27449             :   }
   27450           0 :   binding_detail::FastErrorResult rv;
   27451           0 :   self->SetMaskPositionX(NonNullHelper(Constify(arg0)), rv);
   27452           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27453           0 :     return false;
   27454             :   }
   27455           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27456             : 
   27457           0 :   return true;
   27458             : }
   27459             : 
   27460             : static const JSJitInfo mask_position_x_getterinfo = {
   27461             :   { (JSJitGetterOp)get_mask_position_x },
   27462             :   { prototypes::id::CSS2Properties },
   27463             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27464             :   JSJitInfo::Getter,
   27465             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27466             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27467             :   false,  /* isInfallible. False in setters. */
   27468             :   false,  /* isMovable.  Not relevant for setters. */
   27469             :   false, /* isEliminatable.  Not relevant for setters. */
   27470             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27471             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27472             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27473             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27474             : };
   27475             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27476             : static_assert(0 < 1, "There is no slot for us");
   27477             : static const JSJitInfo mask_position_x_setterinfo = {
   27478             :   { (JSJitGetterOp)set_mask_position_x },
   27479             :   { prototypes::id::CSS2Properties },
   27480             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27481             :   JSJitInfo::Setter,
   27482             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27483             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27484             :   false,  /* isInfallible. False in setters. */
   27485             :   false,  /* isMovable.  Not relevant for setters. */
   27486             :   false, /* isEliminatable.  Not relevant for setters. */
   27487             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27488             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27489             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27490             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27491             : };
   27492             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27493             : static_assert(0 < 1, "There is no slot for us");
   27494             : 
   27495             : static bool
   27496           0 : get_maskPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27497             : {
   27498           0 :   binding_detail::FastErrorResult rv;
   27499           0 :   DOMString result;
   27500           0 :   self->GetMaskPositionY(result, rv);
   27501           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27502           0 :     return false;
   27503             :   }
   27504           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27505           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27506           0 :     return false;
   27507             :   }
   27508           0 :   return true;
   27509             : }
   27510             : 
   27511             : static bool
   27512           0 : set_maskPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27513             : {
   27514           0 :   binding_detail::FakeString arg0;
   27515           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27516           0 :     return false;
   27517             :   }
   27518           0 :   binding_detail::FastErrorResult rv;
   27519           0 :   self->SetMaskPositionY(NonNullHelper(Constify(arg0)), rv);
   27520           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27521           0 :     return false;
   27522             :   }
   27523           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27524             : 
   27525           0 :   return true;
   27526             : }
   27527             : 
   27528             : static const JSJitInfo maskPositionY_getterinfo = {
   27529             :   { (JSJitGetterOp)get_maskPositionY },
   27530             :   { prototypes::id::CSS2Properties },
   27531             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27532             :   JSJitInfo::Getter,
   27533             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27534             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27535             :   false,  /* isInfallible. False in setters. */
   27536             :   false,  /* isMovable.  Not relevant for setters. */
   27537             :   false, /* isEliminatable.  Not relevant for setters. */
   27538             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27539             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27540             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27541             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27542             : };
   27543             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27544             : static_assert(0 < 1, "There is no slot for us");
   27545             : static const JSJitInfo maskPositionY_setterinfo = {
   27546             :   { (JSJitGetterOp)set_maskPositionY },
   27547             :   { prototypes::id::CSS2Properties },
   27548             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27549             :   JSJitInfo::Setter,
   27550             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27551             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27552             :   false,  /* isInfallible. False in setters. */
   27553             :   false,  /* isMovable.  Not relevant for setters. */
   27554             :   false, /* isEliminatable.  Not relevant for setters. */
   27555             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27556             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27557             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27558             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27559             : };
   27560             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27561             : static_assert(0 < 1, "There is no slot for us");
   27562             : 
   27563             : static bool
   27564           0 : get_mask_position_y(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27565             : {
   27566           0 :   binding_detail::FastErrorResult rv;
   27567           0 :   DOMString result;
   27568           0 :   self->GetMaskPositionY(result, rv);
   27569           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27570           0 :     return false;
   27571             :   }
   27572           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27573           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27574           0 :     return false;
   27575             :   }
   27576           0 :   return true;
   27577             : }
   27578             : 
   27579             : static bool
   27580           0 : set_mask_position_y(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27581             : {
   27582           0 :   binding_detail::FakeString arg0;
   27583           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27584           0 :     return false;
   27585             :   }
   27586           0 :   binding_detail::FastErrorResult rv;
   27587           0 :   self->SetMaskPositionY(NonNullHelper(Constify(arg0)), rv);
   27588           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27589           0 :     return false;
   27590             :   }
   27591           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27592             : 
   27593           0 :   return true;
   27594             : }
   27595             : 
   27596             : static const JSJitInfo mask_position_y_getterinfo = {
   27597             :   { (JSJitGetterOp)get_mask_position_y },
   27598             :   { prototypes::id::CSS2Properties },
   27599             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27600             :   JSJitInfo::Getter,
   27601             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27602             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27603             :   false,  /* isInfallible. False in setters. */
   27604             :   false,  /* isMovable.  Not relevant for setters. */
   27605             :   false, /* isEliminatable.  Not relevant for setters. */
   27606             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27607             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27608             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27609             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27610             : };
   27611             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27612             : static_assert(0 < 1, "There is no slot for us");
   27613             : static const JSJitInfo mask_position_y_setterinfo = {
   27614             :   { (JSJitGetterOp)set_mask_position_y },
   27615             :   { prototypes::id::CSS2Properties },
   27616             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27617             :   JSJitInfo::Setter,
   27618             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27619             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27620             :   false,  /* isInfallible. False in setters. */
   27621             :   false,  /* isMovable.  Not relevant for setters. */
   27622             :   false, /* isEliminatable.  Not relevant for setters. */
   27623             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27624             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27625             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27626             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27627             : };
   27628             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27629             : static_assert(0 < 1, "There is no slot for us");
   27630             : 
   27631             : static bool
   27632           0 : get_maskRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27633             : {
   27634           0 :   binding_detail::FastErrorResult rv;
   27635           0 :   DOMString result;
   27636           0 :   self->GetMaskRepeat(result, rv);
   27637           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27638           0 :     return false;
   27639             :   }
   27640           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27641           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27642           0 :     return false;
   27643             :   }
   27644           0 :   return true;
   27645             : }
   27646             : 
   27647             : static bool
   27648           0 : set_maskRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27649             : {
   27650           0 :   binding_detail::FakeString arg0;
   27651           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27652           0 :     return false;
   27653             :   }
   27654           0 :   binding_detail::FastErrorResult rv;
   27655           0 :   self->SetMaskRepeat(NonNullHelper(Constify(arg0)), rv);
   27656           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27657           0 :     return false;
   27658             :   }
   27659           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27660             : 
   27661           0 :   return true;
   27662             : }
   27663             : 
   27664             : static const JSJitInfo maskRepeat_getterinfo = {
   27665             :   { (JSJitGetterOp)get_maskRepeat },
   27666             :   { prototypes::id::CSS2Properties },
   27667             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27668             :   JSJitInfo::Getter,
   27669             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27670             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27671             :   false,  /* isInfallible. False in setters. */
   27672             :   false,  /* isMovable.  Not relevant for setters. */
   27673             :   false, /* isEliminatable.  Not relevant for setters. */
   27674             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27675             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27676             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27677             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27678             : };
   27679             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27680             : static_assert(0 < 1, "There is no slot for us");
   27681             : static const JSJitInfo maskRepeat_setterinfo = {
   27682             :   { (JSJitGetterOp)set_maskRepeat },
   27683             :   { prototypes::id::CSS2Properties },
   27684             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27685             :   JSJitInfo::Setter,
   27686             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27687             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27688             :   false,  /* isInfallible. False in setters. */
   27689             :   false,  /* isMovable.  Not relevant for setters. */
   27690             :   false, /* isEliminatable.  Not relevant for setters. */
   27691             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27692             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27693             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27694             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27695             : };
   27696             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27697             : static_assert(0 < 1, "There is no slot for us");
   27698             : 
   27699             : static bool
   27700           0 : get_mask_repeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27701             : {
   27702           0 :   binding_detail::FastErrorResult rv;
   27703           0 :   DOMString result;
   27704           0 :   self->GetMaskRepeat(result, rv);
   27705           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27706           0 :     return false;
   27707             :   }
   27708           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27709           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27710           0 :     return false;
   27711             :   }
   27712           0 :   return true;
   27713             : }
   27714             : 
   27715             : static bool
   27716           0 : set_mask_repeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27717             : {
   27718           0 :   binding_detail::FakeString arg0;
   27719           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27720           0 :     return false;
   27721             :   }
   27722           0 :   binding_detail::FastErrorResult rv;
   27723           0 :   self->SetMaskRepeat(NonNullHelper(Constify(arg0)), rv);
   27724           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27725           0 :     return false;
   27726             :   }
   27727           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27728             : 
   27729           0 :   return true;
   27730             : }
   27731             : 
   27732             : static const JSJitInfo mask_repeat_getterinfo = {
   27733             :   { (JSJitGetterOp)get_mask_repeat },
   27734             :   { prototypes::id::CSS2Properties },
   27735             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27736             :   JSJitInfo::Getter,
   27737             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27738             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27739             :   false,  /* isInfallible. False in setters. */
   27740             :   false,  /* isMovable.  Not relevant for setters. */
   27741             :   false, /* isEliminatable.  Not relevant for setters. */
   27742             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27743             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27744             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27745             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27746             : };
   27747             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27748             : static_assert(0 < 1, "There is no slot for us");
   27749             : static const JSJitInfo mask_repeat_setterinfo = {
   27750             :   { (JSJitGetterOp)set_mask_repeat },
   27751             :   { prototypes::id::CSS2Properties },
   27752             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27753             :   JSJitInfo::Setter,
   27754             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27755             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27756             :   false,  /* isInfallible. False in setters. */
   27757             :   false,  /* isMovable.  Not relevant for setters. */
   27758             :   false, /* isEliminatable.  Not relevant for setters. */
   27759             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27760             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27761             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27762             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27763             : };
   27764             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27765             : static_assert(0 < 1, "There is no slot for us");
   27766             : 
   27767             : static bool
   27768           0 : get_maskSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27769             : {
   27770           0 :   binding_detail::FastErrorResult rv;
   27771           0 :   DOMString result;
   27772           0 :   self->GetMaskSize(result, rv);
   27773           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27774           0 :     return false;
   27775             :   }
   27776           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27777           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27778           0 :     return false;
   27779             :   }
   27780           0 :   return true;
   27781             : }
   27782             : 
   27783             : static bool
   27784           0 : set_maskSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27785             : {
   27786           0 :   binding_detail::FakeString arg0;
   27787           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27788           0 :     return false;
   27789             :   }
   27790           0 :   binding_detail::FastErrorResult rv;
   27791           0 :   self->SetMaskSize(NonNullHelper(Constify(arg0)), rv);
   27792           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27793           0 :     return false;
   27794             :   }
   27795           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27796             : 
   27797           0 :   return true;
   27798             : }
   27799             : 
   27800             : static const JSJitInfo maskSize_getterinfo = {
   27801             :   { (JSJitGetterOp)get_maskSize },
   27802             :   { prototypes::id::CSS2Properties },
   27803             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27804             :   JSJitInfo::Getter,
   27805             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27806             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27807             :   false,  /* isInfallible. False in setters. */
   27808             :   false,  /* isMovable.  Not relevant for setters. */
   27809             :   false, /* isEliminatable.  Not relevant for setters. */
   27810             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27811             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27812             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27813             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27814             : };
   27815             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27816             : static_assert(0 < 1, "There is no slot for us");
   27817             : static const JSJitInfo maskSize_setterinfo = {
   27818             :   { (JSJitGetterOp)set_maskSize },
   27819             :   { prototypes::id::CSS2Properties },
   27820             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27821             :   JSJitInfo::Setter,
   27822             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27823             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27824             :   false,  /* isInfallible. False in setters. */
   27825             :   false,  /* isMovable.  Not relevant for setters. */
   27826             :   false, /* isEliminatable.  Not relevant for setters. */
   27827             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27828             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27829             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27830             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27831             : };
   27832             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27833             : static_assert(0 < 1, "There is no slot for us");
   27834             : 
   27835             : static bool
   27836           0 : get_mask_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27837             : {
   27838           0 :   binding_detail::FastErrorResult rv;
   27839           0 :   DOMString result;
   27840           0 :   self->GetMaskSize(result, rv);
   27841           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27842           0 :     return false;
   27843             :   }
   27844           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27845           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27846           0 :     return false;
   27847             :   }
   27848           0 :   return true;
   27849             : }
   27850             : 
   27851             : static bool
   27852           0 : set_mask_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27853             : {
   27854           0 :   binding_detail::FakeString arg0;
   27855           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27856           0 :     return false;
   27857             :   }
   27858           0 :   binding_detail::FastErrorResult rv;
   27859           0 :   self->SetMaskSize(NonNullHelper(Constify(arg0)), rv);
   27860           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27861           0 :     return false;
   27862             :   }
   27863           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27864             : 
   27865           0 :   return true;
   27866             : }
   27867             : 
   27868             : static const JSJitInfo mask_size_getterinfo = {
   27869             :   { (JSJitGetterOp)get_mask_size },
   27870             :   { prototypes::id::CSS2Properties },
   27871             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27872             :   JSJitInfo::Getter,
   27873             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27874             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27875             :   false,  /* isInfallible. False in setters. */
   27876             :   false,  /* isMovable.  Not relevant for setters. */
   27877             :   false, /* isEliminatable.  Not relevant for setters. */
   27878             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27879             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27880             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27881             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27882             : };
   27883             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27884             : static_assert(0 < 1, "There is no slot for us");
   27885             : static const JSJitInfo mask_size_setterinfo = {
   27886             :   { (JSJitGetterOp)set_mask_size },
   27887             :   { prototypes::id::CSS2Properties },
   27888             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27889             :   JSJitInfo::Setter,
   27890             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27891             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27892             :   false,  /* isInfallible. False in setters. */
   27893             :   false,  /* isMovable.  Not relevant for setters. */
   27894             :   false, /* isEliminatable.  Not relevant for setters. */
   27895             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27896             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27897             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27898             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27899             : };
   27900             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27901             : static_assert(0 < 1, "There is no slot for us");
   27902             : 
   27903             : static bool
   27904           0 : get_maskType(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27905             : {
   27906           0 :   binding_detail::FastErrorResult rv;
   27907           0 :   DOMString result;
   27908           0 :   self->GetMaskType(result, rv);
   27909           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27910           0 :     return false;
   27911             :   }
   27912           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27913           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27914           0 :     return false;
   27915             :   }
   27916           0 :   return true;
   27917             : }
   27918             : 
   27919             : static bool
   27920           0 : set_maskType(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27921             : {
   27922           0 :   binding_detail::FakeString arg0;
   27923           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27924           0 :     return false;
   27925             :   }
   27926           0 :   binding_detail::FastErrorResult rv;
   27927           0 :   self->SetMaskType(NonNullHelper(Constify(arg0)), rv);
   27928           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27929           0 :     return false;
   27930             :   }
   27931           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27932             : 
   27933           0 :   return true;
   27934             : }
   27935             : 
   27936             : static const JSJitInfo maskType_getterinfo = {
   27937             :   { (JSJitGetterOp)get_maskType },
   27938             :   { prototypes::id::CSS2Properties },
   27939             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27940             :   JSJitInfo::Getter,
   27941             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27942             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   27943             :   false,  /* isInfallible. False in setters. */
   27944             :   false,  /* isMovable.  Not relevant for setters. */
   27945             :   false, /* isEliminatable.  Not relevant for setters. */
   27946             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27947             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27948             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27949             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27950             : };
   27951             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27952             : static_assert(0 < 1, "There is no slot for us");
   27953             : static const JSJitInfo maskType_setterinfo = {
   27954             :   { (JSJitGetterOp)set_maskType },
   27955             :   { prototypes::id::CSS2Properties },
   27956             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   27957             :   JSJitInfo::Setter,
   27958             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   27959             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   27960             :   false,  /* isInfallible. False in setters. */
   27961             :   false,  /* isMovable.  Not relevant for setters. */
   27962             :   false, /* isEliminatable.  Not relevant for setters. */
   27963             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   27964             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   27965             :   false,  /* isTypedMethod.  Only relevant for methods. */
   27966             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   27967             : };
   27968             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   27969             : static_assert(0 < 1, "There is no slot for us");
   27970             : 
   27971             : static bool
   27972           0 : get_mask_type(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   27973             : {
   27974           0 :   binding_detail::FastErrorResult rv;
   27975           0 :   DOMString result;
   27976           0 :   self->GetMaskType(result, rv);
   27977           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27978           0 :     return false;
   27979             :   }
   27980           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   27981           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   27982           0 :     return false;
   27983             :   }
   27984           0 :   return true;
   27985             : }
   27986             : 
   27987             : static bool
   27988           0 : set_mask_type(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   27989             : {
   27990           0 :   binding_detail::FakeString arg0;
   27991           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   27992           0 :     return false;
   27993             :   }
   27994           0 :   binding_detail::FastErrorResult rv;
   27995           0 :   self->SetMaskType(NonNullHelper(Constify(arg0)), rv);
   27996           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   27997           0 :     return false;
   27998             :   }
   27999           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28000             : 
   28001           0 :   return true;
   28002             : }
   28003             : 
   28004             : static const JSJitInfo mask_type_getterinfo = {
   28005             :   { (JSJitGetterOp)get_mask_type },
   28006             :   { prototypes::id::CSS2Properties },
   28007             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28008             :   JSJitInfo::Getter,
   28009             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28010             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28011             :   false,  /* isInfallible. False in setters. */
   28012             :   false,  /* isMovable.  Not relevant for setters. */
   28013             :   false, /* isEliminatable.  Not relevant for setters. */
   28014             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28015             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28016             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28017             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28018             : };
   28019             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28020             : static_assert(0 < 1, "There is no slot for us");
   28021             : static const JSJitInfo mask_type_setterinfo = {
   28022             :   { (JSJitGetterOp)set_mask_type },
   28023             :   { prototypes::id::CSS2Properties },
   28024             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28025             :   JSJitInfo::Setter,
   28026             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28027             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28028             :   false,  /* isInfallible. False in setters. */
   28029             :   false,  /* isMovable.  Not relevant for setters. */
   28030             :   false, /* isEliminatable.  Not relevant for setters. */
   28031             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28032             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28033             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28034             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28035             : };
   28036             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28037             : static_assert(0 < 1, "There is no slot for us");
   28038             : 
   28039             : static bool
   28040           0 : get_maxBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28041             : {
   28042           0 :   binding_detail::FastErrorResult rv;
   28043           0 :   DOMString result;
   28044           0 :   self->GetMaxBlockSize(result, rv);
   28045           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28046           0 :     return false;
   28047             :   }
   28048           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28049           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28050           0 :     return false;
   28051             :   }
   28052           0 :   return true;
   28053             : }
   28054             : 
   28055             : static bool
   28056           0 : set_maxBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28057             : {
   28058           0 :   binding_detail::FakeString arg0;
   28059           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28060           0 :     return false;
   28061             :   }
   28062           0 :   binding_detail::FastErrorResult rv;
   28063           0 :   self->SetMaxBlockSize(NonNullHelper(Constify(arg0)), rv);
   28064           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28065           0 :     return false;
   28066             :   }
   28067           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28068             : 
   28069           0 :   return true;
   28070             : }
   28071             : 
   28072             : static const JSJitInfo maxBlockSize_getterinfo = {
   28073             :   { (JSJitGetterOp)get_maxBlockSize },
   28074             :   { prototypes::id::CSS2Properties },
   28075             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28076             :   JSJitInfo::Getter,
   28077             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28078             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28079             :   false,  /* isInfallible. False in setters. */
   28080             :   false,  /* isMovable.  Not relevant for setters. */
   28081             :   false, /* isEliminatable.  Not relevant for setters. */
   28082             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28083             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28084             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28085             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28086             : };
   28087             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28088             : static_assert(0 < 1, "There is no slot for us");
   28089             : static const JSJitInfo maxBlockSize_setterinfo = {
   28090             :   { (JSJitGetterOp)set_maxBlockSize },
   28091             :   { prototypes::id::CSS2Properties },
   28092             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28093             :   JSJitInfo::Setter,
   28094             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28095             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28096             :   false,  /* isInfallible. False in setters. */
   28097             :   false,  /* isMovable.  Not relevant for setters. */
   28098             :   false, /* isEliminatable.  Not relevant for setters. */
   28099             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28100             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28101             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28102             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28103             : };
   28104             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28105             : static_assert(0 < 1, "There is no slot for us");
   28106             : 
   28107             : static bool
   28108           0 : get_max_block_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28109             : {
   28110           0 :   binding_detail::FastErrorResult rv;
   28111           0 :   DOMString result;
   28112           0 :   self->GetMaxBlockSize(result, rv);
   28113           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28114           0 :     return false;
   28115             :   }
   28116           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28117           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28118           0 :     return false;
   28119             :   }
   28120           0 :   return true;
   28121             : }
   28122             : 
   28123             : static bool
   28124           0 : set_max_block_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28125             : {
   28126           0 :   binding_detail::FakeString arg0;
   28127           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28128           0 :     return false;
   28129             :   }
   28130           0 :   binding_detail::FastErrorResult rv;
   28131           0 :   self->SetMaxBlockSize(NonNullHelper(Constify(arg0)), rv);
   28132           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28133           0 :     return false;
   28134             :   }
   28135           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28136             : 
   28137           0 :   return true;
   28138             : }
   28139             : 
   28140             : static const JSJitInfo max_block_size_getterinfo = {
   28141             :   { (JSJitGetterOp)get_max_block_size },
   28142             :   { prototypes::id::CSS2Properties },
   28143             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28144             :   JSJitInfo::Getter,
   28145             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28146             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28147             :   false,  /* isInfallible. False in setters. */
   28148             :   false,  /* isMovable.  Not relevant for setters. */
   28149             :   false, /* isEliminatable.  Not relevant for setters. */
   28150             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28151             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28152             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28153             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28154             : };
   28155             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28156             : static_assert(0 < 1, "There is no slot for us");
   28157             : static const JSJitInfo max_block_size_setterinfo = {
   28158             :   { (JSJitGetterOp)set_max_block_size },
   28159             :   { prototypes::id::CSS2Properties },
   28160             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28161             :   JSJitInfo::Setter,
   28162             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28163             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28164             :   false,  /* isInfallible. False in setters. */
   28165             :   false,  /* isMovable.  Not relevant for setters. */
   28166             :   false, /* isEliminatable.  Not relevant for setters. */
   28167             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28168             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28169             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28170             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28171             : };
   28172             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28173             : static_assert(0 < 1, "There is no slot for us");
   28174             : 
   28175             : static bool
   28176           0 : get_maxHeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28177             : {
   28178           0 :   binding_detail::FastErrorResult rv;
   28179           0 :   DOMString result;
   28180           0 :   self->GetMaxHeight(result, rv);
   28181           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28182           0 :     return false;
   28183             :   }
   28184           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28185           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28186           0 :     return false;
   28187             :   }
   28188           0 :   return true;
   28189             : }
   28190             : 
   28191             : static bool
   28192           0 : set_maxHeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28193             : {
   28194           0 :   binding_detail::FakeString arg0;
   28195           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28196           0 :     return false;
   28197             :   }
   28198           0 :   binding_detail::FastErrorResult rv;
   28199           0 :   self->SetMaxHeight(NonNullHelper(Constify(arg0)), rv);
   28200           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28201           0 :     return false;
   28202             :   }
   28203           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28204             : 
   28205           0 :   return true;
   28206             : }
   28207             : 
   28208             : static const JSJitInfo maxHeight_getterinfo = {
   28209             :   { (JSJitGetterOp)get_maxHeight },
   28210             :   { prototypes::id::CSS2Properties },
   28211             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28212             :   JSJitInfo::Getter,
   28213             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28214             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28215             :   false,  /* isInfallible. False in setters. */
   28216             :   false,  /* isMovable.  Not relevant for setters. */
   28217             :   false, /* isEliminatable.  Not relevant for setters. */
   28218             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28219             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28220             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28221             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28222             : };
   28223             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28224             : static_assert(0 < 1, "There is no slot for us");
   28225             : static const JSJitInfo maxHeight_setterinfo = {
   28226             :   { (JSJitGetterOp)set_maxHeight },
   28227             :   { prototypes::id::CSS2Properties },
   28228             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28229             :   JSJitInfo::Setter,
   28230             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28231             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28232             :   false,  /* isInfallible. False in setters. */
   28233             :   false,  /* isMovable.  Not relevant for setters. */
   28234             :   false, /* isEliminatable.  Not relevant for setters. */
   28235             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28236             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28237             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28238             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28239             : };
   28240             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28241             : static_assert(0 < 1, "There is no slot for us");
   28242             : 
   28243             : static bool
   28244           0 : get_max_height(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28245             : {
   28246           0 :   binding_detail::FastErrorResult rv;
   28247           0 :   DOMString result;
   28248           0 :   self->GetMaxHeight(result, rv);
   28249           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28250           0 :     return false;
   28251             :   }
   28252           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28253           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28254           0 :     return false;
   28255             :   }
   28256           0 :   return true;
   28257             : }
   28258             : 
   28259             : static bool
   28260           0 : set_max_height(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28261             : {
   28262           0 :   binding_detail::FakeString arg0;
   28263           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28264           0 :     return false;
   28265             :   }
   28266           0 :   binding_detail::FastErrorResult rv;
   28267           0 :   self->SetMaxHeight(NonNullHelper(Constify(arg0)), rv);
   28268           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28269           0 :     return false;
   28270             :   }
   28271           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28272             : 
   28273           0 :   return true;
   28274             : }
   28275             : 
   28276             : static const JSJitInfo max_height_getterinfo = {
   28277             :   { (JSJitGetterOp)get_max_height },
   28278             :   { prototypes::id::CSS2Properties },
   28279             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28280             :   JSJitInfo::Getter,
   28281             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28282             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28283             :   false,  /* isInfallible. False in setters. */
   28284             :   false,  /* isMovable.  Not relevant for setters. */
   28285             :   false, /* isEliminatable.  Not relevant for setters. */
   28286             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28287             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28288             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28289             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28290             : };
   28291             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28292             : static_assert(0 < 1, "There is no slot for us");
   28293             : static const JSJitInfo max_height_setterinfo = {
   28294             :   { (JSJitGetterOp)set_max_height },
   28295             :   { prototypes::id::CSS2Properties },
   28296             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28297             :   JSJitInfo::Setter,
   28298             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28299             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28300             :   false,  /* isInfallible. False in setters. */
   28301             :   false,  /* isMovable.  Not relevant for setters. */
   28302             :   false, /* isEliminatable.  Not relevant for setters. */
   28303             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28304             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28305             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28306             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28307             : };
   28308             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28309             : static_assert(0 < 1, "There is no slot for us");
   28310             : 
   28311             : static bool
   28312           0 : get_maxInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28313             : {
   28314           0 :   binding_detail::FastErrorResult rv;
   28315           0 :   DOMString result;
   28316           0 :   self->GetMaxInlineSize(result, rv);
   28317           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28318           0 :     return false;
   28319             :   }
   28320           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28321           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28322           0 :     return false;
   28323             :   }
   28324           0 :   return true;
   28325             : }
   28326             : 
   28327             : static bool
   28328           0 : set_maxInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28329             : {
   28330           0 :   binding_detail::FakeString arg0;
   28331           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28332           0 :     return false;
   28333             :   }
   28334           0 :   binding_detail::FastErrorResult rv;
   28335           0 :   self->SetMaxInlineSize(NonNullHelper(Constify(arg0)), rv);
   28336           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28337           0 :     return false;
   28338             :   }
   28339           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28340             : 
   28341           0 :   return true;
   28342             : }
   28343             : 
   28344             : static const JSJitInfo maxInlineSize_getterinfo = {
   28345             :   { (JSJitGetterOp)get_maxInlineSize },
   28346             :   { prototypes::id::CSS2Properties },
   28347             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28348             :   JSJitInfo::Getter,
   28349             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28350             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28351             :   false,  /* isInfallible. False in setters. */
   28352             :   false,  /* isMovable.  Not relevant for setters. */
   28353             :   false, /* isEliminatable.  Not relevant for setters. */
   28354             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28355             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28356             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28357             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28358             : };
   28359             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28360             : static_assert(0 < 1, "There is no slot for us");
   28361             : static const JSJitInfo maxInlineSize_setterinfo = {
   28362             :   { (JSJitGetterOp)set_maxInlineSize },
   28363             :   { prototypes::id::CSS2Properties },
   28364             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28365             :   JSJitInfo::Setter,
   28366             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28367             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28368             :   false,  /* isInfallible. False in setters. */
   28369             :   false,  /* isMovable.  Not relevant for setters. */
   28370             :   false, /* isEliminatable.  Not relevant for setters. */
   28371             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28372             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28373             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28374             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28375             : };
   28376             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28377             : static_assert(0 < 1, "There is no slot for us");
   28378             : 
   28379             : static bool
   28380           0 : get_max_inline_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28381             : {
   28382           0 :   binding_detail::FastErrorResult rv;
   28383           0 :   DOMString result;
   28384           0 :   self->GetMaxInlineSize(result, rv);
   28385           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28386           0 :     return false;
   28387             :   }
   28388           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28389           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28390           0 :     return false;
   28391             :   }
   28392           0 :   return true;
   28393             : }
   28394             : 
   28395             : static bool
   28396           0 : set_max_inline_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28397             : {
   28398           0 :   binding_detail::FakeString arg0;
   28399           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28400           0 :     return false;
   28401             :   }
   28402           0 :   binding_detail::FastErrorResult rv;
   28403           0 :   self->SetMaxInlineSize(NonNullHelper(Constify(arg0)), rv);
   28404           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28405           0 :     return false;
   28406             :   }
   28407           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28408             : 
   28409           0 :   return true;
   28410             : }
   28411             : 
   28412             : static const JSJitInfo max_inline_size_getterinfo = {
   28413             :   { (JSJitGetterOp)get_max_inline_size },
   28414             :   { prototypes::id::CSS2Properties },
   28415             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28416             :   JSJitInfo::Getter,
   28417             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28418             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28419             :   false,  /* isInfallible. False in setters. */
   28420             :   false,  /* isMovable.  Not relevant for setters. */
   28421             :   false, /* isEliminatable.  Not relevant for setters. */
   28422             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28423             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28424             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28425             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28426             : };
   28427             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28428             : static_assert(0 < 1, "There is no slot for us");
   28429             : static const JSJitInfo max_inline_size_setterinfo = {
   28430             :   { (JSJitGetterOp)set_max_inline_size },
   28431             :   { prototypes::id::CSS2Properties },
   28432             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28433             :   JSJitInfo::Setter,
   28434             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28435             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28436             :   false,  /* isInfallible. False in setters. */
   28437             :   false,  /* isMovable.  Not relevant for setters. */
   28438             :   false, /* isEliminatable.  Not relevant for setters. */
   28439             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28440             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28441             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28442             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28443             : };
   28444             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28445             : static_assert(0 < 1, "There is no slot for us");
   28446             : 
   28447             : static bool
   28448           0 : get_maxWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28449             : {
   28450           0 :   binding_detail::FastErrorResult rv;
   28451           0 :   DOMString result;
   28452           0 :   self->GetMaxWidth(result, rv);
   28453           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28454           0 :     return false;
   28455             :   }
   28456           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28457           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28458           0 :     return false;
   28459             :   }
   28460           0 :   return true;
   28461             : }
   28462             : 
   28463             : static bool
   28464           0 : set_maxWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28465             : {
   28466           0 :   binding_detail::FakeString arg0;
   28467           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28468           0 :     return false;
   28469             :   }
   28470           0 :   binding_detail::FastErrorResult rv;
   28471           0 :   self->SetMaxWidth(NonNullHelper(Constify(arg0)), rv);
   28472           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28473           0 :     return false;
   28474             :   }
   28475           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28476             : 
   28477           0 :   return true;
   28478             : }
   28479             : 
   28480             : static const JSJitInfo maxWidth_getterinfo = {
   28481             :   { (JSJitGetterOp)get_maxWidth },
   28482             :   { prototypes::id::CSS2Properties },
   28483             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28484             :   JSJitInfo::Getter,
   28485             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28486             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28487             :   false,  /* isInfallible. False in setters. */
   28488             :   false,  /* isMovable.  Not relevant for setters. */
   28489             :   false, /* isEliminatable.  Not relevant for setters. */
   28490             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28491             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28492             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28493             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28494             : };
   28495             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28496             : static_assert(0 < 1, "There is no slot for us");
   28497             : static const JSJitInfo maxWidth_setterinfo = {
   28498             :   { (JSJitGetterOp)set_maxWidth },
   28499             :   { prototypes::id::CSS2Properties },
   28500             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28501             :   JSJitInfo::Setter,
   28502             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28503             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28504             :   false,  /* isInfallible. False in setters. */
   28505             :   false,  /* isMovable.  Not relevant for setters. */
   28506             :   false, /* isEliminatable.  Not relevant for setters. */
   28507             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28508             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28509             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28510             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28511             : };
   28512             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28513             : static_assert(0 < 1, "There is no slot for us");
   28514             : 
   28515             : static bool
   28516           0 : get_max_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28517             : {
   28518           0 :   binding_detail::FastErrorResult rv;
   28519           0 :   DOMString result;
   28520           0 :   self->GetMaxWidth(result, rv);
   28521           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28522           0 :     return false;
   28523             :   }
   28524           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28525           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28526           0 :     return false;
   28527             :   }
   28528           0 :   return true;
   28529             : }
   28530             : 
   28531             : static bool
   28532           0 : set_max_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28533             : {
   28534           0 :   binding_detail::FakeString arg0;
   28535           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28536           0 :     return false;
   28537             :   }
   28538           0 :   binding_detail::FastErrorResult rv;
   28539           0 :   self->SetMaxWidth(NonNullHelper(Constify(arg0)), rv);
   28540           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28541           0 :     return false;
   28542             :   }
   28543           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28544             : 
   28545           0 :   return true;
   28546             : }
   28547             : 
   28548             : static const JSJitInfo max_width_getterinfo = {
   28549             :   { (JSJitGetterOp)get_max_width },
   28550             :   { prototypes::id::CSS2Properties },
   28551             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28552             :   JSJitInfo::Getter,
   28553             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28554             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28555             :   false,  /* isInfallible. False in setters. */
   28556             :   false,  /* isMovable.  Not relevant for setters. */
   28557             :   false, /* isEliminatable.  Not relevant for setters. */
   28558             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28559             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28560             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28561             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28562             : };
   28563             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28564             : static_assert(0 < 1, "There is no slot for us");
   28565             : static const JSJitInfo max_width_setterinfo = {
   28566             :   { (JSJitGetterOp)set_max_width },
   28567             :   { prototypes::id::CSS2Properties },
   28568             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28569             :   JSJitInfo::Setter,
   28570             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28571             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28572             :   false,  /* isInfallible. False in setters. */
   28573             :   false,  /* isMovable.  Not relevant for setters. */
   28574             :   false, /* isEliminatable.  Not relevant for setters. */
   28575             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28576             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28577             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28578             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28579             : };
   28580             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28581             : static_assert(0 < 1, "There is no slot for us");
   28582             : 
   28583             : static bool
   28584           0 : get_minBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28585             : {
   28586           0 :   binding_detail::FastErrorResult rv;
   28587           0 :   DOMString result;
   28588           0 :   self->GetMinBlockSize(result, rv);
   28589           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28590           0 :     return false;
   28591             :   }
   28592           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28593           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28594           0 :     return false;
   28595             :   }
   28596           0 :   return true;
   28597             : }
   28598             : 
   28599             : static bool
   28600           0 : set_minBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28601             : {
   28602           0 :   binding_detail::FakeString arg0;
   28603           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28604           0 :     return false;
   28605             :   }
   28606           0 :   binding_detail::FastErrorResult rv;
   28607           0 :   self->SetMinBlockSize(NonNullHelper(Constify(arg0)), rv);
   28608           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28609           0 :     return false;
   28610             :   }
   28611           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28612             : 
   28613           0 :   return true;
   28614             : }
   28615             : 
   28616             : static const JSJitInfo minBlockSize_getterinfo = {
   28617             :   { (JSJitGetterOp)get_minBlockSize },
   28618             :   { prototypes::id::CSS2Properties },
   28619             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28620             :   JSJitInfo::Getter,
   28621             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28622             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28623             :   false,  /* isInfallible. False in setters. */
   28624             :   false,  /* isMovable.  Not relevant for setters. */
   28625             :   false, /* isEliminatable.  Not relevant for setters. */
   28626             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28627             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28628             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28629             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28630             : };
   28631             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28632             : static_assert(0 < 1, "There is no slot for us");
   28633             : static const JSJitInfo minBlockSize_setterinfo = {
   28634             :   { (JSJitGetterOp)set_minBlockSize },
   28635             :   { prototypes::id::CSS2Properties },
   28636             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28637             :   JSJitInfo::Setter,
   28638             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28639             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28640             :   false,  /* isInfallible. False in setters. */
   28641             :   false,  /* isMovable.  Not relevant for setters. */
   28642             :   false, /* isEliminatable.  Not relevant for setters. */
   28643             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28644             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28645             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28646             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28647             : };
   28648             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28649             : static_assert(0 < 1, "There is no slot for us");
   28650             : 
   28651             : static bool
   28652           0 : get_min_block_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28653             : {
   28654           0 :   binding_detail::FastErrorResult rv;
   28655           0 :   DOMString result;
   28656           0 :   self->GetMinBlockSize(result, rv);
   28657           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28658           0 :     return false;
   28659             :   }
   28660           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28661           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28662           0 :     return false;
   28663             :   }
   28664           0 :   return true;
   28665             : }
   28666             : 
   28667             : static bool
   28668           0 : set_min_block_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28669             : {
   28670           0 :   binding_detail::FakeString arg0;
   28671           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28672           0 :     return false;
   28673             :   }
   28674           0 :   binding_detail::FastErrorResult rv;
   28675           0 :   self->SetMinBlockSize(NonNullHelper(Constify(arg0)), rv);
   28676           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28677           0 :     return false;
   28678             :   }
   28679           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28680             : 
   28681           0 :   return true;
   28682             : }
   28683             : 
   28684             : static const JSJitInfo min_block_size_getterinfo = {
   28685             :   { (JSJitGetterOp)get_min_block_size },
   28686             :   { prototypes::id::CSS2Properties },
   28687             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28688             :   JSJitInfo::Getter,
   28689             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28690             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28691             :   false,  /* isInfallible. False in setters. */
   28692             :   false,  /* isMovable.  Not relevant for setters. */
   28693             :   false, /* isEliminatable.  Not relevant for setters. */
   28694             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28695             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28696             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28697             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28698             : };
   28699             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28700             : static_assert(0 < 1, "There is no slot for us");
   28701             : static const JSJitInfo min_block_size_setterinfo = {
   28702             :   { (JSJitGetterOp)set_min_block_size },
   28703             :   { prototypes::id::CSS2Properties },
   28704             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28705             :   JSJitInfo::Setter,
   28706             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28707             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28708             :   false,  /* isInfallible. False in setters. */
   28709             :   false,  /* isMovable.  Not relevant for setters. */
   28710             :   false, /* isEliminatable.  Not relevant for setters. */
   28711             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28712             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28713             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28714             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28715             : };
   28716             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28717             : static_assert(0 < 1, "There is no slot for us");
   28718             : 
   28719             : static bool
   28720           0 : get_minHeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28721             : {
   28722           0 :   binding_detail::FastErrorResult rv;
   28723           0 :   DOMString result;
   28724           0 :   self->GetMinHeight(result, rv);
   28725           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28726           0 :     return false;
   28727             :   }
   28728           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28729           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28730           0 :     return false;
   28731             :   }
   28732           0 :   return true;
   28733             : }
   28734             : 
   28735             : static bool
   28736           0 : set_minHeight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28737             : {
   28738           0 :   binding_detail::FakeString arg0;
   28739           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28740           0 :     return false;
   28741             :   }
   28742           0 :   binding_detail::FastErrorResult rv;
   28743           0 :   self->SetMinHeight(NonNullHelper(Constify(arg0)), rv);
   28744           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28745           0 :     return false;
   28746             :   }
   28747           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28748             : 
   28749           0 :   return true;
   28750             : }
   28751             : 
   28752             : static const JSJitInfo minHeight_getterinfo = {
   28753             :   { (JSJitGetterOp)get_minHeight },
   28754             :   { prototypes::id::CSS2Properties },
   28755             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28756             :   JSJitInfo::Getter,
   28757             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28758             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28759             :   false,  /* isInfallible. False in setters. */
   28760             :   false,  /* isMovable.  Not relevant for setters. */
   28761             :   false, /* isEliminatable.  Not relevant for setters. */
   28762             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28763             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28764             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28765             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28766             : };
   28767             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28768             : static_assert(0 < 1, "There is no slot for us");
   28769             : static const JSJitInfo minHeight_setterinfo = {
   28770             :   { (JSJitGetterOp)set_minHeight },
   28771             :   { prototypes::id::CSS2Properties },
   28772             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28773             :   JSJitInfo::Setter,
   28774             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28775             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28776             :   false,  /* isInfallible. False in setters. */
   28777             :   false,  /* isMovable.  Not relevant for setters. */
   28778             :   false, /* isEliminatable.  Not relevant for setters. */
   28779             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28780             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28781             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28782             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28783             : };
   28784             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28785             : static_assert(0 < 1, "There is no slot for us");
   28786             : 
   28787             : static bool
   28788           0 : get_min_height(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28789             : {
   28790           0 :   binding_detail::FastErrorResult rv;
   28791           0 :   DOMString result;
   28792           0 :   self->GetMinHeight(result, rv);
   28793           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28794           0 :     return false;
   28795             :   }
   28796           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28797           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28798           0 :     return false;
   28799             :   }
   28800           0 :   return true;
   28801             : }
   28802             : 
   28803             : static bool
   28804           0 : set_min_height(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28805             : {
   28806           0 :   binding_detail::FakeString arg0;
   28807           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28808           0 :     return false;
   28809             :   }
   28810           0 :   binding_detail::FastErrorResult rv;
   28811           0 :   self->SetMinHeight(NonNullHelper(Constify(arg0)), rv);
   28812           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28813           0 :     return false;
   28814             :   }
   28815           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28816             : 
   28817           0 :   return true;
   28818             : }
   28819             : 
   28820             : static const JSJitInfo min_height_getterinfo = {
   28821             :   { (JSJitGetterOp)get_min_height },
   28822             :   { prototypes::id::CSS2Properties },
   28823             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28824             :   JSJitInfo::Getter,
   28825             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28826             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28827             :   false,  /* isInfallible. False in setters. */
   28828             :   false,  /* isMovable.  Not relevant for setters. */
   28829             :   false, /* isEliminatable.  Not relevant for setters. */
   28830             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28831             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28832             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28833             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28834             : };
   28835             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28836             : static_assert(0 < 1, "There is no slot for us");
   28837             : static const JSJitInfo min_height_setterinfo = {
   28838             :   { (JSJitGetterOp)set_min_height },
   28839             :   { prototypes::id::CSS2Properties },
   28840             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28841             :   JSJitInfo::Setter,
   28842             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28843             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28844             :   false,  /* isInfallible. False in setters. */
   28845             :   false,  /* isMovable.  Not relevant for setters. */
   28846             :   false, /* isEliminatable.  Not relevant for setters. */
   28847             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28848             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28849             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28850             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28851             : };
   28852             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28853             : static_assert(0 < 1, "There is no slot for us");
   28854             : 
   28855             : static bool
   28856           0 : get_minInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28857             : {
   28858           0 :   binding_detail::FastErrorResult rv;
   28859           0 :   DOMString result;
   28860           0 :   self->GetMinInlineSize(result, rv);
   28861           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28862           0 :     return false;
   28863             :   }
   28864           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28865           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28866           0 :     return false;
   28867             :   }
   28868           0 :   return true;
   28869             : }
   28870             : 
   28871             : static bool
   28872           0 : set_minInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28873             : {
   28874           0 :   binding_detail::FakeString arg0;
   28875           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28876           0 :     return false;
   28877             :   }
   28878           0 :   binding_detail::FastErrorResult rv;
   28879           0 :   self->SetMinInlineSize(NonNullHelper(Constify(arg0)), rv);
   28880           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28881           0 :     return false;
   28882             :   }
   28883           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28884             : 
   28885           0 :   return true;
   28886             : }
   28887             : 
   28888             : static const JSJitInfo minInlineSize_getterinfo = {
   28889             :   { (JSJitGetterOp)get_minInlineSize },
   28890             :   { prototypes::id::CSS2Properties },
   28891             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28892             :   JSJitInfo::Getter,
   28893             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28894             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28895             :   false,  /* isInfallible. False in setters. */
   28896             :   false,  /* isMovable.  Not relevant for setters. */
   28897             :   false, /* isEliminatable.  Not relevant for setters. */
   28898             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28899             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28900             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28901             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28902             : };
   28903             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28904             : static_assert(0 < 1, "There is no slot for us");
   28905             : static const JSJitInfo minInlineSize_setterinfo = {
   28906             :   { (JSJitGetterOp)set_minInlineSize },
   28907             :   { prototypes::id::CSS2Properties },
   28908             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28909             :   JSJitInfo::Setter,
   28910             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28911             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28912             :   false,  /* isInfallible. False in setters. */
   28913             :   false,  /* isMovable.  Not relevant for setters. */
   28914             :   false, /* isEliminatable.  Not relevant for setters. */
   28915             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28916             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28917             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28918             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28919             : };
   28920             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28921             : static_assert(0 < 1, "There is no slot for us");
   28922             : 
   28923             : static bool
   28924           0 : get_min_inline_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28925             : {
   28926           0 :   binding_detail::FastErrorResult rv;
   28927           0 :   DOMString result;
   28928           0 :   self->GetMinInlineSize(result, rv);
   28929           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28930           0 :     return false;
   28931             :   }
   28932           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28933           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   28934           0 :     return false;
   28935             :   }
   28936           0 :   return true;
   28937             : }
   28938             : 
   28939             : static bool
   28940           0 : set_min_inline_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   28941             : {
   28942           0 :   binding_detail::FakeString arg0;
   28943           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   28944           0 :     return false;
   28945             :   }
   28946           0 :   binding_detail::FastErrorResult rv;
   28947           0 :   self->SetMinInlineSize(NonNullHelper(Constify(arg0)), rv);
   28948           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28949           0 :     return false;
   28950             :   }
   28951           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   28952             : 
   28953           0 :   return true;
   28954             : }
   28955             : 
   28956             : static const JSJitInfo min_inline_size_getterinfo = {
   28957             :   { (JSJitGetterOp)get_min_inline_size },
   28958             :   { prototypes::id::CSS2Properties },
   28959             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28960             :   JSJitInfo::Getter,
   28961             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28962             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   28963             :   false,  /* isInfallible. False in setters. */
   28964             :   false,  /* isMovable.  Not relevant for setters. */
   28965             :   false, /* isEliminatable.  Not relevant for setters. */
   28966             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28967             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28968             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28969             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28970             : };
   28971             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28972             : static_assert(0 < 1, "There is no slot for us");
   28973             : static const JSJitInfo min_inline_size_setterinfo = {
   28974             :   { (JSJitGetterOp)set_min_inline_size },
   28975             :   { prototypes::id::CSS2Properties },
   28976             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   28977             :   JSJitInfo::Setter,
   28978             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   28979             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   28980             :   false,  /* isInfallible. False in setters. */
   28981             :   false,  /* isMovable.  Not relevant for setters. */
   28982             :   false, /* isEliminatable.  Not relevant for setters. */
   28983             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   28984             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   28985             :   false,  /* isTypedMethod.  Only relevant for methods. */
   28986             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   28987             : };
   28988             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   28989             : static_assert(0 < 1, "There is no slot for us");
   28990             : 
   28991             : static bool
   28992           0 : get_minWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   28993             : {
   28994           0 :   binding_detail::FastErrorResult rv;
   28995           0 :   DOMString result;
   28996           0 :   self->GetMinWidth(result, rv);
   28997           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   28998           0 :     return false;
   28999             :   }
   29000           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29001           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29002           0 :     return false;
   29003             :   }
   29004           0 :   return true;
   29005             : }
   29006             : 
   29007             : static bool
   29008           4 : set_minWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29009             : {
   29010           8 :   binding_detail::FakeString arg0;
   29011           4 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29012           0 :     return false;
   29013             :   }
   29014           8 :   binding_detail::FastErrorResult rv;
   29015           4 :   self->SetMinWidth(NonNullHelper(Constify(arg0)), rv);
   29016           4 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29017           0 :     return false;
   29018             :   }
   29019           4 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29020             : 
   29021           4 :   return true;
   29022             : }
   29023             : 
   29024             : static const JSJitInfo minWidth_getterinfo = {
   29025             :   { (JSJitGetterOp)get_minWidth },
   29026             :   { prototypes::id::CSS2Properties },
   29027             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29028             :   JSJitInfo::Getter,
   29029             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29030             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29031             :   false,  /* isInfallible. False in setters. */
   29032             :   false,  /* isMovable.  Not relevant for setters. */
   29033             :   false, /* isEliminatable.  Not relevant for setters. */
   29034             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29035             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29036             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29037             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29038             : };
   29039             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29040             : static_assert(0 < 1, "There is no slot for us");
   29041             : static const JSJitInfo minWidth_setterinfo = {
   29042             :   { (JSJitGetterOp)set_minWidth },
   29043             :   { prototypes::id::CSS2Properties },
   29044             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29045             :   JSJitInfo::Setter,
   29046             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29047             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29048             :   false,  /* isInfallible. False in setters. */
   29049             :   false,  /* isMovable.  Not relevant for setters. */
   29050             :   false, /* isEliminatable.  Not relevant for setters. */
   29051             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29052             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29053             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29054             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29055             : };
   29056             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29057             : static_assert(0 < 1, "There is no slot for us");
   29058             : 
   29059             : static bool
   29060           0 : get_min_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29061             : {
   29062           0 :   binding_detail::FastErrorResult rv;
   29063           0 :   DOMString result;
   29064           0 :   self->GetMinWidth(result, rv);
   29065           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29066           0 :     return false;
   29067             :   }
   29068           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29069           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29070           0 :     return false;
   29071             :   }
   29072           0 :   return true;
   29073             : }
   29074             : 
   29075             : static bool
   29076           0 : set_min_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29077             : {
   29078           0 :   binding_detail::FakeString arg0;
   29079           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29080           0 :     return false;
   29081             :   }
   29082           0 :   binding_detail::FastErrorResult rv;
   29083           0 :   self->SetMinWidth(NonNullHelper(Constify(arg0)), rv);
   29084           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29085           0 :     return false;
   29086             :   }
   29087           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29088             : 
   29089           0 :   return true;
   29090             : }
   29091             : 
   29092             : static const JSJitInfo min_width_getterinfo = {
   29093             :   { (JSJitGetterOp)get_min_width },
   29094             :   { prototypes::id::CSS2Properties },
   29095             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29096             :   JSJitInfo::Getter,
   29097             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29098             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29099             :   false,  /* isInfallible. False in setters. */
   29100             :   false,  /* isMovable.  Not relevant for setters. */
   29101             :   false, /* isEliminatable.  Not relevant for setters. */
   29102             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29103             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29104             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29105             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29106             : };
   29107             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29108             : static_assert(0 < 1, "There is no slot for us");
   29109             : static const JSJitInfo min_width_setterinfo = {
   29110             :   { (JSJitGetterOp)set_min_width },
   29111             :   { prototypes::id::CSS2Properties },
   29112             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29113             :   JSJitInfo::Setter,
   29114             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29115             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29116             :   false,  /* isInfallible. False in setters. */
   29117             :   false,  /* isMovable.  Not relevant for setters. */
   29118             :   false, /* isEliminatable.  Not relevant for setters. */
   29119             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29120             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29121             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29122             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29123             : };
   29124             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29125             : static_assert(0 < 1, "There is no slot for us");
   29126             : 
   29127             : static bool
   29128           0 : get_mixBlendMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29129             : {
   29130           0 :   binding_detail::FastErrorResult rv;
   29131           0 :   DOMString result;
   29132           0 :   self->GetMixBlendMode(result, rv);
   29133           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29134           0 :     return false;
   29135             :   }
   29136           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29137           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29138           0 :     return false;
   29139             :   }
   29140           0 :   return true;
   29141             : }
   29142             : 
   29143             : static bool
   29144           0 : set_mixBlendMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29145             : {
   29146           0 :   binding_detail::FakeString arg0;
   29147           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29148           0 :     return false;
   29149             :   }
   29150           0 :   binding_detail::FastErrorResult rv;
   29151           0 :   self->SetMixBlendMode(NonNullHelper(Constify(arg0)), rv);
   29152           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29153           0 :     return false;
   29154             :   }
   29155           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29156             : 
   29157           0 :   return true;
   29158             : }
   29159             : 
   29160             : static const JSJitInfo mixBlendMode_getterinfo = {
   29161             :   { (JSJitGetterOp)get_mixBlendMode },
   29162             :   { prototypes::id::CSS2Properties },
   29163             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29164             :   JSJitInfo::Getter,
   29165             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29166             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29167             :   false,  /* isInfallible. False in setters. */
   29168             :   false,  /* isMovable.  Not relevant for setters. */
   29169             :   false, /* isEliminatable.  Not relevant for setters. */
   29170             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29171             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29172             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29173             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29174             : };
   29175             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29176             : static_assert(0 < 1, "There is no slot for us");
   29177             : static const JSJitInfo mixBlendMode_setterinfo = {
   29178             :   { (JSJitGetterOp)set_mixBlendMode },
   29179             :   { prototypes::id::CSS2Properties },
   29180             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29181             :   JSJitInfo::Setter,
   29182             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29183             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29184             :   false,  /* isInfallible. False in setters. */
   29185             :   false,  /* isMovable.  Not relevant for setters. */
   29186             :   false, /* isEliminatable.  Not relevant for setters. */
   29187             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29188             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29189             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29190             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29191             : };
   29192             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29193             : static_assert(0 < 1, "There is no slot for us");
   29194             : 
   29195             : static bool
   29196           0 : get_mix_blend_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29197             : {
   29198           0 :   binding_detail::FastErrorResult rv;
   29199           0 :   DOMString result;
   29200           0 :   self->GetMixBlendMode(result, rv);
   29201           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29202           0 :     return false;
   29203             :   }
   29204           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29205           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29206           0 :     return false;
   29207             :   }
   29208           0 :   return true;
   29209             : }
   29210             : 
   29211             : static bool
   29212           0 : set_mix_blend_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29213             : {
   29214           0 :   binding_detail::FakeString arg0;
   29215           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29216           0 :     return false;
   29217             :   }
   29218           0 :   binding_detail::FastErrorResult rv;
   29219           0 :   self->SetMixBlendMode(NonNullHelper(Constify(arg0)), rv);
   29220           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29221           0 :     return false;
   29222             :   }
   29223           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29224             : 
   29225           0 :   return true;
   29226             : }
   29227             : 
   29228             : static const JSJitInfo mix_blend_mode_getterinfo = {
   29229             :   { (JSJitGetterOp)get_mix_blend_mode },
   29230             :   { prototypes::id::CSS2Properties },
   29231             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29232             :   JSJitInfo::Getter,
   29233             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29234             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29235             :   false,  /* isInfallible. False in setters. */
   29236             :   false,  /* isMovable.  Not relevant for setters. */
   29237             :   false, /* isEliminatable.  Not relevant for setters. */
   29238             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29239             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29240             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29241             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29242             : };
   29243             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29244             : static_assert(0 < 1, "There is no slot for us");
   29245             : static const JSJitInfo mix_blend_mode_setterinfo = {
   29246             :   { (JSJitGetterOp)set_mix_blend_mode },
   29247             :   { prototypes::id::CSS2Properties },
   29248             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29249             :   JSJitInfo::Setter,
   29250             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29251             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29252             :   false,  /* isInfallible. False in setters. */
   29253             :   false,  /* isMovable.  Not relevant for setters. */
   29254             :   false, /* isEliminatable.  Not relevant for setters. */
   29255             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29256             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29257             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29258             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29259             : };
   29260             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29261             : static_assert(0 < 1, "There is no slot for us");
   29262             : 
   29263             : static bool
   29264           0 : get_objectFit(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29265             : {
   29266           0 :   binding_detail::FastErrorResult rv;
   29267           0 :   DOMString result;
   29268           0 :   self->GetObjectFit(result, rv);
   29269           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29270           0 :     return false;
   29271             :   }
   29272           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29273           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29274           0 :     return false;
   29275             :   }
   29276           0 :   return true;
   29277             : }
   29278             : 
   29279             : static bool
   29280           0 : set_objectFit(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29281             : {
   29282           0 :   binding_detail::FakeString arg0;
   29283           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29284           0 :     return false;
   29285             :   }
   29286           0 :   binding_detail::FastErrorResult rv;
   29287           0 :   self->SetObjectFit(NonNullHelper(Constify(arg0)), rv);
   29288           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29289           0 :     return false;
   29290             :   }
   29291           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29292             : 
   29293           0 :   return true;
   29294             : }
   29295             : 
   29296             : static const JSJitInfo objectFit_getterinfo = {
   29297             :   { (JSJitGetterOp)get_objectFit },
   29298             :   { prototypes::id::CSS2Properties },
   29299             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29300             :   JSJitInfo::Getter,
   29301             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29302             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29303             :   false,  /* isInfallible. False in setters. */
   29304             :   false,  /* isMovable.  Not relevant for setters. */
   29305             :   false, /* isEliminatable.  Not relevant for setters. */
   29306             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29307             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29308             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29309             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29310             : };
   29311             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29312             : static_assert(0 < 1, "There is no slot for us");
   29313             : static const JSJitInfo objectFit_setterinfo = {
   29314             :   { (JSJitGetterOp)set_objectFit },
   29315             :   { prototypes::id::CSS2Properties },
   29316             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29317             :   JSJitInfo::Setter,
   29318             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29319             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29320             :   false,  /* isInfallible. False in setters. */
   29321             :   false,  /* isMovable.  Not relevant for setters. */
   29322             :   false, /* isEliminatable.  Not relevant for setters. */
   29323             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29324             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29325             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29326             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29327             : };
   29328             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29329             : static_assert(0 < 1, "There is no slot for us");
   29330             : 
   29331             : static bool
   29332           0 : get_object_fit(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29333             : {
   29334           0 :   binding_detail::FastErrorResult rv;
   29335           0 :   DOMString result;
   29336           0 :   self->GetObjectFit(result, rv);
   29337           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29338           0 :     return false;
   29339             :   }
   29340           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29341           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29342           0 :     return false;
   29343             :   }
   29344           0 :   return true;
   29345             : }
   29346             : 
   29347             : static bool
   29348           0 : set_object_fit(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29349             : {
   29350           0 :   binding_detail::FakeString arg0;
   29351           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29352           0 :     return false;
   29353             :   }
   29354           0 :   binding_detail::FastErrorResult rv;
   29355           0 :   self->SetObjectFit(NonNullHelper(Constify(arg0)), rv);
   29356           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29357           0 :     return false;
   29358             :   }
   29359           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29360             : 
   29361           0 :   return true;
   29362             : }
   29363             : 
   29364             : static const JSJitInfo object_fit_getterinfo = {
   29365             :   { (JSJitGetterOp)get_object_fit },
   29366             :   { prototypes::id::CSS2Properties },
   29367             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29368             :   JSJitInfo::Getter,
   29369             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29370             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29371             :   false,  /* isInfallible. False in setters. */
   29372             :   false,  /* isMovable.  Not relevant for setters. */
   29373             :   false, /* isEliminatable.  Not relevant for setters. */
   29374             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29375             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29376             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29377             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29378             : };
   29379             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29380             : static_assert(0 < 1, "There is no slot for us");
   29381             : static const JSJitInfo object_fit_setterinfo = {
   29382             :   { (JSJitGetterOp)set_object_fit },
   29383             :   { prototypes::id::CSS2Properties },
   29384             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29385             :   JSJitInfo::Setter,
   29386             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29387             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29388             :   false,  /* isInfallible. False in setters. */
   29389             :   false,  /* isMovable.  Not relevant for setters. */
   29390             :   false, /* isEliminatable.  Not relevant for setters. */
   29391             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29392             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29393             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29394             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29395             : };
   29396             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29397             : static_assert(0 < 1, "There is no slot for us");
   29398             : 
   29399             : static bool
   29400           0 : get_objectPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29401             : {
   29402           0 :   binding_detail::FastErrorResult rv;
   29403           0 :   DOMString result;
   29404           0 :   self->GetObjectPosition(result, rv);
   29405           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29406           0 :     return false;
   29407             :   }
   29408           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29409           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29410           0 :     return false;
   29411             :   }
   29412           0 :   return true;
   29413             : }
   29414             : 
   29415             : static bool
   29416           0 : set_objectPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29417             : {
   29418           0 :   binding_detail::FakeString arg0;
   29419           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29420           0 :     return false;
   29421             :   }
   29422           0 :   binding_detail::FastErrorResult rv;
   29423           0 :   self->SetObjectPosition(NonNullHelper(Constify(arg0)), rv);
   29424           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29425           0 :     return false;
   29426             :   }
   29427           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29428             : 
   29429           0 :   return true;
   29430             : }
   29431             : 
   29432             : static const JSJitInfo objectPosition_getterinfo = {
   29433             :   { (JSJitGetterOp)get_objectPosition },
   29434             :   { prototypes::id::CSS2Properties },
   29435             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29436             :   JSJitInfo::Getter,
   29437             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29438             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29439             :   false,  /* isInfallible. False in setters. */
   29440             :   false,  /* isMovable.  Not relevant for setters. */
   29441             :   false, /* isEliminatable.  Not relevant for setters. */
   29442             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29443             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29444             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29445             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29446             : };
   29447             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29448             : static_assert(0 < 1, "There is no slot for us");
   29449             : static const JSJitInfo objectPosition_setterinfo = {
   29450             :   { (JSJitGetterOp)set_objectPosition },
   29451             :   { prototypes::id::CSS2Properties },
   29452             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29453             :   JSJitInfo::Setter,
   29454             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29455             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29456             :   false,  /* isInfallible. False in setters. */
   29457             :   false,  /* isMovable.  Not relevant for setters. */
   29458             :   false, /* isEliminatable.  Not relevant for setters. */
   29459             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29460             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29461             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29462             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29463             : };
   29464             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29465             : static_assert(0 < 1, "There is no slot for us");
   29466             : 
   29467             : static bool
   29468           0 : get_object_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29469             : {
   29470           0 :   binding_detail::FastErrorResult rv;
   29471           0 :   DOMString result;
   29472           0 :   self->GetObjectPosition(result, rv);
   29473           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29474           0 :     return false;
   29475             :   }
   29476           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29477           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29478           0 :     return false;
   29479             :   }
   29480           0 :   return true;
   29481             : }
   29482             : 
   29483             : static bool
   29484           0 : set_object_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29485             : {
   29486           0 :   binding_detail::FakeString arg0;
   29487           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29488           0 :     return false;
   29489             :   }
   29490           0 :   binding_detail::FastErrorResult rv;
   29491           0 :   self->SetObjectPosition(NonNullHelper(Constify(arg0)), rv);
   29492           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29493           0 :     return false;
   29494             :   }
   29495           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29496             : 
   29497           0 :   return true;
   29498             : }
   29499             : 
   29500             : static const JSJitInfo object_position_getterinfo = {
   29501             :   { (JSJitGetterOp)get_object_position },
   29502             :   { prototypes::id::CSS2Properties },
   29503             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29504             :   JSJitInfo::Getter,
   29505             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29506             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29507             :   false,  /* isInfallible. False in setters. */
   29508             :   false,  /* isMovable.  Not relevant for setters. */
   29509             :   false, /* isEliminatable.  Not relevant for setters. */
   29510             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29511             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29512             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29513             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29514             : };
   29515             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29516             : static_assert(0 < 1, "There is no slot for us");
   29517             : static const JSJitInfo object_position_setterinfo = {
   29518             :   { (JSJitGetterOp)set_object_position },
   29519             :   { prototypes::id::CSS2Properties },
   29520             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29521             :   JSJitInfo::Setter,
   29522             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29523             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29524             :   false,  /* isInfallible. False in setters. */
   29525             :   false,  /* isMovable.  Not relevant for setters. */
   29526             :   false, /* isEliminatable.  Not relevant for setters. */
   29527             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29528             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29529             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29530             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29531             : };
   29532             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29533             : static_assert(0 < 1, "There is no slot for us");
   29534             : 
   29535             : static bool
   29536           0 : get_offsetBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29537             : {
   29538           0 :   binding_detail::FastErrorResult rv;
   29539           0 :   DOMString result;
   29540           0 :   self->GetOffsetBlockEnd(result, rv);
   29541           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29542           0 :     return false;
   29543             :   }
   29544           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29545           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29546           0 :     return false;
   29547             :   }
   29548           0 :   return true;
   29549             : }
   29550             : 
   29551             : static bool
   29552           0 : set_offsetBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29553             : {
   29554           0 :   binding_detail::FakeString arg0;
   29555           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29556           0 :     return false;
   29557             :   }
   29558           0 :   binding_detail::FastErrorResult rv;
   29559           0 :   self->SetOffsetBlockEnd(NonNullHelper(Constify(arg0)), rv);
   29560           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29561           0 :     return false;
   29562             :   }
   29563           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29564             : 
   29565           0 :   return true;
   29566             : }
   29567             : 
   29568             : static const JSJitInfo offsetBlockEnd_getterinfo = {
   29569             :   { (JSJitGetterOp)get_offsetBlockEnd },
   29570             :   { prototypes::id::CSS2Properties },
   29571             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29572             :   JSJitInfo::Getter,
   29573             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29574             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29575             :   false,  /* isInfallible. False in setters. */
   29576             :   false,  /* isMovable.  Not relevant for setters. */
   29577             :   false, /* isEliminatable.  Not relevant for setters. */
   29578             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29579             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29580             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29581             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29582             : };
   29583             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29584             : static_assert(0 < 1, "There is no slot for us");
   29585             : static const JSJitInfo offsetBlockEnd_setterinfo = {
   29586             :   { (JSJitGetterOp)set_offsetBlockEnd },
   29587             :   { prototypes::id::CSS2Properties },
   29588             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29589             :   JSJitInfo::Setter,
   29590             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29591             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29592             :   false,  /* isInfallible. False in setters. */
   29593             :   false,  /* isMovable.  Not relevant for setters. */
   29594             :   false, /* isEliminatable.  Not relevant for setters. */
   29595             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29596             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29597             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29598             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29599             : };
   29600             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29601             : static_assert(0 < 1, "There is no slot for us");
   29602             : 
   29603             : static bool
   29604           0 : get_offset_block_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29605             : {
   29606           0 :   binding_detail::FastErrorResult rv;
   29607           0 :   DOMString result;
   29608           0 :   self->GetOffsetBlockEnd(result, rv);
   29609           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29610           0 :     return false;
   29611             :   }
   29612           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29613           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29614           0 :     return false;
   29615             :   }
   29616           0 :   return true;
   29617             : }
   29618             : 
   29619             : static bool
   29620           0 : set_offset_block_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29621             : {
   29622           0 :   binding_detail::FakeString arg0;
   29623           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29624           0 :     return false;
   29625             :   }
   29626           0 :   binding_detail::FastErrorResult rv;
   29627           0 :   self->SetOffsetBlockEnd(NonNullHelper(Constify(arg0)), rv);
   29628           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29629           0 :     return false;
   29630             :   }
   29631           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29632             : 
   29633           0 :   return true;
   29634             : }
   29635             : 
   29636             : static const JSJitInfo offset_block_end_getterinfo = {
   29637             :   { (JSJitGetterOp)get_offset_block_end },
   29638             :   { prototypes::id::CSS2Properties },
   29639             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29640             :   JSJitInfo::Getter,
   29641             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29642             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29643             :   false,  /* isInfallible. False in setters. */
   29644             :   false,  /* isMovable.  Not relevant for setters. */
   29645             :   false, /* isEliminatable.  Not relevant for setters. */
   29646             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29647             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29648             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29649             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29650             : };
   29651             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29652             : static_assert(0 < 1, "There is no slot for us");
   29653             : static const JSJitInfo offset_block_end_setterinfo = {
   29654             :   { (JSJitGetterOp)set_offset_block_end },
   29655             :   { prototypes::id::CSS2Properties },
   29656             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29657             :   JSJitInfo::Setter,
   29658             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29659             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29660             :   false,  /* isInfallible. False in setters. */
   29661             :   false,  /* isMovable.  Not relevant for setters. */
   29662             :   false, /* isEliminatable.  Not relevant for setters. */
   29663             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29664             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29665             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29666             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29667             : };
   29668             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29669             : static_assert(0 < 1, "There is no slot for us");
   29670             : 
   29671             : static bool
   29672           0 : get_offsetBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29673             : {
   29674           0 :   binding_detail::FastErrorResult rv;
   29675           0 :   DOMString result;
   29676           0 :   self->GetOffsetBlockStart(result, rv);
   29677           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29678           0 :     return false;
   29679             :   }
   29680           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29681           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29682           0 :     return false;
   29683             :   }
   29684           0 :   return true;
   29685             : }
   29686             : 
   29687             : static bool
   29688           0 : set_offsetBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29689             : {
   29690           0 :   binding_detail::FakeString arg0;
   29691           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29692           0 :     return false;
   29693             :   }
   29694           0 :   binding_detail::FastErrorResult rv;
   29695           0 :   self->SetOffsetBlockStart(NonNullHelper(Constify(arg0)), rv);
   29696           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29697           0 :     return false;
   29698             :   }
   29699           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29700             : 
   29701           0 :   return true;
   29702             : }
   29703             : 
   29704             : static const JSJitInfo offsetBlockStart_getterinfo = {
   29705             :   { (JSJitGetterOp)get_offsetBlockStart },
   29706             :   { prototypes::id::CSS2Properties },
   29707             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29708             :   JSJitInfo::Getter,
   29709             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29710             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29711             :   false,  /* isInfallible. False in setters. */
   29712             :   false,  /* isMovable.  Not relevant for setters. */
   29713             :   false, /* isEliminatable.  Not relevant for setters. */
   29714             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29715             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29716             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29717             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29718             : };
   29719             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29720             : static_assert(0 < 1, "There is no slot for us");
   29721             : static const JSJitInfo offsetBlockStart_setterinfo = {
   29722             :   { (JSJitGetterOp)set_offsetBlockStart },
   29723             :   { prototypes::id::CSS2Properties },
   29724             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29725             :   JSJitInfo::Setter,
   29726             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29727             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29728             :   false,  /* isInfallible. False in setters. */
   29729             :   false,  /* isMovable.  Not relevant for setters. */
   29730             :   false, /* isEliminatable.  Not relevant for setters. */
   29731             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29732             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29733             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29734             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29735             : };
   29736             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29737             : static_assert(0 < 1, "There is no slot for us");
   29738             : 
   29739             : static bool
   29740           0 : get_offset_block_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29741             : {
   29742           0 :   binding_detail::FastErrorResult rv;
   29743           0 :   DOMString result;
   29744           0 :   self->GetOffsetBlockStart(result, rv);
   29745           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29746           0 :     return false;
   29747             :   }
   29748           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29749           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29750           0 :     return false;
   29751             :   }
   29752           0 :   return true;
   29753             : }
   29754             : 
   29755             : static bool
   29756           0 : set_offset_block_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29757             : {
   29758           0 :   binding_detail::FakeString arg0;
   29759           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29760           0 :     return false;
   29761             :   }
   29762           0 :   binding_detail::FastErrorResult rv;
   29763           0 :   self->SetOffsetBlockStart(NonNullHelper(Constify(arg0)), rv);
   29764           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29765           0 :     return false;
   29766             :   }
   29767           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29768             : 
   29769           0 :   return true;
   29770             : }
   29771             : 
   29772             : static const JSJitInfo offset_block_start_getterinfo = {
   29773             :   { (JSJitGetterOp)get_offset_block_start },
   29774             :   { prototypes::id::CSS2Properties },
   29775             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29776             :   JSJitInfo::Getter,
   29777             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29778             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29779             :   false,  /* isInfallible. False in setters. */
   29780             :   false,  /* isMovable.  Not relevant for setters. */
   29781             :   false, /* isEliminatable.  Not relevant for setters. */
   29782             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29783             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29784             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29785             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29786             : };
   29787             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29788             : static_assert(0 < 1, "There is no slot for us");
   29789             : static const JSJitInfo offset_block_start_setterinfo = {
   29790             :   { (JSJitGetterOp)set_offset_block_start },
   29791             :   { prototypes::id::CSS2Properties },
   29792             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29793             :   JSJitInfo::Setter,
   29794             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29795             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29796             :   false,  /* isInfallible. False in setters. */
   29797             :   false,  /* isMovable.  Not relevant for setters. */
   29798             :   false, /* isEliminatable.  Not relevant for setters. */
   29799             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29800             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29801             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29802             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29803             : };
   29804             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29805             : static_assert(0 < 1, "There is no slot for us");
   29806             : 
   29807             : static bool
   29808           0 : get_offsetInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29809             : {
   29810           0 :   binding_detail::FastErrorResult rv;
   29811           0 :   DOMString result;
   29812           0 :   self->GetOffsetInlineEnd(result, rv);
   29813           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29814           0 :     return false;
   29815             :   }
   29816           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29817           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29818           0 :     return false;
   29819             :   }
   29820           0 :   return true;
   29821             : }
   29822             : 
   29823             : static bool
   29824           0 : set_offsetInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29825             : {
   29826           0 :   binding_detail::FakeString arg0;
   29827           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29828           0 :     return false;
   29829             :   }
   29830           0 :   binding_detail::FastErrorResult rv;
   29831           0 :   self->SetOffsetInlineEnd(NonNullHelper(Constify(arg0)), rv);
   29832           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29833           0 :     return false;
   29834             :   }
   29835           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29836             : 
   29837           0 :   return true;
   29838             : }
   29839             : 
   29840             : static const JSJitInfo offsetInlineEnd_getterinfo = {
   29841             :   { (JSJitGetterOp)get_offsetInlineEnd },
   29842             :   { prototypes::id::CSS2Properties },
   29843             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29844             :   JSJitInfo::Getter,
   29845             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29846             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29847             :   false,  /* isInfallible. False in setters. */
   29848             :   false,  /* isMovable.  Not relevant for setters. */
   29849             :   false, /* isEliminatable.  Not relevant for setters. */
   29850             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29851             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29852             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29853             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29854             : };
   29855             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29856             : static_assert(0 < 1, "There is no slot for us");
   29857             : static const JSJitInfo offsetInlineEnd_setterinfo = {
   29858             :   { (JSJitGetterOp)set_offsetInlineEnd },
   29859             :   { prototypes::id::CSS2Properties },
   29860             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29861             :   JSJitInfo::Setter,
   29862             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29863             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29864             :   false,  /* isInfallible. False in setters. */
   29865             :   false,  /* isMovable.  Not relevant for setters. */
   29866             :   false, /* isEliminatable.  Not relevant for setters. */
   29867             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29868             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29869             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29870             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29871             : };
   29872             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29873             : static_assert(0 < 1, "There is no slot for us");
   29874             : 
   29875             : static bool
   29876           0 : get_offset_inline_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29877             : {
   29878           0 :   binding_detail::FastErrorResult rv;
   29879           0 :   DOMString result;
   29880           0 :   self->GetOffsetInlineEnd(result, rv);
   29881           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29882           0 :     return false;
   29883             :   }
   29884           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29885           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29886           0 :     return false;
   29887             :   }
   29888           0 :   return true;
   29889             : }
   29890             : 
   29891             : static bool
   29892           0 : set_offset_inline_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29893             : {
   29894           0 :   binding_detail::FakeString arg0;
   29895           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29896           0 :     return false;
   29897             :   }
   29898           0 :   binding_detail::FastErrorResult rv;
   29899           0 :   self->SetOffsetInlineEnd(NonNullHelper(Constify(arg0)), rv);
   29900           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29901           0 :     return false;
   29902             :   }
   29903           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29904             : 
   29905           0 :   return true;
   29906             : }
   29907             : 
   29908             : static const JSJitInfo offset_inline_end_getterinfo = {
   29909             :   { (JSJitGetterOp)get_offset_inline_end },
   29910             :   { prototypes::id::CSS2Properties },
   29911             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29912             :   JSJitInfo::Getter,
   29913             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29914             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29915             :   false,  /* isInfallible. False in setters. */
   29916             :   false,  /* isMovable.  Not relevant for setters. */
   29917             :   false, /* isEliminatable.  Not relevant for setters. */
   29918             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29919             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29920             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29921             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29922             : };
   29923             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29924             : static_assert(0 < 1, "There is no slot for us");
   29925             : static const JSJitInfo offset_inline_end_setterinfo = {
   29926             :   { (JSJitGetterOp)set_offset_inline_end },
   29927             :   { prototypes::id::CSS2Properties },
   29928             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29929             :   JSJitInfo::Setter,
   29930             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29931             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   29932             :   false,  /* isInfallible. False in setters. */
   29933             :   false,  /* isMovable.  Not relevant for setters. */
   29934             :   false, /* isEliminatable.  Not relevant for setters. */
   29935             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29936             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29937             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29938             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29939             : };
   29940             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29941             : static_assert(0 < 1, "There is no slot for us");
   29942             : 
   29943             : static bool
   29944           0 : get_offsetInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   29945             : {
   29946           0 :   binding_detail::FastErrorResult rv;
   29947           0 :   DOMString result;
   29948           0 :   self->GetOffsetInlineStart(result, rv);
   29949           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29950           0 :     return false;
   29951             :   }
   29952           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29953           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   29954           0 :     return false;
   29955             :   }
   29956           0 :   return true;
   29957             : }
   29958             : 
   29959             : static bool
   29960           0 : set_offsetInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   29961             : {
   29962           0 :   binding_detail::FakeString arg0;
   29963           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   29964           0 :     return false;
   29965             :   }
   29966           0 :   binding_detail::FastErrorResult rv;
   29967           0 :   self->SetOffsetInlineStart(NonNullHelper(Constify(arg0)), rv);
   29968           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   29969           0 :     return false;
   29970             :   }
   29971           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   29972             : 
   29973           0 :   return true;
   29974             : }
   29975             : 
   29976             : static const JSJitInfo offsetInlineStart_getterinfo = {
   29977             :   { (JSJitGetterOp)get_offsetInlineStart },
   29978             :   { prototypes::id::CSS2Properties },
   29979             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29980             :   JSJitInfo::Getter,
   29981             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29982             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   29983             :   false,  /* isInfallible. False in setters. */
   29984             :   false,  /* isMovable.  Not relevant for setters. */
   29985             :   false, /* isEliminatable.  Not relevant for setters. */
   29986             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   29987             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   29988             :   false,  /* isTypedMethod.  Only relevant for methods. */
   29989             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   29990             : };
   29991             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   29992             : static_assert(0 < 1, "There is no slot for us");
   29993             : static const JSJitInfo offsetInlineStart_setterinfo = {
   29994             :   { (JSJitGetterOp)set_offsetInlineStart },
   29995             :   { prototypes::id::CSS2Properties },
   29996             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   29997             :   JSJitInfo::Setter,
   29998             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   29999             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30000             :   false,  /* isInfallible. False in setters. */
   30001             :   false,  /* isMovable.  Not relevant for setters. */
   30002             :   false, /* isEliminatable.  Not relevant for setters. */
   30003             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30004             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30005             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30006             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30007             : };
   30008             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30009             : static_assert(0 < 1, "There is no slot for us");
   30010             : 
   30011             : static bool
   30012           0 : get_offset_inline_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30013             : {
   30014           0 :   binding_detail::FastErrorResult rv;
   30015           0 :   DOMString result;
   30016           0 :   self->GetOffsetInlineStart(result, rv);
   30017           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30018           0 :     return false;
   30019             :   }
   30020           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30021           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30022           0 :     return false;
   30023             :   }
   30024           0 :   return true;
   30025             : }
   30026             : 
   30027             : static bool
   30028           0 : set_offset_inline_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30029             : {
   30030           0 :   binding_detail::FakeString arg0;
   30031           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30032           0 :     return false;
   30033             :   }
   30034           0 :   binding_detail::FastErrorResult rv;
   30035           0 :   self->SetOffsetInlineStart(NonNullHelper(Constify(arg0)), rv);
   30036           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30037           0 :     return false;
   30038             :   }
   30039           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30040             : 
   30041           0 :   return true;
   30042             : }
   30043             : 
   30044             : static const JSJitInfo offset_inline_start_getterinfo = {
   30045             :   { (JSJitGetterOp)get_offset_inline_start },
   30046             :   { prototypes::id::CSS2Properties },
   30047             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30048             :   JSJitInfo::Getter,
   30049             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30050             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30051             :   false,  /* isInfallible. False in setters. */
   30052             :   false,  /* isMovable.  Not relevant for setters. */
   30053             :   false, /* isEliminatable.  Not relevant for setters. */
   30054             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30055             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30056             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30057             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30058             : };
   30059             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30060             : static_assert(0 < 1, "There is no slot for us");
   30061             : static const JSJitInfo offset_inline_start_setterinfo = {
   30062             :   { (JSJitGetterOp)set_offset_inline_start },
   30063             :   { prototypes::id::CSS2Properties },
   30064             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30065             :   JSJitInfo::Setter,
   30066             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30067             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30068             :   false,  /* isInfallible. False in setters. */
   30069             :   false,  /* isMovable.  Not relevant for setters. */
   30070             :   false, /* isEliminatable.  Not relevant for setters. */
   30071             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30072             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30073             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30074             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30075             : };
   30076             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30077             : static_assert(0 < 1, "There is no slot for us");
   30078             : 
   30079             : static bool
   30080           0 : get_opacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30081             : {
   30082           0 :   binding_detail::FastErrorResult rv;
   30083           0 :   DOMString result;
   30084           0 :   self->GetOpacity(result, rv);
   30085           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30086           0 :     return false;
   30087             :   }
   30088           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30089           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30090           0 :     return false;
   30091             :   }
   30092           0 :   return true;
   30093             : }
   30094             : 
   30095             : static bool
   30096           0 : set_opacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30097             : {
   30098           0 :   binding_detail::FakeString arg0;
   30099           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30100           0 :     return false;
   30101             :   }
   30102           0 :   binding_detail::FastErrorResult rv;
   30103           0 :   self->SetOpacity(NonNullHelper(Constify(arg0)), rv);
   30104           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30105           0 :     return false;
   30106             :   }
   30107           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30108             : 
   30109           0 :   return true;
   30110             : }
   30111             : 
   30112             : static const JSJitInfo opacity_getterinfo = {
   30113             :   { (JSJitGetterOp)get_opacity },
   30114             :   { prototypes::id::CSS2Properties },
   30115             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30116             :   JSJitInfo::Getter,
   30117             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30118             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30119             :   false,  /* isInfallible. False in setters. */
   30120             :   false,  /* isMovable.  Not relevant for setters. */
   30121             :   false, /* isEliminatable.  Not relevant for setters. */
   30122             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30123             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30124             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30125             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30126             : };
   30127             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30128             : static_assert(0 < 1, "There is no slot for us");
   30129             : static const JSJitInfo opacity_setterinfo = {
   30130             :   { (JSJitGetterOp)set_opacity },
   30131             :   { prototypes::id::CSS2Properties },
   30132             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30133             :   JSJitInfo::Setter,
   30134             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30135             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30136             :   false,  /* isInfallible. False in setters. */
   30137             :   false,  /* isMovable.  Not relevant for setters. */
   30138             :   false, /* isEliminatable.  Not relevant for setters. */
   30139             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30140             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30141             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30142             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30143             : };
   30144             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30145             : static_assert(0 < 1, "There is no slot for us");
   30146             : 
   30147             : static bool
   30148           0 : get_order(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30149             : {
   30150           0 :   binding_detail::FastErrorResult rv;
   30151           0 :   DOMString result;
   30152           0 :   self->GetOrder(result, rv);
   30153           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30154           0 :     return false;
   30155             :   }
   30156           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30157           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30158           0 :     return false;
   30159             :   }
   30160           0 :   return true;
   30161             : }
   30162             : 
   30163             : static bool
   30164           0 : set_order(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30165             : {
   30166           0 :   binding_detail::FakeString arg0;
   30167           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30168           0 :     return false;
   30169             :   }
   30170           0 :   binding_detail::FastErrorResult rv;
   30171           0 :   self->SetOrder(NonNullHelper(Constify(arg0)), rv);
   30172           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30173           0 :     return false;
   30174             :   }
   30175           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30176             : 
   30177           0 :   return true;
   30178             : }
   30179             : 
   30180             : static const JSJitInfo order_getterinfo = {
   30181             :   { (JSJitGetterOp)get_order },
   30182             :   { prototypes::id::CSS2Properties },
   30183             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30184             :   JSJitInfo::Getter,
   30185             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30186             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30187             :   false,  /* isInfallible. False in setters. */
   30188             :   false,  /* isMovable.  Not relevant for setters. */
   30189             :   false, /* isEliminatable.  Not relevant for setters. */
   30190             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30191             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30192             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30193             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30194             : };
   30195             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30196             : static_assert(0 < 1, "There is no slot for us");
   30197             : static const JSJitInfo order_setterinfo = {
   30198             :   { (JSJitGetterOp)set_order },
   30199             :   { prototypes::id::CSS2Properties },
   30200             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30201             :   JSJitInfo::Setter,
   30202             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30203             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30204             :   false,  /* isInfallible. False in setters. */
   30205             :   false,  /* isMovable.  Not relevant for setters. */
   30206             :   false, /* isEliminatable.  Not relevant for setters. */
   30207             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30208             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30209             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30210             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30211             : };
   30212             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30213             : static_assert(0 < 1, "There is no slot for us");
   30214             : 
   30215             : static bool
   30216           0 : get_MozOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30217             : {
   30218           0 :   binding_detail::FastErrorResult rv;
   30219           0 :   DOMString result;
   30220           0 :   self->GetMozOrient(result, rv);
   30221           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30222           0 :     return false;
   30223             :   }
   30224           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30225           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30226           0 :     return false;
   30227             :   }
   30228           0 :   return true;
   30229             : }
   30230             : 
   30231             : static bool
   30232           0 : set_MozOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30233             : {
   30234           0 :   binding_detail::FakeString arg0;
   30235           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30236           0 :     return false;
   30237             :   }
   30238           0 :   binding_detail::FastErrorResult rv;
   30239           0 :   self->SetMozOrient(NonNullHelper(Constify(arg0)), rv);
   30240           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30241           0 :     return false;
   30242             :   }
   30243           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30244             : 
   30245           0 :   return true;
   30246             : }
   30247             : 
   30248             : static const JSJitInfo MozOrient_getterinfo = {
   30249             :   { (JSJitGetterOp)get_MozOrient },
   30250             :   { prototypes::id::CSS2Properties },
   30251             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30252             :   JSJitInfo::Getter,
   30253             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30254             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30255             :   false,  /* isInfallible. False in setters. */
   30256             :   false,  /* isMovable.  Not relevant for setters. */
   30257             :   false, /* isEliminatable.  Not relevant for setters. */
   30258             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30259             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30260             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30261             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30262             : };
   30263             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30264             : static_assert(0 < 1, "There is no slot for us");
   30265             : static const JSJitInfo MozOrient_setterinfo = {
   30266             :   { (JSJitGetterOp)set_MozOrient },
   30267             :   { prototypes::id::CSS2Properties },
   30268             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30269             :   JSJitInfo::Setter,
   30270             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30271             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30272             :   false,  /* isInfallible. False in setters. */
   30273             :   false,  /* isMovable.  Not relevant for setters. */
   30274             :   false, /* isEliminatable.  Not relevant for setters. */
   30275             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30276             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30277             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30278             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30279             : };
   30280             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30281             : static_assert(0 < 1, "There is no slot for us");
   30282             : 
   30283             : static bool
   30284           0 : get__moz_orient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30285             : {
   30286           0 :   binding_detail::FastErrorResult rv;
   30287           0 :   DOMString result;
   30288           0 :   self->GetMozOrient(result, rv);
   30289           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30290           0 :     return false;
   30291             :   }
   30292           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30293           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30294           0 :     return false;
   30295             :   }
   30296           0 :   return true;
   30297             : }
   30298             : 
   30299             : static bool
   30300           0 : set__moz_orient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30301             : {
   30302           0 :   binding_detail::FakeString arg0;
   30303           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30304           0 :     return false;
   30305             :   }
   30306           0 :   binding_detail::FastErrorResult rv;
   30307           0 :   self->SetMozOrient(NonNullHelper(Constify(arg0)), rv);
   30308           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30309           0 :     return false;
   30310             :   }
   30311           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30312             : 
   30313           0 :   return true;
   30314             : }
   30315             : 
   30316             : static const JSJitInfo _moz_orient_getterinfo = {
   30317             :   { (JSJitGetterOp)get__moz_orient },
   30318             :   { prototypes::id::CSS2Properties },
   30319             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30320             :   JSJitInfo::Getter,
   30321             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30322             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30323             :   false,  /* isInfallible. False in setters. */
   30324             :   false,  /* isMovable.  Not relevant for setters. */
   30325             :   false, /* isEliminatable.  Not relevant for setters. */
   30326             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30327             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30328             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30329             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30330             : };
   30331             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30332             : static_assert(0 < 1, "There is no slot for us");
   30333             : static const JSJitInfo _moz_orient_setterinfo = {
   30334             :   { (JSJitGetterOp)set__moz_orient },
   30335             :   { prototypes::id::CSS2Properties },
   30336             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30337             :   JSJitInfo::Setter,
   30338             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30339             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30340             :   false,  /* isInfallible. False in setters. */
   30341             :   false,  /* isMovable.  Not relevant for setters. */
   30342             :   false, /* isEliminatable.  Not relevant for setters. */
   30343             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30344             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30345             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30346             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30347             : };
   30348             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30349             : static_assert(0 < 1, "There is no slot for us");
   30350             : 
   30351             : static bool
   30352           0 : get_MozOsxFontSmoothing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30353             : {
   30354           0 :   binding_detail::FastErrorResult rv;
   30355           0 :   DOMString result;
   30356           0 :   self->GetMozOsxFontSmoothing(result, rv);
   30357           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30358           0 :     return false;
   30359             :   }
   30360           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30361           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30362           0 :     return false;
   30363             :   }
   30364           0 :   return true;
   30365             : }
   30366             : 
   30367             : static bool
   30368           0 : set_MozOsxFontSmoothing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30369             : {
   30370           0 :   binding_detail::FakeString arg0;
   30371           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30372           0 :     return false;
   30373             :   }
   30374           0 :   binding_detail::FastErrorResult rv;
   30375           0 :   self->SetMozOsxFontSmoothing(NonNullHelper(Constify(arg0)), rv);
   30376           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30377           0 :     return false;
   30378             :   }
   30379           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30380             : 
   30381           0 :   return true;
   30382             : }
   30383             : 
   30384             : static const JSJitInfo MozOsxFontSmoothing_getterinfo = {
   30385             :   { (JSJitGetterOp)get_MozOsxFontSmoothing },
   30386             :   { prototypes::id::CSS2Properties },
   30387             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30388             :   JSJitInfo::Getter,
   30389             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30390             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30391             :   false,  /* isInfallible. False in setters. */
   30392             :   false,  /* isMovable.  Not relevant for setters. */
   30393             :   false, /* isEliminatable.  Not relevant for setters. */
   30394             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30395             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30396             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30397             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30398             : };
   30399             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30400             : static_assert(0 < 1, "There is no slot for us");
   30401             : static const JSJitInfo MozOsxFontSmoothing_setterinfo = {
   30402             :   { (JSJitGetterOp)set_MozOsxFontSmoothing },
   30403             :   { prototypes::id::CSS2Properties },
   30404             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30405             :   JSJitInfo::Setter,
   30406             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30407             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30408             :   false,  /* isInfallible. False in setters. */
   30409             :   false,  /* isMovable.  Not relevant for setters. */
   30410             :   false, /* isEliminatable.  Not relevant for setters. */
   30411             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30412             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30413             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30414             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30415             : };
   30416             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30417             : static_assert(0 < 1, "There is no slot for us");
   30418             : 
   30419             : static bool
   30420           0 : get__moz_osx_font_smoothing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30421             : {
   30422           0 :   binding_detail::FastErrorResult rv;
   30423           0 :   DOMString result;
   30424           0 :   self->GetMozOsxFontSmoothing(result, rv);
   30425           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30426           0 :     return false;
   30427             :   }
   30428           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30429           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30430           0 :     return false;
   30431             :   }
   30432           0 :   return true;
   30433             : }
   30434             : 
   30435             : static bool
   30436           0 : set__moz_osx_font_smoothing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30437             : {
   30438           0 :   binding_detail::FakeString arg0;
   30439           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30440           0 :     return false;
   30441             :   }
   30442           0 :   binding_detail::FastErrorResult rv;
   30443           0 :   self->SetMozOsxFontSmoothing(NonNullHelper(Constify(arg0)), rv);
   30444           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30445           0 :     return false;
   30446             :   }
   30447           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30448             : 
   30449           0 :   return true;
   30450             : }
   30451             : 
   30452             : static const JSJitInfo _moz_osx_font_smoothing_getterinfo = {
   30453             :   { (JSJitGetterOp)get__moz_osx_font_smoothing },
   30454             :   { prototypes::id::CSS2Properties },
   30455             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30456             :   JSJitInfo::Getter,
   30457             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30458             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30459             :   false,  /* isInfallible. False in setters. */
   30460             :   false,  /* isMovable.  Not relevant for setters. */
   30461             :   false, /* isEliminatable.  Not relevant for setters. */
   30462             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30463             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30464             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30465             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30466             : };
   30467             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30468             : static_assert(0 < 1, "There is no slot for us");
   30469             : static const JSJitInfo _moz_osx_font_smoothing_setterinfo = {
   30470             :   { (JSJitGetterOp)set__moz_osx_font_smoothing },
   30471             :   { prototypes::id::CSS2Properties },
   30472             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30473             :   JSJitInfo::Setter,
   30474             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30475             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30476             :   false,  /* isInfallible. False in setters. */
   30477             :   false,  /* isMovable.  Not relevant for setters. */
   30478             :   false, /* isEliminatable.  Not relevant for setters. */
   30479             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30480             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30481             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30482             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30483             : };
   30484             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30485             : static_assert(0 < 1, "There is no slot for us");
   30486             : 
   30487             : static bool
   30488           0 : get_outline(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30489             : {
   30490           0 :   binding_detail::FastErrorResult rv;
   30491           0 :   DOMString result;
   30492           0 :   self->GetOutline(result, rv);
   30493           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30494           0 :     return false;
   30495             :   }
   30496           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30497           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30498           0 :     return false;
   30499             :   }
   30500           0 :   return true;
   30501             : }
   30502             : 
   30503             : static bool
   30504           0 : set_outline(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30505             : {
   30506           0 :   binding_detail::FakeString arg0;
   30507           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30508           0 :     return false;
   30509             :   }
   30510           0 :   binding_detail::FastErrorResult rv;
   30511           0 :   self->SetOutline(NonNullHelper(Constify(arg0)), rv);
   30512           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30513           0 :     return false;
   30514             :   }
   30515           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30516             : 
   30517           0 :   return true;
   30518             : }
   30519             : 
   30520             : static const JSJitInfo outline_getterinfo = {
   30521             :   { (JSJitGetterOp)get_outline },
   30522             :   { prototypes::id::CSS2Properties },
   30523             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30524             :   JSJitInfo::Getter,
   30525             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30526             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30527             :   false,  /* isInfallible. False in setters. */
   30528             :   false,  /* isMovable.  Not relevant for setters. */
   30529             :   false, /* isEliminatable.  Not relevant for setters. */
   30530             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30531             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30532             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30533             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30534             : };
   30535             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30536             : static_assert(0 < 1, "There is no slot for us");
   30537             : static const JSJitInfo outline_setterinfo = {
   30538             :   { (JSJitGetterOp)set_outline },
   30539             :   { prototypes::id::CSS2Properties },
   30540             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30541             :   JSJitInfo::Setter,
   30542             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30543             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30544             :   false,  /* isInfallible. False in setters. */
   30545             :   false,  /* isMovable.  Not relevant for setters. */
   30546             :   false, /* isEliminatable.  Not relevant for setters. */
   30547             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30548             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30549             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30550             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30551             : };
   30552             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30553             : static_assert(0 < 1, "There is no slot for us");
   30554             : 
   30555             : static bool
   30556           0 : get_outlineColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30557             : {
   30558           0 :   binding_detail::FastErrorResult rv;
   30559           0 :   DOMString result;
   30560           0 :   self->GetOutlineColor(result, rv);
   30561           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30562           0 :     return false;
   30563             :   }
   30564           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30565           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30566           0 :     return false;
   30567             :   }
   30568           0 :   return true;
   30569             : }
   30570             : 
   30571             : static bool
   30572           0 : set_outlineColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30573             : {
   30574           0 :   binding_detail::FakeString arg0;
   30575           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30576           0 :     return false;
   30577             :   }
   30578           0 :   binding_detail::FastErrorResult rv;
   30579           0 :   self->SetOutlineColor(NonNullHelper(Constify(arg0)), rv);
   30580           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30581           0 :     return false;
   30582             :   }
   30583           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30584             : 
   30585           0 :   return true;
   30586             : }
   30587             : 
   30588             : static const JSJitInfo outlineColor_getterinfo = {
   30589             :   { (JSJitGetterOp)get_outlineColor },
   30590             :   { prototypes::id::CSS2Properties },
   30591             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30592             :   JSJitInfo::Getter,
   30593             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30594             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30595             :   false,  /* isInfallible. False in setters. */
   30596             :   false,  /* isMovable.  Not relevant for setters. */
   30597             :   false, /* isEliminatable.  Not relevant for setters. */
   30598             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30599             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30600             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30601             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30602             : };
   30603             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30604             : static_assert(0 < 1, "There is no slot for us");
   30605             : static const JSJitInfo outlineColor_setterinfo = {
   30606             :   { (JSJitGetterOp)set_outlineColor },
   30607             :   { prototypes::id::CSS2Properties },
   30608             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30609             :   JSJitInfo::Setter,
   30610             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30611             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30612             :   false,  /* isInfallible. False in setters. */
   30613             :   false,  /* isMovable.  Not relevant for setters. */
   30614             :   false, /* isEliminatable.  Not relevant for setters. */
   30615             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30616             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30617             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30618             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30619             : };
   30620             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30621             : static_assert(0 < 1, "There is no slot for us");
   30622             : 
   30623             : static bool
   30624           0 : get_outline_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30625             : {
   30626           0 :   binding_detail::FastErrorResult rv;
   30627           0 :   DOMString result;
   30628           0 :   self->GetOutlineColor(result, rv);
   30629           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30630           0 :     return false;
   30631             :   }
   30632           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30633           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30634           0 :     return false;
   30635             :   }
   30636           0 :   return true;
   30637             : }
   30638             : 
   30639             : static bool
   30640           0 : set_outline_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30641             : {
   30642           0 :   binding_detail::FakeString arg0;
   30643           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30644           0 :     return false;
   30645             :   }
   30646           0 :   binding_detail::FastErrorResult rv;
   30647           0 :   self->SetOutlineColor(NonNullHelper(Constify(arg0)), rv);
   30648           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30649           0 :     return false;
   30650             :   }
   30651           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30652             : 
   30653           0 :   return true;
   30654             : }
   30655             : 
   30656             : static const JSJitInfo outline_color_getterinfo = {
   30657             :   { (JSJitGetterOp)get_outline_color },
   30658             :   { prototypes::id::CSS2Properties },
   30659             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30660             :   JSJitInfo::Getter,
   30661             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30662             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30663             :   false,  /* isInfallible. False in setters. */
   30664             :   false,  /* isMovable.  Not relevant for setters. */
   30665             :   false, /* isEliminatable.  Not relevant for setters. */
   30666             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30667             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30668             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30669             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30670             : };
   30671             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30672             : static_assert(0 < 1, "There is no slot for us");
   30673             : static const JSJitInfo outline_color_setterinfo = {
   30674             :   { (JSJitGetterOp)set_outline_color },
   30675             :   { prototypes::id::CSS2Properties },
   30676             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30677             :   JSJitInfo::Setter,
   30678             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30679             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30680             :   false,  /* isInfallible. False in setters. */
   30681             :   false,  /* isMovable.  Not relevant for setters. */
   30682             :   false, /* isEliminatable.  Not relevant for setters. */
   30683             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30684             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30685             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30686             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30687             : };
   30688             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30689             : static_assert(0 < 1, "There is no slot for us");
   30690             : 
   30691             : static bool
   30692           0 : get_outlineOffset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30693             : {
   30694           0 :   binding_detail::FastErrorResult rv;
   30695           0 :   DOMString result;
   30696           0 :   self->GetOutlineOffset(result, rv);
   30697           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30698           0 :     return false;
   30699             :   }
   30700           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30701           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30702           0 :     return false;
   30703             :   }
   30704           0 :   return true;
   30705             : }
   30706             : 
   30707             : static bool
   30708           0 : set_outlineOffset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30709             : {
   30710           0 :   binding_detail::FakeString arg0;
   30711           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30712           0 :     return false;
   30713             :   }
   30714           0 :   binding_detail::FastErrorResult rv;
   30715           0 :   self->SetOutlineOffset(NonNullHelper(Constify(arg0)), rv);
   30716           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30717           0 :     return false;
   30718             :   }
   30719           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30720             : 
   30721           0 :   return true;
   30722             : }
   30723             : 
   30724             : static const JSJitInfo outlineOffset_getterinfo = {
   30725             :   { (JSJitGetterOp)get_outlineOffset },
   30726             :   { prototypes::id::CSS2Properties },
   30727             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30728             :   JSJitInfo::Getter,
   30729             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30730             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30731             :   false,  /* isInfallible. False in setters. */
   30732             :   false,  /* isMovable.  Not relevant for setters. */
   30733             :   false, /* isEliminatable.  Not relevant for setters. */
   30734             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30735             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30736             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30737             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30738             : };
   30739             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30740             : static_assert(0 < 1, "There is no slot for us");
   30741             : static const JSJitInfo outlineOffset_setterinfo = {
   30742             :   { (JSJitGetterOp)set_outlineOffset },
   30743             :   { prototypes::id::CSS2Properties },
   30744             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30745             :   JSJitInfo::Setter,
   30746             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30747             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30748             :   false,  /* isInfallible. False in setters. */
   30749             :   false,  /* isMovable.  Not relevant for setters. */
   30750             :   false, /* isEliminatable.  Not relevant for setters. */
   30751             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30752             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30753             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30754             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30755             : };
   30756             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30757             : static_assert(0 < 1, "There is no slot for us");
   30758             : 
   30759             : static bool
   30760           0 : get_outline_offset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30761             : {
   30762           0 :   binding_detail::FastErrorResult rv;
   30763           0 :   DOMString result;
   30764           0 :   self->GetOutlineOffset(result, rv);
   30765           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30766           0 :     return false;
   30767             :   }
   30768           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30769           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30770           0 :     return false;
   30771             :   }
   30772           0 :   return true;
   30773             : }
   30774             : 
   30775             : static bool
   30776           0 : set_outline_offset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30777             : {
   30778           0 :   binding_detail::FakeString arg0;
   30779           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30780           0 :     return false;
   30781             :   }
   30782           0 :   binding_detail::FastErrorResult rv;
   30783           0 :   self->SetOutlineOffset(NonNullHelper(Constify(arg0)), rv);
   30784           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30785           0 :     return false;
   30786             :   }
   30787           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30788             : 
   30789           0 :   return true;
   30790             : }
   30791             : 
   30792             : static const JSJitInfo outline_offset_getterinfo = {
   30793             :   { (JSJitGetterOp)get_outline_offset },
   30794             :   { prototypes::id::CSS2Properties },
   30795             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30796             :   JSJitInfo::Getter,
   30797             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30798             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30799             :   false,  /* isInfallible. False in setters. */
   30800             :   false,  /* isMovable.  Not relevant for setters. */
   30801             :   false, /* isEliminatable.  Not relevant for setters. */
   30802             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30803             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30804             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30805             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30806             : };
   30807             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30808             : static_assert(0 < 1, "There is no slot for us");
   30809             : static const JSJitInfo outline_offset_setterinfo = {
   30810             :   { (JSJitGetterOp)set_outline_offset },
   30811             :   { prototypes::id::CSS2Properties },
   30812             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30813             :   JSJitInfo::Setter,
   30814             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30815             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30816             :   false,  /* isInfallible. False in setters. */
   30817             :   false,  /* isMovable.  Not relevant for setters. */
   30818             :   false, /* isEliminatable.  Not relevant for setters. */
   30819             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30820             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30821             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30822             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30823             : };
   30824             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30825             : static_assert(0 < 1, "There is no slot for us");
   30826             : 
   30827             : static bool
   30828           0 : get_MozOutlineRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30829             : {
   30830           0 :   binding_detail::FastErrorResult rv;
   30831           0 :   DOMString result;
   30832           0 :   self->GetMozOutlineRadius(result, rv);
   30833           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30834           0 :     return false;
   30835             :   }
   30836           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30837           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30838           0 :     return false;
   30839             :   }
   30840           0 :   return true;
   30841             : }
   30842             : 
   30843             : static bool
   30844           0 : set_MozOutlineRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30845             : {
   30846           0 :   binding_detail::FakeString arg0;
   30847           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30848           0 :     return false;
   30849             :   }
   30850           0 :   binding_detail::FastErrorResult rv;
   30851           0 :   self->SetMozOutlineRadius(NonNullHelper(Constify(arg0)), rv);
   30852           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30853           0 :     return false;
   30854             :   }
   30855           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30856             : 
   30857           0 :   return true;
   30858             : }
   30859             : 
   30860             : static const JSJitInfo MozOutlineRadius_getterinfo = {
   30861             :   { (JSJitGetterOp)get_MozOutlineRadius },
   30862             :   { prototypes::id::CSS2Properties },
   30863             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30864             :   JSJitInfo::Getter,
   30865             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30866             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30867             :   false,  /* isInfallible. False in setters. */
   30868             :   false,  /* isMovable.  Not relevant for setters. */
   30869             :   false, /* isEliminatable.  Not relevant for setters. */
   30870             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30871             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30872             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30873             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30874             : };
   30875             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30876             : static_assert(0 < 1, "There is no slot for us");
   30877             : static const JSJitInfo MozOutlineRadius_setterinfo = {
   30878             :   { (JSJitGetterOp)set_MozOutlineRadius },
   30879             :   { prototypes::id::CSS2Properties },
   30880             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30881             :   JSJitInfo::Setter,
   30882             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30883             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30884             :   false,  /* isInfallible. False in setters. */
   30885             :   false,  /* isMovable.  Not relevant for setters. */
   30886             :   false, /* isEliminatable.  Not relevant for setters. */
   30887             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30888             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30889             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30890             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30891             : };
   30892             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30893             : static_assert(0 < 1, "There is no slot for us");
   30894             : 
   30895             : static bool
   30896           0 : get__moz_outline_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30897             : {
   30898           0 :   binding_detail::FastErrorResult rv;
   30899           0 :   DOMString result;
   30900           0 :   self->GetMozOutlineRadius(result, rv);
   30901           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30902           0 :     return false;
   30903             :   }
   30904           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30905           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30906           0 :     return false;
   30907             :   }
   30908           0 :   return true;
   30909             : }
   30910             : 
   30911             : static bool
   30912           0 : set__moz_outline_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30913             : {
   30914           0 :   binding_detail::FakeString arg0;
   30915           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30916           0 :     return false;
   30917             :   }
   30918           0 :   binding_detail::FastErrorResult rv;
   30919           0 :   self->SetMozOutlineRadius(NonNullHelper(Constify(arg0)), rv);
   30920           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30921           0 :     return false;
   30922             :   }
   30923           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30924             : 
   30925           0 :   return true;
   30926             : }
   30927             : 
   30928             : static const JSJitInfo _moz_outline_radius_getterinfo = {
   30929             :   { (JSJitGetterOp)get__moz_outline_radius },
   30930             :   { prototypes::id::CSS2Properties },
   30931             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30932             :   JSJitInfo::Getter,
   30933             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30934             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   30935             :   false,  /* isInfallible. False in setters. */
   30936             :   false,  /* isMovable.  Not relevant for setters. */
   30937             :   false, /* isEliminatable.  Not relevant for setters. */
   30938             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30939             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30940             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30941             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30942             : };
   30943             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30944             : static_assert(0 < 1, "There is no slot for us");
   30945             : static const JSJitInfo _moz_outline_radius_setterinfo = {
   30946             :   { (JSJitGetterOp)set__moz_outline_radius },
   30947             :   { prototypes::id::CSS2Properties },
   30948             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   30949             :   JSJitInfo::Setter,
   30950             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   30951             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   30952             :   false,  /* isInfallible. False in setters. */
   30953             :   false,  /* isMovable.  Not relevant for setters. */
   30954             :   false, /* isEliminatable.  Not relevant for setters. */
   30955             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   30956             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   30957             :   false,  /* isTypedMethod.  Only relevant for methods. */
   30958             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   30959             : };
   30960             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   30961             : static_assert(0 < 1, "There is no slot for us");
   30962             : 
   30963             : static bool
   30964           0 : get_MozOutlineRadiusBottomleft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   30965             : {
   30966           0 :   binding_detail::FastErrorResult rv;
   30967           0 :   DOMString result;
   30968           0 :   self->GetMozOutlineRadiusBottomleft(result, rv);
   30969           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30970           0 :     return false;
   30971             :   }
   30972           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30973           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   30974           0 :     return false;
   30975             :   }
   30976           0 :   return true;
   30977             : }
   30978             : 
   30979             : static bool
   30980           0 : set_MozOutlineRadiusBottomleft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   30981             : {
   30982           0 :   binding_detail::FakeString arg0;
   30983           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   30984           0 :     return false;
   30985             :   }
   30986           0 :   binding_detail::FastErrorResult rv;
   30987           0 :   self->SetMozOutlineRadiusBottomleft(NonNullHelper(Constify(arg0)), rv);
   30988           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   30989           0 :     return false;
   30990             :   }
   30991           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   30992             : 
   30993           0 :   return true;
   30994             : }
   30995             : 
   30996             : static const JSJitInfo MozOutlineRadiusBottomleft_getterinfo = {
   30997             :   { (JSJitGetterOp)get_MozOutlineRadiusBottomleft },
   30998             :   { prototypes::id::CSS2Properties },
   30999             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31000             :   JSJitInfo::Getter,
   31001             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31002             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31003             :   false,  /* isInfallible. False in setters. */
   31004             :   false,  /* isMovable.  Not relevant for setters. */
   31005             :   false, /* isEliminatable.  Not relevant for setters. */
   31006             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31007             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31008             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31009             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31010             : };
   31011             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31012             : static_assert(0 < 1, "There is no slot for us");
   31013             : static const JSJitInfo MozOutlineRadiusBottomleft_setterinfo = {
   31014             :   { (JSJitGetterOp)set_MozOutlineRadiusBottomleft },
   31015             :   { prototypes::id::CSS2Properties },
   31016             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31017             :   JSJitInfo::Setter,
   31018             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31019             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31020             :   false,  /* isInfallible. False in setters. */
   31021             :   false,  /* isMovable.  Not relevant for setters. */
   31022             :   false, /* isEliminatable.  Not relevant for setters. */
   31023             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31024             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31025             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31026             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31027             : };
   31028             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31029             : static_assert(0 < 1, "There is no slot for us");
   31030             : 
   31031             : static bool
   31032           0 : get__moz_outline_radius_bottomleft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31033             : {
   31034           0 :   binding_detail::FastErrorResult rv;
   31035           0 :   DOMString result;
   31036           0 :   self->GetMozOutlineRadiusBottomleft(result, rv);
   31037           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31038           0 :     return false;
   31039             :   }
   31040           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31041           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31042           0 :     return false;
   31043             :   }
   31044           0 :   return true;
   31045             : }
   31046             : 
   31047             : static bool
   31048           0 : set__moz_outline_radius_bottomleft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31049             : {
   31050           0 :   binding_detail::FakeString arg0;
   31051           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31052           0 :     return false;
   31053             :   }
   31054           0 :   binding_detail::FastErrorResult rv;
   31055           0 :   self->SetMozOutlineRadiusBottomleft(NonNullHelper(Constify(arg0)), rv);
   31056           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31057           0 :     return false;
   31058             :   }
   31059           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31060             : 
   31061           0 :   return true;
   31062             : }
   31063             : 
   31064             : static const JSJitInfo _moz_outline_radius_bottomleft_getterinfo = {
   31065             :   { (JSJitGetterOp)get__moz_outline_radius_bottomleft },
   31066             :   { prototypes::id::CSS2Properties },
   31067             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31068             :   JSJitInfo::Getter,
   31069             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31070             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31071             :   false,  /* isInfallible. False in setters. */
   31072             :   false,  /* isMovable.  Not relevant for setters. */
   31073             :   false, /* isEliminatable.  Not relevant for setters. */
   31074             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31075             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31076             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31077             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31078             : };
   31079             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31080             : static_assert(0 < 1, "There is no slot for us");
   31081             : static const JSJitInfo _moz_outline_radius_bottomleft_setterinfo = {
   31082             :   { (JSJitGetterOp)set__moz_outline_radius_bottomleft },
   31083             :   { prototypes::id::CSS2Properties },
   31084             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31085             :   JSJitInfo::Setter,
   31086             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31087             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31088             :   false,  /* isInfallible. False in setters. */
   31089             :   false,  /* isMovable.  Not relevant for setters. */
   31090             :   false, /* isEliminatable.  Not relevant for setters. */
   31091             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31092             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31093             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31094             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31095             : };
   31096             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31097             : static_assert(0 < 1, "There is no slot for us");
   31098             : 
   31099             : static bool
   31100           0 : get_MozOutlineRadiusBottomright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31101             : {
   31102           0 :   binding_detail::FastErrorResult rv;
   31103           0 :   DOMString result;
   31104           0 :   self->GetMozOutlineRadiusBottomright(result, rv);
   31105           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31106           0 :     return false;
   31107             :   }
   31108           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31109           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31110           0 :     return false;
   31111             :   }
   31112           0 :   return true;
   31113             : }
   31114             : 
   31115             : static bool
   31116           0 : set_MozOutlineRadiusBottomright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31117             : {
   31118           0 :   binding_detail::FakeString arg0;
   31119           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31120           0 :     return false;
   31121             :   }
   31122           0 :   binding_detail::FastErrorResult rv;
   31123           0 :   self->SetMozOutlineRadiusBottomright(NonNullHelper(Constify(arg0)), rv);
   31124           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31125           0 :     return false;
   31126             :   }
   31127           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31128             : 
   31129           0 :   return true;
   31130             : }
   31131             : 
   31132             : static const JSJitInfo MozOutlineRadiusBottomright_getterinfo = {
   31133             :   { (JSJitGetterOp)get_MozOutlineRadiusBottomright },
   31134             :   { prototypes::id::CSS2Properties },
   31135             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31136             :   JSJitInfo::Getter,
   31137             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31138             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31139             :   false,  /* isInfallible. False in setters. */
   31140             :   false,  /* isMovable.  Not relevant for setters. */
   31141             :   false, /* isEliminatable.  Not relevant for setters. */
   31142             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31143             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31144             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31145             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31146             : };
   31147             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31148             : static_assert(0 < 1, "There is no slot for us");
   31149             : static const JSJitInfo MozOutlineRadiusBottomright_setterinfo = {
   31150             :   { (JSJitGetterOp)set_MozOutlineRadiusBottomright },
   31151             :   { prototypes::id::CSS2Properties },
   31152             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31153             :   JSJitInfo::Setter,
   31154             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31155             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31156             :   false,  /* isInfallible. False in setters. */
   31157             :   false,  /* isMovable.  Not relevant for setters. */
   31158             :   false, /* isEliminatable.  Not relevant for setters. */
   31159             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31160             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31161             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31162             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31163             : };
   31164             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31165             : static_assert(0 < 1, "There is no slot for us");
   31166             : 
   31167             : static bool
   31168           0 : get__moz_outline_radius_bottomright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31169             : {
   31170           0 :   binding_detail::FastErrorResult rv;
   31171           0 :   DOMString result;
   31172           0 :   self->GetMozOutlineRadiusBottomright(result, rv);
   31173           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31174           0 :     return false;
   31175             :   }
   31176           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31177           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31178           0 :     return false;
   31179             :   }
   31180           0 :   return true;
   31181             : }
   31182             : 
   31183             : static bool
   31184           0 : set__moz_outline_radius_bottomright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31185             : {
   31186           0 :   binding_detail::FakeString arg0;
   31187           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31188           0 :     return false;
   31189             :   }
   31190           0 :   binding_detail::FastErrorResult rv;
   31191           0 :   self->SetMozOutlineRadiusBottomright(NonNullHelper(Constify(arg0)), rv);
   31192           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31193           0 :     return false;
   31194             :   }
   31195           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31196             : 
   31197           0 :   return true;
   31198             : }
   31199             : 
   31200             : static const JSJitInfo _moz_outline_radius_bottomright_getterinfo = {
   31201             :   { (JSJitGetterOp)get__moz_outline_radius_bottomright },
   31202             :   { prototypes::id::CSS2Properties },
   31203             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31204             :   JSJitInfo::Getter,
   31205             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31206             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31207             :   false,  /* isInfallible. False in setters. */
   31208             :   false,  /* isMovable.  Not relevant for setters. */
   31209             :   false, /* isEliminatable.  Not relevant for setters. */
   31210             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31211             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31212             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31213             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31214             : };
   31215             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31216             : static_assert(0 < 1, "There is no slot for us");
   31217             : static const JSJitInfo _moz_outline_radius_bottomright_setterinfo = {
   31218             :   { (JSJitGetterOp)set__moz_outline_radius_bottomright },
   31219             :   { prototypes::id::CSS2Properties },
   31220             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31221             :   JSJitInfo::Setter,
   31222             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31223             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31224             :   false,  /* isInfallible. False in setters. */
   31225             :   false,  /* isMovable.  Not relevant for setters. */
   31226             :   false, /* isEliminatable.  Not relevant for setters. */
   31227             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31228             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31229             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31230             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31231             : };
   31232             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31233             : static_assert(0 < 1, "There is no slot for us");
   31234             : 
   31235             : static bool
   31236           0 : get_MozOutlineRadiusTopleft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31237             : {
   31238           0 :   binding_detail::FastErrorResult rv;
   31239           0 :   DOMString result;
   31240           0 :   self->GetMozOutlineRadiusTopleft(result, rv);
   31241           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31242           0 :     return false;
   31243             :   }
   31244           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31245           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31246           0 :     return false;
   31247             :   }
   31248           0 :   return true;
   31249             : }
   31250             : 
   31251             : static bool
   31252           0 : set_MozOutlineRadiusTopleft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31253             : {
   31254           0 :   binding_detail::FakeString arg0;
   31255           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31256           0 :     return false;
   31257             :   }
   31258           0 :   binding_detail::FastErrorResult rv;
   31259           0 :   self->SetMozOutlineRadiusTopleft(NonNullHelper(Constify(arg0)), rv);
   31260           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31261           0 :     return false;
   31262             :   }
   31263           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31264             : 
   31265           0 :   return true;
   31266             : }
   31267             : 
   31268             : static const JSJitInfo MozOutlineRadiusTopleft_getterinfo = {
   31269             :   { (JSJitGetterOp)get_MozOutlineRadiusTopleft },
   31270             :   { prototypes::id::CSS2Properties },
   31271             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31272             :   JSJitInfo::Getter,
   31273             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31274             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31275             :   false,  /* isInfallible. False in setters. */
   31276             :   false,  /* isMovable.  Not relevant for setters. */
   31277             :   false, /* isEliminatable.  Not relevant for setters. */
   31278             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31279             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31280             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31281             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31282             : };
   31283             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31284             : static_assert(0 < 1, "There is no slot for us");
   31285             : static const JSJitInfo MozOutlineRadiusTopleft_setterinfo = {
   31286             :   { (JSJitGetterOp)set_MozOutlineRadiusTopleft },
   31287             :   { prototypes::id::CSS2Properties },
   31288             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31289             :   JSJitInfo::Setter,
   31290             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31291             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31292             :   false,  /* isInfallible. False in setters. */
   31293             :   false,  /* isMovable.  Not relevant for setters. */
   31294             :   false, /* isEliminatable.  Not relevant for setters. */
   31295             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31296             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31297             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31298             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31299             : };
   31300             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31301             : static_assert(0 < 1, "There is no slot for us");
   31302             : 
   31303             : static bool
   31304           0 : get__moz_outline_radius_topleft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31305             : {
   31306           0 :   binding_detail::FastErrorResult rv;
   31307           0 :   DOMString result;
   31308           0 :   self->GetMozOutlineRadiusTopleft(result, rv);
   31309           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31310           0 :     return false;
   31311             :   }
   31312           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31313           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31314           0 :     return false;
   31315             :   }
   31316           0 :   return true;
   31317             : }
   31318             : 
   31319             : static bool
   31320           0 : set__moz_outline_radius_topleft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31321             : {
   31322           0 :   binding_detail::FakeString arg0;
   31323           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31324           0 :     return false;
   31325             :   }
   31326           0 :   binding_detail::FastErrorResult rv;
   31327           0 :   self->SetMozOutlineRadiusTopleft(NonNullHelper(Constify(arg0)), rv);
   31328           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31329           0 :     return false;
   31330             :   }
   31331           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31332             : 
   31333           0 :   return true;
   31334             : }
   31335             : 
   31336             : static const JSJitInfo _moz_outline_radius_topleft_getterinfo = {
   31337             :   { (JSJitGetterOp)get__moz_outline_radius_topleft },
   31338             :   { prototypes::id::CSS2Properties },
   31339             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31340             :   JSJitInfo::Getter,
   31341             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31342             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31343             :   false,  /* isInfallible. False in setters. */
   31344             :   false,  /* isMovable.  Not relevant for setters. */
   31345             :   false, /* isEliminatable.  Not relevant for setters. */
   31346             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31347             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31348             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31349             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31350             : };
   31351             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31352             : static_assert(0 < 1, "There is no slot for us");
   31353             : static const JSJitInfo _moz_outline_radius_topleft_setterinfo = {
   31354             :   { (JSJitGetterOp)set__moz_outline_radius_topleft },
   31355             :   { prototypes::id::CSS2Properties },
   31356             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31357             :   JSJitInfo::Setter,
   31358             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31359             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31360             :   false,  /* isInfallible. False in setters. */
   31361             :   false,  /* isMovable.  Not relevant for setters. */
   31362             :   false, /* isEliminatable.  Not relevant for setters. */
   31363             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31364             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31365             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31366             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31367             : };
   31368             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31369             : static_assert(0 < 1, "There is no slot for us");
   31370             : 
   31371             : static bool
   31372           0 : get_MozOutlineRadiusTopright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31373             : {
   31374           0 :   binding_detail::FastErrorResult rv;
   31375           0 :   DOMString result;
   31376           0 :   self->GetMozOutlineRadiusTopright(result, rv);
   31377           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31378           0 :     return false;
   31379             :   }
   31380           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31381           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31382           0 :     return false;
   31383             :   }
   31384           0 :   return true;
   31385             : }
   31386             : 
   31387             : static bool
   31388           0 : set_MozOutlineRadiusTopright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31389             : {
   31390           0 :   binding_detail::FakeString arg0;
   31391           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31392           0 :     return false;
   31393             :   }
   31394           0 :   binding_detail::FastErrorResult rv;
   31395           0 :   self->SetMozOutlineRadiusTopright(NonNullHelper(Constify(arg0)), rv);
   31396           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31397           0 :     return false;
   31398             :   }
   31399           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31400             : 
   31401           0 :   return true;
   31402             : }
   31403             : 
   31404             : static const JSJitInfo MozOutlineRadiusTopright_getterinfo = {
   31405             :   { (JSJitGetterOp)get_MozOutlineRadiusTopright },
   31406             :   { prototypes::id::CSS2Properties },
   31407             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31408             :   JSJitInfo::Getter,
   31409             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31410             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31411             :   false,  /* isInfallible. False in setters. */
   31412             :   false,  /* isMovable.  Not relevant for setters. */
   31413             :   false, /* isEliminatable.  Not relevant for setters. */
   31414             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31415             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31416             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31417             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31418             : };
   31419             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31420             : static_assert(0 < 1, "There is no slot for us");
   31421             : static const JSJitInfo MozOutlineRadiusTopright_setterinfo = {
   31422             :   { (JSJitGetterOp)set_MozOutlineRadiusTopright },
   31423             :   { prototypes::id::CSS2Properties },
   31424             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31425             :   JSJitInfo::Setter,
   31426             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31427             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31428             :   false,  /* isInfallible. False in setters. */
   31429             :   false,  /* isMovable.  Not relevant for setters. */
   31430             :   false, /* isEliminatable.  Not relevant for setters. */
   31431             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31432             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31433             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31434             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31435             : };
   31436             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31437             : static_assert(0 < 1, "There is no slot for us");
   31438             : 
   31439             : static bool
   31440           0 : get__moz_outline_radius_topright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31441             : {
   31442           0 :   binding_detail::FastErrorResult rv;
   31443           0 :   DOMString result;
   31444           0 :   self->GetMozOutlineRadiusTopright(result, rv);
   31445           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31446           0 :     return false;
   31447             :   }
   31448           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31449           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31450           0 :     return false;
   31451             :   }
   31452           0 :   return true;
   31453             : }
   31454             : 
   31455             : static bool
   31456           0 : set__moz_outline_radius_topright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31457             : {
   31458           0 :   binding_detail::FakeString arg0;
   31459           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31460           0 :     return false;
   31461             :   }
   31462           0 :   binding_detail::FastErrorResult rv;
   31463           0 :   self->SetMozOutlineRadiusTopright(NonNullHelper(Constify(arg0)), rv);
   31464           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31465           0 :     return false;
   31466             :   }
   31467           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31468             : 
   31469           0 :   return true;
   31470             : }
   31471             : 
   31472             : static const JSJitInfo _moz_outline_radius_topright_getterinfo = {
   31473             :   { (JSJitGetterOp)get__moz_outline_radius_topright },
   31474             :   { prototypes::id::CSS2Properties },
   31475             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31476             :   JSJitInfo::Getter,
   31477             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31478             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31479             :   false,  /* isInfallible. False in setters. */
   31480             :   false,  /* isMovable.  Not relevant for setters. */
   31481             :   false, /* isEliminatable.  Not relevant for setters. */
   31482             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31483             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31484             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31485             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31486             : };
   31487             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31488             : static_assert(0 < 1, "There is no slot for us");
   31489             : static const JSJitInfo _moz_outline_radius_topright_setterinfo = {
   31490             :   { (JSJitGetterOp)set__moz_outline_radius_topright },
   31491             :   { prototypes::id::CSS2Properties },
   31492             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31493             :   JSJitInfo::Setter,
   31494             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31495             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31496             :   false,  /* isInfallible. False in setters. */
   31497             :   false,  /* isMovable.  Not relevant for setters. */
   31498             :   false, /* isEliminatable.  Not relevant for setters. */
   31499             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31500             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31501             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31502             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31503             : };
   31504             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31505             : static_assert(0 < 1, "There is no slot for us");
   31506             : 
   31507             : static bool
   31508           0 : get_outlineStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31509             : {
   31510           0 :   binding_detail::FastErrorResult rv;
   31511           0 :   DOMString result;
   31512           0 :   self->GetOutlineStyle(result, rv);
   31513           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31514           0 :     return false;
   31515             :   }
   31516           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31517           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31518           0 :     return false;
   31519             :   }
   31520           0 :   return true;
   31521             : }
   31522             : 
   31523             : static bool
   31524           0 : set_outlineStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31525             : {
   31526           0 :   binding_detail::FakeString arg0;
   31527           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31528           0 :     return false;
   31529             :   }
   31530           0 :   binding_detail::FastErrorResult rv;
   31531           0 :   self->SetOutlineStyle(NonNullHelper(Constify(arg0)), rv);
   31532           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31533           0 :     return false;
   31534             :   }
   31535           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31536             : 
   31537           0 :   return true;
   31538             : }
   31539             : 
   31540             : static const JSJitInfo outlineStyle_getterinfo = {
   31541             :   { (JSJitGetterOp)get_outlineStyle },
   31542             :   { prototypes::id::CSS2Properties },
   31543             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31544             :   JSJitInfo::Getter,
   31545             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31546             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31547             :   false,  /* isInfallible. False in setters. */
   31548             :   false,  /* isMovable.  Not relevant for setters. */
   31549             :   false, /* isEliminatable.  Not relevant for setters. */
   31550             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31551             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31552             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31553             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31554             : };
   31555             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31556             : static_assert(0 < 1, "There is no slot for us");
   31557             : static const JSJitInfo outlineStyle_setterinfo = {
   31558             :   { (JSJitGetterOp)set_outlineStyle },
   31559             :   { prototypes::id::CSS2Properties },
   31560             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31561             :   JSJitInfo::Setter,
   31562             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31563             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31564             :   false,  /* isInfallible. False in setters. */
   31565             :   false,  /* isMovable.  Not relevant for setters. */
   31566             :   false, /* isEliminatable.  Not relevant for setters. */
   31567             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31568             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31569             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31570             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31571             : };
   31572             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31573             : static_assert(0 < 1, "There is no slot for us");
   31574             : 
   31575             : static bool
   31576           0 : get_outline_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31577             : {
   31578           0 :   binding_detail::FastErrorResult rv;
   31579           0 :   DOMString result;
   31580           0 :   self->GetOutlineStyle(result, rv);
   31581           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31582           0 :     return false;
   31583             :   }
   31584           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31585           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31586           0 :     return false;
   31587             :   }
   31588           0 :   return true;
   31589             : }
   31590             : 
   31591             : static bool
   31592           0 : set_outline_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31593             : {
   31594           0 :   binding_detail::FakeString arg0;
   31595           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31596           0 :     return false;
   31597             :   }
   31598           0 :   binding_detail::FastErrorResult rv;
   31599           0 :   self->SetOutlineStyle(NonNullHelper(Constify(arg0)), rv);
   31600           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31601           0 :     return false;
   31602             :   }
   31603           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31604             : 
   31605           0 :   return true;
   31606             : }
   31607             : 
   31608             : static const JSJitInfo outline_style_getterinfo = {
   31609             :   { (JSJitGetterOp)get_outline_style },
   31610             :   { prototypes::id::CSS2Properties },
   31611             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31612             :   JSJitInfo::Getter,
   31613             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31614             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31615             :   false,  /* isInfallible. False in setters. */
   31616             :   false,  /* isMovable.  Not relevant for setters. */
   31617             :   false, /* isEliminatable.  Not relevant for setters. */
   31618             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31619             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31620             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31621             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31622             : };
   31623             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31624             : static_assert(0 < 1, "There is no slot for us");
   31625             : static const JSJitInfo outline_style_setterinfo = {
   31626             :   { (JSJitGetterOp)set_outline_style },
   31627             :   { prototypes::id::CSS2Properties },
   31628             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31629             :   JSJitInfo::Setter,
   31630             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31631             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31632             :   false,  /* isInfallible. False in setters. */
   31633             :   false,  /* isMovable.  Not relevant for setters. */
   31634             :   false, /* isEliminatable.  Not relevant for setters. */
   31635             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31636             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31637             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31638             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31639             : };
   31640             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31641             : static_assert(0 < 1, "There is no slot for us");
   31642             : 
   31643             : static bool
   31644           0 : get_outlineWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31645             : {
   31646           0 :   binding_detail::FastErrorResult rv;
   31647           0 :   DOMString result;
   31648           0 :   self->GetOutlineWidth(result, rv);
   31649           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31650           0 :     return false;
   31651             :   }
   31652           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31653           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31654           0 :     return false;
   31655             :   }
   31656           0 :   return true;
   31657             : }
   31658             : 
   31659             : static bool
   31660           0 : set_outlineWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31661             : {
   31662           0 :   binding_detail::FakeString arg0;
   31663           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31664           0 :     return false;
   31665             :   }
   31666           0 :   binding_detail::FastErrorResult rv;
   31667           0 :   self->SetOutlineWidth(NonNullHelper(Constify(arg0)), rv);
   31668           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31669           0 :     return false;
   31670             :   }
   31671           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31672             : 
   31673           0 :   return true;
   31674             : }
   31675             : 
   31676             : static const JSJitInfo outlineWidth_getterinfo = {
   31677             :   { (JSJitGetterOp)get_outlineWidth },
   31678             :   { prototypes::id::CSS2Properties },
   31679             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31680             :   JSJitInfo::Getter,
   31681             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31682             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31683             :   false,  /* isInfallible. False in setters. */
   31684             :   false,  /* isMovable.  Not relevant for setters. */
   31685             :   false, /* isEliminatable.  Not relevant for setters. */
   31686             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31687             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31688             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31689             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31690             : };
   31691             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31692             : static_assert(0 < 1, "There is no slot for us");
   31693             : static const JSJitInfo outlineWidth_setterinfo = {
   31694             :   { (JSJitGetterOp)set_outlineWidth },
   31695             :   { prototypes::id::CSS2Properties },
   31696             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31697             :   JSJitInfo::Setter,
   31698             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31699             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31700             :   false,  /* isInfallible. False in setters. */
   31701             :   false,  /* isMovable.  Not relevant for setters. */
   31702             :   false, /* isEliminatable.  Not relevant for setters. */
   31703             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31704             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31705             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31706             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31707             : };
   31708             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31709             : static_assert(0 < 1, "There is no slot for us");
   31710             : 
   31711             : static bool
   31712           0 : get_outline_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31713             : {
   31714           0 :   binding_detail::FastErrorResult rv;
   31715           0 :   DOMString result;
   31716           0 :   self->GetOutlineWidth(result, rv);
   31717           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31718           0 :     return false;
   31719             :   }
   31720           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31721           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31722           0 :     return false;
   31723             :   }
   31724           0 :   return true;
   31725             : }
   31726             : 
   31727             : static bool
   31728           0 : set_outline_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31729             : {
   31730           0 :   binding_detail::FakeString arg0;
   31731           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31732           0 :     return false;
   31733             :   }
   31734           0 :   binding_detail::FastErrorResult rv;
   31735           0 :   self->SetOutlineWidth(NonNullHelper(Constify(arg0)), rv);
   31736           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31737           0 :     return false;
   31738             :   }
   31739           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31740             : 
   31741           0 :   return true;
   31742             : }
   31743             : 
   31744             : static const JSJitInfo outline_width_getterinfo = {
   31745             :   { (JSJitGetterOp)get_outline_width },
   31746             :   { prototypes::id::CSS2Properties },
   31747             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31748             :   JSJitInfo::Getter,
   31749             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31750             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31751             :   false,  /* isInfallible. False in setters. */
   31752             :   false,  /* isMovable.  Not relevant for setters. */
   31753             :   false, /* isEliminatable.  Not relevant for setters. */
   31754             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31755             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31756             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31757             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31758             : };
   31759             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31760             : static_assert(0 < 1, "There is no slot for us");
   31761             : static const JSJitInfo outline_width_setterinfo = {
   31762             :   { (JSJitGetterOp)set_outline_width },
   31763             :   { prototypes::id::CSS2Properties },
   31764             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31765             :   JSJitInfo::Setter,
   31766             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31767             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31768             :   false,  /* isInfallible. False in setters. */
   31769             :   false,  /* isMovable.  Not relevant for setters. */
   31770             :   false, /* isEliminatable.  Not relevant for setters. */
   31771             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31772             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31773             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31774             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31775             : };
   31776             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31777             : static_assert(0 < 1, "There is no slot for us");
   31778             : 
   31779             : static bool
   31780           0 : get_overflow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31781             : {
   31782           0 :   binding_detail::FastErrorResult rv;
   31783           0 :   DOMString result;
   31784           0 :   self->GetOverflow(result, rv);
   31785           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31786           0 :     return false;
   31787             :   }
   31788           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31789           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31790           0 :     return false;
   31791             :   }
   31792           0 :   return true;
   31793             : }
   31794             : 
   31795             : static bool
   31796           0 : set_overflow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31797             : {
   31798           0 :   binding_detail::FakeString arg0;
   31799           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31800           0 :     return false;
   31801             :   }
   31802           0 :   binding_detail::FastErrorResult rv;
   31803           0 :   self->SetOverflow(NonNullHelper(Constify(arg0)), rv);
   31804           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31805           0 :     return false;
   31806             :   }
   31807           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31808             : 
   31809           0 :   return true;
   31810             : }
   31811             : 
   31812             : static const JSJitInfo overflow_getterinfo = {
   31813             :   { (JSJitGetterOp)get_overflow },
   31814             :   { prototypes::id::CSS2Properties },
   31815             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31816             :   JSJitInfo::Getter,
   31817             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31818             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31819             :   false,  /* isInfallible. False in setters. */
   31820             :   false,  /* isMovable.  Not relevant for setters. */
   31821             :   false, /* isEliminatable.  Not relevant for setters. */
   31822             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31823             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31824             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31825             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31826             : };
   31827             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31828             : static_assert(0 < 1, "There is no slot for us");
   31829             : static const JSJitInfo overflow_setterinfo = {
   31830             :   { (JSJitGetterOp)set_overflow },
   31831             :   { prototypes::id::CSS2Properties },
   31832             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31833             :   JSJitInfo::Setter,
   31834             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31835             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31836             :   false,  /* isInfallible. False in setters. */
   31837             :   false,  /* isMovable.  Not relevant for setters. */
   31838             :   false, /* isEliminatable.  Not relevant for setters. */
   31839             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31840             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31841             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31842             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31843             : };
   31844             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31845             : static_assert(0 < 1, "There is no slot for us");
   31846             : 
   31847             : static bool
   31848           0 : get_overflowClipBox(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31849             : {
   31850           0 :   binding_detail::FastErrorResult rv;
   31851           0 :   DOMString result;
   31852           0 :   self->GetOverflowClipBox(result, rv);
   31853           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31854           0 :     return false;
   31855             :   }
   31856           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31857           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31858           0 :     return false;
   31859             :   }
   31860           0 :   return true;
   31861             : }
   31862             : 
   31863             : static bool
   31864           0 : set_overflowClipBox(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31865             : {
   31866           0 :   binding_detail::FakeString arg0;
   31867           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31868           0 :     return false;
   31869             :   }
   31870           0 :   binding_detail::FastErrorResult rv;
   31871           0 :   self->SetOverflowClipBox(NonNullHelper(Constify(arg0)), rv);
   31872           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31873           0 :     return false;
   31874             :   }
   31875           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31876             : 
   31877           0 :   return true;
   31878             : }
   31879             : 
   31880             : static const JSJitInfo overflowClipBox_getterinfo = {
   31881             :   { (JSJitGetterOp)get_overflowClipBox },
   31882             :   { prototypes::id::CSS2Properties },
   31883             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31884             :   JSJitInfo::Getter,
   31885             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31886             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31887             :   false,  /* isInfallible. False in setters. */
   31888             :   false,  /* isMovable.  Not relevant for setters. */
   31889             :   false, /* isEliminatable.  Not relevant for setters. */
   31890             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31891             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31892             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31893             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31894             : };
   31895             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31896             : static_assert(0 < 1, "There is no slot for us");
   31897             : static const JSJitInfo overflowClipBox_setterinfo = {
   31898             :   { (JSJitGetterOp)set_overflowClipBox },
   31899             :   { prototypes::id::CSS2Properties },
   31900             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31901             :   JSJitInfo::Setter,
   31902             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31903             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31904             :   false,  /* isInfallible. False in setters. */
   31905             :   false,  /* isMovable.  Not relevant for setters. */
   31906             :   false, /* isEliminatable.  Not relevant for setters. */
   31907             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31908             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31909             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31910             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31911             : };
   31912             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31913             : static_assert(0 < 1, "There is no slot for us");
   31914             : 
   31915             : static bool
   31916           0 : get_overflow_clip_box(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31917             : {
   31918           0 :   binding_detail::FastErrorResult rv;
   31919           0 :   DOMString result;
   31920           0 :   self->GetOverflowClipBox(result, rv);
   31921           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31922           0 :     return false;
   31923             :   }
   31924           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31925           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31926           0 :     return false;
   31927             :   }
   31928           0 :   return true;
   31929             : }
   31930             : 
   31931             : static bool
   31932           0 : set_overflow_clip_box(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   31933             : {
   31934           0 :   binding_detail::FakeString arg0;
   31935           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   31936           0 :     return false;
   31937             :   }
   31938           0 :   binding_detail::FastErrorResult rv;
   31939           0 :   self->SetOverflowClipBox(NonNullHelper(Constify(arg0)), rv);
   31940           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31941           0 :     return false;
   31942             :   }
   31943           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31944             : 
   31945           0 :   return true;
   31946             : }
   31947             : 
   31948             : static const JSJitInfo overflow_clip_box_getterinfo = {
   31949             :   { (JSJitGetterOp)get_overflow_clip_box },
   31950             :   { prototypes::id::CSS2Properties },
   31951             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31952             :   JSJitInfo::Getter,
   31953             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31954             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   31955             :   false,  /* isInfallible. False in setters. */
   31956             :   false,  /* isMovable.  Not relevant for setters. */
   31957             :   false, /* isEliminatable.  Not relevant for setters. */
   31958             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31959             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31960             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31961             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31962             : };
   31963             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31964             : static_assert(0 < 1, "There is no slot for us");
   31965             : static const JSJitInfo overflow_clip_box_setterinfo = {
   31966             :   { (JSJitGetterOp)set_overflow_clip_box },
   31967             :   { prototypes::id::CSS2Properties },
   31968             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   31969             :   JSJitInfo::Setter,
   31970             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   31971             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   31972             :   false,  /* isInfallible. False in setters. */
   31973             :   false,  /* isMovable.  Not relevant for setters. */
   31974             :   false, /* isEliminatable.  Not relevant for setters. */
   31975             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   31976             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   31977             :   false,  /* isTypedMethod.  Only relevant for methods. */
   31978             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   31979             : };
   31980             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   31981             : static_assert(0 < 1, "There is no slot for us");
   31982             : 
   31983             : static bool
   31984           0 : get_overflowX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   31985             : {
   31986           0 :   binding_detail::FastErrorResult rv;
   31987           0 :   DOMString result;
   31988           0 :   self->GetOverflowX(result, rv);
   31989           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   31990           0 :     return false;
   31991             :   }
   31992           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   31993           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   31994           0 :     return false;
   31995             :   }
   31996           0 :   return true;
   31997             : }
   31998             : 
   31999             : static bool
   32000           0 : set_overflowX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32001             : {
   32002           0 :   binding_detail::FakeString arg0;
   32003           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32004           0 :     return false;
   32005             :   }
   32006           0 :   binding_detail::FastErrorResult rv;
   32007           0 :   self->SetOverflowX(NonNullHelper(Constify(arg0)), rv);
   32008           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32009           0 :     return false;
   32010             :   }
   32011           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32012             : 
   32013           0 :   return true;
   32014             : }
   32015             : 
   32016             : static const JSJitInfo overflowX_getterinfo = {
   32017             :   { (JSJitGetterOp)get_overflowX },
   32018             :   { prototypes::id::CSS2Properties },
   32019             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32020             :   JSJitInfo::Getter,
   32021             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32022             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32023             :   false,  /* isInfallible. False in setters. */
   32024             :   false,  /* isMovable.  Not relevant for setters. */
   32025             :   false, /* isEliminatable.  Not relevant for setters. */
   32026             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32027             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32028             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32029             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32030             : };
   32031             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32032             : static_assert(0 < 1, "There is no slot for us");
   32033             : static const JSJitInfo overflowX_setterinfo = {
   32034             :   { (JSJitGetterOp)set_overflowX },
   32035             :   { prototypes::id::CSS2Properties },
   32036             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32037             :   JSJitInfo::Setter,
   32038             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32039             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32040             :   false,  /* isInfallible. False in setters. */
   32041             :   false,  /* isMovable.  Not relevant for setters. */
   32042             :   false, /* isEliminatable.  Not relevant for setters. */
   32043             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32044             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32045             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32046             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32047             : };
   32048             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32049             : static_assert(0 < 1, "There is no slot for us");
   32050             : 
   32051             : static bool
   32052           0 : get_overflow_x(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32053             : {
   32054           0 :   binding_detail::FastErrorResult rv;
   32055           0 :   DOMString result;
   32056           0 :   self->GetOverflowX(result, rv);
   32057           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32058           0 :     return false;
   32059             :   }
   32060           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32061           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32062           0 :     return false;
   32063             :   }
   32064           0 :   return true;
   32065             : }
   32066             : 
   32067             : static bool
   32068           0 : set_overflow_x(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32069             : {
   32070           0 :   binding_detail::FakeString arg0;
   32071           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32072           0 :     return false;
   32073             :   }
   32074           0 :   binding_detail::FastErrorResult rv;
   32075           0 :   self->SetOverflowX(NonNullHelper(Constify(arg0)), rv);
   32076           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32077           0 :     return false;
   32078             :   }
   32079           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32080             : 
   32081           0 :   return true;
   32082             : }
   32083             : 
   32084             : static const JSJitInfo overflow_x_getterinfo = {
   32085             :   { (JSJitGetterOp)get_overflow_x },
   32086             :   { prototypes::id::CSS2Properties },
   32087             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32088             :   JSJitInfo::Getter,
   32089             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32090             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32091             :   false,  /* isInfallible. False in setters. */
   32092             :   false,  /* isMovable.  Not relevant for setters. */
   32093             :   false, /* isEliminatable.  Not relevant for setters. */
   32094             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32095             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32096             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32097             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32098             : };
   32099             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32100             : static_assert(0 < 1, "There is no slot for us");
   32101             : static const JSJitInfo overflow_x_setterinfo = {
   32102             :   { (JSJitGetterOp)set_overflow_x },
   32103             :   { prototypes::id::CSS2Properties },
   32104             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32105             :   JSJitInfo::Setter,
   32106             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32107             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32108             :   false,  /* isInfallible. False in setters. */
   32109             :   false,  /* isMovable.  Not relevant for setters. */
   32110             :   false, /* isEliminatable.  Not relevant for setters. */
   32111             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32112             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32113             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32114             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32115             : };
   32116             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32117             : static_assert(0 < 1, "There is no slot for us");
   32118             : 
   32119             : static bool
   32120           0 : get_overflowY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32121             : {
   32122           0 :   binding_detail::FastErrorResult rv;
   32123           0 :   DOMString result;
   32124           0 :   self->GetOverflowY(result, rv);
   32125           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32126           0 :     return false;
   32127             :   }
   32128           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32129           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32130           0 :     return false;
   32131             :   }
   32132           0 :   return true;
   32133             : }
   32134             : 
   32135             : static bool
   32136           0 : set_overflowY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32137             : {
   32138           0 :   binding_detail::FakeString arg0;
   32139           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32140           0 :     return false;
   32141             :   }
   32142           0 :   binding_detail::FastErrorResult rv;
   32143           0 :   self->SetOverflowY(NonNullHelper(Constify(arg0)), rv);
   32144           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32145           0 :     return false;
   32146             :   }
   32147           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32148             : 
   32149           0 :   return true;
   32150             : }
   32151             : 
   32152             : static const JSJitInfo overflowY_getterinfo = {
   32153             :   { (JSJitGetterOp)get_overflowY },
   32154             :   { prototypes::id::CSS2Properties },
   32155             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32156             :   JSJitInfo::Getter,
   32157             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32158             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32159             :   false,  /* isInfallible. False in setters. */
   32160             :   false,  /* isMovable.  Not relevant for setters. */
   32161             :   false, /* isEliminatable.  Not relevant for setters. */
   32162             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32163             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32164             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32165             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32166             : };
   32167             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32168             : static_assert(0 < 1, "There is no slot for us");
   32169             : static const JSJitInfo overflowY_setterinfo = {
   32170             :   { (JSJitGetterOp)set_overflowY },
   32171             :   { prototypes::id::CSS2Properties },
   32172             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32173             :   JSJitInfo::Setter,
   32174             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32175             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32176             :   false,  /* isInfallible. False in setters. */
   32177             :   false,  /* isMovable.  Not relevant for setters. */
   32178             :   false, /* isEliminatable.  Not relevant for setters. */
   32179             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32180             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32181             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32182             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32183             : };
   32184             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32185             : static_assert(0 < 1, "There is no slot for us");
   32186             : 
   32187             : static bool
   32188           0 : get_overflow_y(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32189             : {
   32190           0 :   binding_detail::FastErrorResult rv;
   32191           0 :   DOMString result;
   32192           0 :   self->GetOverflowY(result, rv);
   32193           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32194           0 :     return false;
   32195             :   }
   32196           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32197           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32198           0 :     return false;
   32199             :   }
   32200           0 :   return true;
   32201             : }
   32202             : 
   32203             : static bool
   32204           0 : set_overflow_y(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32205             : {
   32206           0 :   binding_detail::FakeString arg0;
   32207           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32208           0 :     return false;
   32209             :   }
   32210           0 :   binding_detail::FastErrorResult rv;
   32211           0 :   self->SetOverflowY(NonNullHelper(Constify(arg0)), rv);
   32212           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32213           0 :     return false;
   32214             :   }
   32215           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32216             : 
   32217           0 :   return true;
   32218             : }
   32219             : 
   32220             : static const JSJitInfo overflow_y_getterinfo = {
   32221             :   { (JSJitGetterOp)get_overflow_y },
   32222             :   { prototypes::id::CSS2Properties },
   32223             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32224             :   JSJitInfo::Getter,
   32225             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32226             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32227             :   false,  /* isInfallible. False in setters. */
   32228             :   false,  /* isMovable.  Not relevant for setters. */
   32229             :   false, /* isEliminatable.  Not relevant for setters. */
   32230             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32231             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32232             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32233             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32234             : };
   32235             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32236             : static_assert(0 < 1, "There is no slot for us");
   32237             : static const JSJitInfo overflow_y_setterinfo = {
   32238             :   { (JSJitGetterOp)set_overflow_y },
   32239             :   { prototypes::id::CSS2Properties },
   32240             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32241             :   JSJitInfo::Setter,
   32242             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32243             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32244             :   false,  /* isInfallible. False in setters. */
   32245             :   false,  /* isMovable.  Not relevant for setters. */
   32246             :   false, /* isEliminatable.  Not relevant for setters. */
   32247             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32248             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32249             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32250             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32251             : };
   32252             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32253             : static_assert(0 < 1, "There is no slot for us");
   32254             : 
   32255             : static bool
   32256           0 : get_padding(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32257             : {
   32258           0 :   binding_detail::FastErrorResult rv;
   32259           0 :   DOMString result;
   32260           0 :   self->GetPadding(result, rv);
   32261           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32262           0 :     return false;
   32263             :   }
   32264           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32265           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32266           0 :     return false;
   32267             :   }
   32268           0 :   return true;
   32269             : }
   32270             : 
   32271             : static bool
   32272           0 : set_padding(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32273             : {
   32274           0 :   binding_detail::FakeString arg0;
   32275           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32276           0 :     return false;
   32277             :   }
   32278           0 :   binding_detail::FastErrorResult rv;
   32279           0 :   self->SetPadding(NonNullHelper(Constify(arg0)), rv);
   32280           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32281           0 :     return false;
   32282             :   }
   32283           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32284             : 
   32285           0 :   return true;
   32286             : }
   32287             : 
   32288             : static const JSJitInfo padding_getterinfo = {
   32289             :   { (JSJitGetterOp)get_padding },
   32290             :   { prototypes::id::CSS2Properties },
   32291             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32292             :   JSJitInfo::Getter,
   32293             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32294             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32295             :   false,  /* isInfallible. False in setters. */
   32296             :   false,  /* isMovable.  Not relevant for setters. */
   32297             :   false, /* isEliminatable.  Not relevant for setters. */
   32298             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32299             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32300             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32301             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32302             : };
   32303             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32304             : static_assert(0 < 1, "There is no slot for us");
   32305             : static const JSJitInfo padding_setterinfo = {
   32306             :   { (JSJitGetterOp)set_padding },
   32307             :   { prototypes::id::CSS2Properties },
   32308             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32309             :   JSJitInfo::Setter,
   32310             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32311             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32312             :   false,  /* isInfallible. False in setters. */
   32313             :   false,  /* isMovable.  Not relevant for setters. */
   32314             :   false, /* isEliminatable.  Not relevant for setters. */
   32315             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32316             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32317             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32318             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32319             : };
   32320             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32321             : static_assert(0 < 1, "There is no slot for us");
   32322             : 
   32323             : static bool
   32324           0 : get_paddingBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32325             : {
   32326           0 :   binding_detail::FastErrorResult rv;
   32327           0 :   DOMString result;
   32328           0 :   self->GetPaddingBlockEnd(result, rv);
   32329           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32330           0 :     return false;
   32331             :   }
   32332           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32333           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32334           0 :     return false;
   32335             :   }
   32336           0 :   return true;
   32337             : }
   32338             : 
   32339             : static bool
   32340           0 : set_paddingBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32341             : {
   32342           0 :   binding_detail::FakeString arg0;
   32343           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32344           0 :     return false;
   32345             :   }
   32346           0 :   binding_detail::FastErrorResult rv;
   32347           0 :   self->SetPaddingBlockEnd(NonNullHelper(Constify(arg0)), rv);
   32348           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32349           0 :     return false;
   32350             :   }
   32351           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32352             : 
   32353           0 :   return true;
   32354             : }
   32355             : 
   32356             : static const JSJitInfo paddingBlockEnd_getterinfo = {
   32357             :   { (JSJitGetterOp)get_paddingBlockEnd },
   32358             :   { prototypes::id::CSS2Properties },
   32359             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32360             :   JSJitInfo::Getter,
   32361             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32362             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32363             :   false,  /* isInfallible. False in setters. */
   32364             :   false,  /* isMovable.  Not relevant for setters. */
   32365             :   false, /* isEliminatable.  Not relevant for setters. */
   32366             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32367             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32368             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32369             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32370             : };
   32371             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32372             : static_assert(0 < 1, "There is no slot for us");
   32373             : static const JSJitInfo paddingBlockEnd_setterinfo = {
   32374             :   { (JSJitGetterOp)set_paddingBlockEnd },
   32375             :   { prototypes::id::CSS2Properties },
   32376             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32377             :   JSJitInfo::Setter,
   32378             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32379             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32380             :   false,  /* isInfallible. False in setters. */
   32381             :   false,  /* isMovable.  Not relevant for setters. */
   32382             :   false, /* isEliminatable.  Not relevant for setters. */
   32383             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32384             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32385             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32386             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32387             : };
   32388             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32389             : static_assert(0 < 1, "There is no slot for us");
   32390             : 
   32391             : static bool
   32392           0 : get_padding_block_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32393             : {
   32394           0 :   binding_detail::FastErrorResult rv;
   32395           0 :   DOMString result;
   32396           0 :   self->GetPaddingBlockEnd(result, rv);
   32397           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32398           0 :     return false;
   32399             :   }
   32400           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32401           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32402           0 :     return false;
   32403             :   }
   32404           0 :   return true;
   32405             : }
   32406             : 
   32407             : static bool
   32408           0 : set_padding_block_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32409             : {
   32410           0 :   binding_detail::FakeString arg0;
   32411           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32412           0 :     return false;
   32413             :   }
   32414           0 :   binding_detail::FastErrorResult rv;
   32415           0 :   self->SetPaddingBlockEnd(NonNullHelper(Constify(arg0)), rv);
   32416           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32417           0 :     return false;
   32418             :   }
   32419           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32420             : 
   32421           0 :   return true;
   32422             : }
   32423             : 
   32424             : static const JSJitInfo padding_block_end_getterinfo = {
   32425             :   { (JSJitGetterOp)get_padding_block_end },
   32426             :   { prototypes::id::CSS2Properties },
   32427             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32428             :   JSJitInfo::Getter,
   32429             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32430             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32431             :   false,  /* isInfallible. False in setters. */
   32432             :   false,  /* isMovable.  Not relevant for setters. */
   32433             :   false, /* isEliminatable.  Not relevant for setters. */
   32434             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32435             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32436             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32437             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32438             : };
   32439             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32440             : static_assert(0 < 1, "There is no slot for us");
   32441             : static const JSJitInfo padding_block_end_setterinfo = {
   32442             :   { (JSJitGetterOp)set_padding_block_end },
   32443             :   { prototypes::id::CSS2Properties },
   32444             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32445             :   JSJitInfo::Setter,
   32446             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32447             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32448             :   false,  /* isInfallible. False in setters. */
   32449             :   false,  /* isMovable.  Not relevant for setters. */
   32450             :   false, /* isEliminatable.  Not relevant for setters. */
   32451             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32452             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32453             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32454             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32455             : };
   32456             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32457             : static_assert(0 < 1, "There is no slot for us");
   32458             : 
   32459             : static bool
   32460           0 : get_paddingBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32461             : {
   32462           0 :   binding_detail::FastErrorResult rv;
   32463           0 :   DOMString result;
   32464           0 :   self->GetPaddingBlockStart(result, rv);
   32465           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32466           0 :     return false;
   32467             :   }
   32468           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32469           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32470           0 :     return false;
   32471             :   }
   32472           0 :   return true;
   32473             : }
   32474             : 
   32475             : static bool
   32476           0 : set_paddingBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32477             : {
   32478           0 :   binding_detail::FakeString arg0;
   32479           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32480           0 :     return false;
   32481             :   }
   32482           0 :   binding_detail::FastErrorResult rv;
   32483           0 :   self->SetPaddingBlockStart(NonNullHelper(Constify(arg0)), rv);
   32484           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32485           0 :     return false;
   32486             :   }
   32487           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32488             : 
   32489           0 :   return true;
   32490             : }
   32491             : 
   32492             : static const JSJitInfo paddingBlockStart_getterinfo = {
   32493             :   { (JSJitGetterOp)get_paddingBlockStart },
   32494             :   { prototypes::id::CSS2Properties },
   32495             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32496             :   JSJitInfo::Getter,
   32497             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32498             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32499             :   false,  /* isInfallible. False in setters. */
   32500             :   false,  /* isMovable.  Not relevant for setters. */
   32501             :   false, /* isEliminatable.  Not relevant for setters. */
   32502             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32503             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32504             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32505             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32506             : };
   32507             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32508             : static_assert(0 < 1, "There is no slot for us");
   32509             : static const JSJitInfo paddingBlockStart_setterinfo = {
   32510             :   { (JSJitGetterOp)set_paddingBlockStart },
   32511             :   { prototypes::id::CSS2Properties },
   32512             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32513             :   JSJitInfo::Setter,
   32514             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32515             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32516             :   false,  /* isInfallible. False in setters. */
   32517             :   false,  /* isMovable.  Not relevant for setters. */
   32518             :   false, /* isEliminatable.  Not relevant for setters. */
   32519             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32520             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32521             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32522             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32523             : };
   32524             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32525             : static_assert(0 < 1, "There is no slot for us");
   32526             : 
   32527             : static bool
   32528           0 : get_padding_block_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32529             : {
   32530           0 :   binding_detail::FastErrorResult rv;
   32531           0 :   DOMString result;
   32532           0 :   self->GetPaddingBlockStart(result, rv);
   32533           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32534           0 :     return false;
   32535             :   }
   32536           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32537           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32538           0 :     return false;
   32539             :   }
   32540           0 :   return true;
   32541             : }
   32542             : 
   32543             : static bool
   32544           0 : set_padding_block_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32545             : {
   32546           0 :   binding_detail::FakeString arg0;
   32547           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32548           0 :     return false;
   32549             :   }
   32550           0 :   binding_detail::FastErrorResult rv;
   32551           0 :   self->SetPaddingBlockStart(NonNullHelper(Constify(arg0)), rv);
   32552           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32553           0 :     return false;
   32554             :   }
   32555           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32556             : 
   32557           0 :   return true;
   32558             : }
   32559             : 
   32560             : static const JSJitInfo padding_block_start_getterinfo = {
   32561             :   { (JSJitGetterOp)get_padding_block_start },
   32562             :   { prototypes::id::CSS2Properties },
   32563             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32564             :   JSJitInfo::Getter,
   32565             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32566             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32567             :   false,  /* isInfallible. False in setters. */
   32568             :   false,  /* isMovable.  Not relevant for setters. */
   32569             :   false, /* isEliminatable.  Not relevant for setters. */
   32570             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32571             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32572             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32573             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32574             : };
   32575             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32576             : static_assert(0 < 1, "There is no slot for us");
   32577             : static const JSJitInfo padding_block_start_setterinfo = {
   32578             :   { (JSJitGetterOp)set_padding_block_start },
   32579             :   { prototypes::id::CSS2Properties },
   32580             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32581             :   JSJitInfo::Setter,
   32582             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32583             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32584             :   false,  /* isInfallible. False in setters. */
   32585             :   false,  /* isMovable.  Not relevant for setters. */
   32586             :   false, /* isEliminatable.  Not relevant for setters. */
   32587             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32588             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32589             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32590             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32591             : };
   32592             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32593             : static_assert(0 < 1, "There is no slot for us");
   32594             : 
   32595             : static bool
   32596           0 : get_paddingBottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32597             : {
   32598           0 :   binding_detail::FastErrorResult rv;
   32599           0 :   DOMString result;
   32600           0 :   self->GetPaddingBottom(result, rv);
   32601           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32602           0 :     return false;
   32603             :   }
   32604           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32605           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32606           0 :     return false;
   32607             :   }
   32608           0 :   return true;
   32609             : }
   32610             : 
   32611             : static bool
   32612           0 : set_paddingBottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32613             : {
   32614           0 :   binding_detail::FakeString arg0;
   32615           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32616           0 :     return false;
   32617             :   }
   32618           0 :   binding_detail::FastErrorResult rv;
   32619           0 :   self->SetPaddingBottom(NonNullHelper(Constify(arg0)), rv);
   32620           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32621           0 :     return false;
   32622             :   }
   32623           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32624             : 
   32625           0 :   return true;
   32626             : }
   32627             : 
   32628             : static const JSJitInfo paddingBottom_getterinfo = {
   32629             :   { (JSJitGetterOp)get_paddingBottom },
   32630             :   { prototypes::id::CSS2Properties },
   32631             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32632             :   JSJitInfo::Getter,
   32633             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32634             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32635             :   false,  /* isInfallible. False in setters. */
   32636             :   false,  /* isMovable.  Not relevant for setters. */
   32637             :   false, /* isEliminatable.  Not relevant for setters. */
   32638             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32639             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32640             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32641             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32642             : };
   32643             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32644             : static_assert(0 < 1, "There is no slot for us");
   32645             : static const JSJitInfo paddingBottom_setterinfo = {
   32646             :   { (JSJitGetterOp)set_paddingBottom },
   32647             :   { prototypes::id::CSS2Properties },
   32648             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32649             :   JSJitInfo::Setter,
   32650             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32651             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32652             :   false,  /* isInfallible. False in setters. */
   32653             :   false,  /* isMovable.  Not relevant for setters. */
   32654             :   false, /* isEliminatable.  Not relevant for setters. */
   32655             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32656             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32657             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32658             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32659             : };
   32660             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32661             : static_assert(0 < 1, "There is no slot for us");
   32662             : 
   32663             : static bool
   32664           0 : get_padding_bottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32665             : {
   32666           0 :   binding_detail::FastErrorResult rv;
   32667           0 :   DOMString result;
   32668           0 :   self->GetPaddingBottom(result, rv);
   32669           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32670           0 :     return false;
   32671             :   }
   32672           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32673           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32674           0 :     return false;
   32675             :   }
   32676           0 :   return true;
   32677             : }
   32678             : 
   32679             : static bool
   32680           0 : set_padding_bottom(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32681             : {
   32682           0 :   binding_detail::FakeString arg0;
   32683           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32684           0 :     return false;
   32685             :   }
   32686           0 :   binding_detail::FastErrorResult rv;
   32687           0 :   self->SetPaddingBottom(NonNullHelper(Constify(arg0)), rv);
   32688           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32689           0 :     return false;
   32690             :   }
   32691           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32692             : 
   32693           0 :   return true;
   32694             : }
   32695             : 
   32696             : static const JSJitInfo padding_bottom_getterinfo = {
   32697             :   { (JSJitGetterOp)get_padding_bottom },
   32698             :   { prototypes::id::CSS2Properties },
   32699             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32700             :   JSJitInfo::Getter,
   32701             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32702             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32703             :   false,  /* isInfallible. False in setters. */
   32704             :   false,  /* isMovable.  Not relevant for setters. */
   32705             :   false, /* isEliminatable.  Not relevant for setters. */
   32706             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32707             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32708             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32709             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32710             : };
   32711             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32712             : static_assert(0 < 1, "There is no slot for us");
   32713             : static const JSJitInfo padding_bottom_setterinfo = {
   32714             :   { (JSJitGetterOp)set_padding_bottom },
   32715             :   { prototypes::id::CSS2Properties },
   32716             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32717             :   JSJitInfo::Setter,
   32718             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32719             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32720             :   false,  /* isInfallible. False in setters. */
   32721             :   false,  /* isMovable.  Not relevant for setters. */
   32722             :   false, /* isEliminatable.  Not relevant for setters. */
   32723             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32724             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32725             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32726             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32727             : };
   32728             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32729             : static_assert(0 < 1, "There is no slot for us");
   32730             : 
   32731             : static bool
   32732           0 : get_paddingInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32733             : {
   32734           0 :   binding_detail::FastErrorResult rv;
   32735           0 :   DOMString result;
   32736           0 :   self->GetPaddingInlineEnd(result, rv);
   32737           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32738           0 :     return false;
   32739             :   }
   32740           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32741           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32742           0 :     return false;
   32743             :   }
   32744           0 :   return true;
   32745             : }
   32746             : 
   32747             : static bool
   32748           0 : set_paddingInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32749             : {
   32750           0 :   binding_detail::FakeString arg0;
   32751           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32752           0 :     return false;
   32753             :   }
   32754           0 :   binding_detail::FastErrorResult rv;
   32755           0 :   self->SetPaddingInlineEnd(NonNullHelper(Constify(arg0)), rv);
   32756           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32757           0 :     return false;
   32758             :   }
   32759           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32760             : 
   32761           0 :   return true;
   32762             : }
   32763             : 
   32764             : static const JSJitInfo paddingInlineEnd_getterinfo = {
   32765             :   { (JSJitGetterOp)get_paddingInlineEnd },
   32766             :   { prototypes::id::CSS2Properties },
   32767             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32768             :   JSJitInfo::Getter,
   32769             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32770             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32771             :   false,  /* isInfallible. False in setters. */
   32772             :   false,  /* isMovable.  Not relevant for setters. */
   32773             :   false, /* isEliminatable.  Not relevant for setters. */
   32774             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32775             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32776             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32777             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32778             : };
   32779             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32780             : static_assert(0 < 1, "There is no slot for us");
   32781             : static const JSJitInfo paddingInlineEnd_setterinfo = {
   32782             :   { (JSJitGetterOp)set_paddingInlineEnd },
   32783             :   { prototypes::id::CSS2Properties },
   32784             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32785             :   JSJitInfo::Setter,
   32786             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32787             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32788             :   false,  /* isInfallible. False in setters. */
   32789             :   false,  /* isMovable.  Not relevant for setters. */
   32790             :   false, /* isEliminatable.  Not relevant for setters. */
   32791             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32792             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32793             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32794             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32795             : };
   32796             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32797             : static_assert(0 < 1, "There is no slot for us");
   32798             : 
   32799             : static bool
   32800           0 : get_padding_inline_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32801             : {
   32802           0 :   binding_detail::FastErrorResult rv;
   32803           0 :   DOMString result;
   32804           0 :   self->GetPaddingInlineEnd(result, rv);
   32805           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32806           0 :     return false;
   32807             :   }
   32808           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32809           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32810           0 :     return false;
   32811             :   }
   32812           0 :   return true;
   32813             : }
   32814             : 
   32815             : static bool
   32816           0 : set_padding_inline_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32817             : {
   32818           0 :   binding_detail::FakeString arg0;
   32819           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32820           0 :     return false;
   32821             :   }
   32822           0 :   binding_detail::FastErrorResult rv;
   32823           0 :   self->SetPaddingInlineEnd(NonNullHelper(Constify(arg0)), rv);
   32824           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32825           0 :     return false;
   32826             :   }
   32827           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32828             : 
   32829           0 :   return true;
   32830             : }
   32831             : 
   32832             : static const JSJitInfo padding_inline_end_getterinfo = {
   32833             :   { (JSJitGetterOp)get_padding_inline_end },
   32834             :   { prototypes::id::CSS2Properties },
   32835             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32836             :   JSJitInfo::Getter,
   32837             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32838             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32839             :   false,  /* isInfallible. False in setters. */
   32840             :   false,  /* isMovable.  Not relevant for setters. */
   32841             :   false, /* isEliminatable.  Not relevant for setters. */
   32842             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32843             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32844             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32845             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32846             : };
   32847             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32848             : static_assert(0 < 1, "There is no slot for us");
   32849             : static const JSJitInfo padding_inline_end_setterinfo = {
   32850             :   { (JSJitGetterOp)set_padding_inline_end },
   32851             :   { prototypes::id::CSS2Properties },
   32852             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32853             :   JSJitInfo::Setter,
   32854             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32855             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32856             :   false,  /* isInfallible. False in setters. */
   32857             :   false,  /* isMovable.  Not relevant for setters. */
   32858             :   false, /* isEliminatable.  Not relevant for setters. */
   32859             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32860             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32861             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32862             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32863             : };
   32864             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32865             : static_assert(0 < 1, "There is no slot for us");
   32866             : 
   32867             : static bool
   32868           0 : get_paddingInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32869             : {
   32870           0 :   binding_detail::FastErrorResult rv;
   32871           0 :   DOMString result;
   32872           0 :   self->GetPaddingInlineStart(result, rv);
   32873           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32874           0 :     return false;
   32875             :   }
   32876           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32877           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32878           0 :     return false;
   32879             :   }
   32880           0 :   return true;
   32881             : }
   32882             : 
   32883             : static bool
   32884           0 : set_paddingInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32885             : {
   32886           0 :   binding_detail::FakeString arg0;
   32887           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32888           0 :     return false;
   32889             :   }
   32890           0 :   binding_detail::FastErrorResult rv;
   32891           0 :   self->SetPaddingInlineStart(NonNullHelper(Constify(arg0)), rv);
   32892           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32893           0 :     return false;
   32894             :   }
   32895           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32896             : 
   32897           0 :   return true;
   32898             : }
   32899             : 
   32900             : static const JSJitInfo paddingInlineStart_getterinfo = {
   32901             :   { (JSJitGetterOp)get_paddingInlineStart },
   32902             :   { prototypes::id::CSS2Properties },
   32903             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32904             :   JSJitInfo::Getter,
   32905             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32906             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32907             :   false,  /* isInfallible. False in setters. */
   32908             :   false,  /* isMovable.  Not relevant for setters. */
   32909             :   false, /* isEliminatable.  Not relevant for setters. */
   32910             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32911             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32912             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32913             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32914             : };
   32915             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32916             : static_assert(0 < 1, "There is no slot for us");
   32917             : static const JSJitInfo paddingInlineStart_setterinfo = {
   32918             :   { (JSJitGetterOp)set_paddingInlineStart },
   32919             :   { prototypes::id::CSS2Properties },
   32920             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32921             :   JSJitInfo::Setter,
   32922             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32923             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32924             :   false,  /* isInfallible. False in setters. */
   32925             :   false,  /* isMovable.  Not relevant for setters. */
   32926             :   false, /* isEliminatable.  Not relevant for setters. */
   32927             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32928             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32929             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32930             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32931             : };
   32932             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32933             : static_assert(0 < 1, "There is no slot for us");
   32934             : 
   32935             : static bool
   32936           0 : get_padding_inline_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   32937             : {
   32938           0 :   binding_detail::FastErrorResult rv;
   32939           0 :   DOMString result;
   32940           0 :   self->GetPaddingInlineStart(result, rv);
   32941           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32942           0 :     return false;
   32943             :   }
   32944           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32945           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   32946           0 :     return false;
   32947             :   }
   32948           0 :   return true;
   32949             : }
   32950             : 
   32951             : static bool
   32952           0 : set_padding_inline_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   32953             : {
   32954           0 :   binding_detail::FakeString arg0;
   32955           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   32956           0 :     return false;
   32957             :   }
   32958           0 :   binding_detail::FastErrorResult rv;
   32959           0 :   self->SetPaddingInlineStart(NonNullHelper(Constify(arg0)), rv);
   32960           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   32961           0 :     return false;
   32962             :   }
   32963           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   32964             : 
   32965           0 :   return true;
   32966             : }
   32967             : 
   32968             : static const JSJitInfo padding_inline_start_getterinfo = {
   32969             :   { (JSJitGetterOp)get_padding_inline_start },
   32970             :   { prototypes::id::CSS2Properties },
   32971             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32972             :   JSJitInfo::Getter,
   32973             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32974             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   32975             :   false,  /* isInfallible. False in setters. */
   32976             :   false,  /* isMovable.  Not relevant for setters. */
   32977             :   false, /* isEliminatable.  Not relevant for setters. */
   32978             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32979             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32980             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32981             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32982             : };
   32983             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   32984             : static_assert(0 < 1, "There is no slot for us");
   32985             : static const JSJitInfo padding_inline_start_setterinfo = {
   32986             :   { (JSJitGetterOp)set_padding_inline_start },
   32987             :   { prototypes::id::CSS2Properties },
   32988             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   32989             :   JSJitInfo::Setter,
   32990             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   32991             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   32992             :   false,  /* isInfallible. False in setters. */
   32993             :   false,  /* isMovable.  Not relevant for setters. */
   32994             :   false, /* isEliminatable.  Not relevant for setters. */
   32995             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   32996             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   32997             :   false,  /* isTypedMethod.  Only relevant for methods. */
   32998             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   32999             : };
   33000             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33001             : static_assert(0 < 1, "There is no slot for us");
   33002             : 
   33003             : static bool
   33004           0 : get_paddingLeft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33005             : {
   33006           0 :   binding_detail::FastErrorResult rv;
   33007           0 :   DOMString result;
   33008           0 :   self->GetPaddingLeft(result, rv);
   33009           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33010           0 :     return false;
   33011             :   }
   33012           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33013           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33014           0 :     return false;
   33015             :   }
   33016           0 :   return true;
   33017             : }
   33018             : 
   33019             : static bool
   33020           0 : set_paddingLeft(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33021             : {
   33022           0 :   binding_detail::FakeString arg0;
   33023           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33024           0 :     return false;
   33025             :   }
   33026           0 :   binding_detail::FastErrorResult rv;
   33027           0 :   self->SetPaddingLeft(NonNullHelper(Constify(arg0)), rv);
   33028           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33029           0 :     return false;
   33030             :   }
   33031           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33032             : 
   33033           0 :   return true;
   33034             : }
   33035             : 
   33036             : static const JSJitInfo paddingLeft_getterinfo = {
   33037             :   { (JSJitGetterOp)get_paddingLeft },
   33038             :   { prototypes::id::CSS2Properties },
   33039             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33040             :   JSJitInfo::Getter,
   33041             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33042             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33043             :   false,  /* isInfallible. False in setters. */
   33044             :   false,  /* isMovable.  Not relevant for setters. */
   33045             :   false, /* isEliminatable.  Not relevant for setters. */
   33046             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33047             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33048             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33049             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33050             : };
   33051             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33052             : static_assert(0 < 1, "There is no slot for us");
   33053             : static const JSJitInfo paddingLeft_setterinfo = {
   33054             :   { (JSJitGetterOp)set_paddingLeft },
   33055             :   { prototypes::id::CSS2Properties },
   33056             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33057             :   JSJitInfo::Setter,
   33058             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33059             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33060             :   false,  /* isInfallible. False in setters. */
   33061             :   false,  /* isMovable.  Not relevant for setters. */
   33062             :   false, /* isEliminatable.  Not relevant for setters. */
   33063             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33064             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33065             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33066             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33067             : };
   33068             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33069             : static_assert(0 < 1, "There is no slot for us");
   33070             : 
   33071             : static bool
   33072           0 : get_padding_left(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33073             : {
   33074           0 :   binding_detail::FastErrorResult rv;
   33075           0 :   DOMString result;
   33076           0 :   self->GetPaddingLeft(result, rv);
   33077           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33078           0 :     return false;
   33079             :   }
   33080           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33081           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33082           0 :     return false;
   33083             :   }
   33084           0 :   return true;
   33085             : }
   33086             : 
   33087             : static bool
   33088           0 : set_padding_left(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33089             : {
   33090           0 :   binding_detail::FakeString arg0;
   33091           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33092           0 :     return false;
   33093             :   }
   33094           0 :   binding_detail::FastErrorResult rv;
   33095           0 :   self->SetPaddingLeft(NonNullHelper(Constify(arg0)), rv);
   33096           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33097           0 :     return false;
   33098             :   }
   33099           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33100             : 
   33101           0 :   return true;
   33102             : }
   33103             : 
   33104             : static const JSJitInfo padding_left_getterinfo = {
   33105             :   { (JSJitGetterOp)get_padding_left },
   33106             :   { prototypes::id::CSS2Properties },
   33107             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33108             :   JSJitInfo::Getter,
   33109             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33110             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33111             :   false,  /* isInfallible. False in setters. */
   33112             :   false,  /* isMovable.  Not relevant for setters. */
   33113             :   false, /* isEliminatable.  Not relevant for setters. */
   33114             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33115             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33116             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33117             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33118             : };
   33119             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33120             : static_assert(0 < 1, "There is no slot for us");
   33121             : static const JSJitInfo padding_left_setterinfo = {
   33122             :   { (JSJitGetterOp)set_padding_left },
   33123             :   { prototypes::id::CSS2Properties },
   33124             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33125             :   JSJitInfo::Setter,
   33126             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33127             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33128             :   false,  /* isInfallible. False in setters. */
   33129             :   false,  /* isMovable.  Not relevant for setters. */
   33130             :   false, /* isEliminatable.  Not relevant for setters. */
   33131             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33132             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33133             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33134             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33135             : };
   33136             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33137             : static_assert(0 < 1, "There is no slot for us");
   33138             : 
   33139             : static bool
   33140           0 : get_paddingRight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33141             : {
   33142           0 :   binding_detail::FastErrorResult rv;
   33143           0 :   DOMString result;
   33144           0 :   self->GetPaddingRight(result, rv);
   33145           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33146           0 :     return false;
   33147             :   }
   33148           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33149           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33150           0 :     return false;
   33151             :   }
   33152           0 :   return true;
   33153             : }
   33154             : 
   33155             : static bool
   33156           0 : set_paddingRight(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33157             : {
   33158           0 :   binding_detail::FakeString arg0;
   33159           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33160           0 :     return false;
   33161             :   }
   33162           0 :   binding_detail::FastErrorResult rv;
   33163           0 :   self->SetPaddingRight(NonNullHelper(Constify(arg0)), rv);
   33164           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33165           0 :     return false;
   33166             :   }
   33167           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33168             : 
   33169           0 :   return true;
   33170             : }
   33171             : 
   33172             : static const JSJitInfo paddingRight_getterinfo = {
   33173             :   { (JSJitGetterOp)get_paddingRight },
   33174             :   { prototypes::id::CSS2Properties },
   33175             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33176             :   JSJitInfo::Getter,
   33177             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33178             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33179             :   false,  /* isInfallible. False in setters. */
   33180             :   false,  /* isMovable.  Not relevant for setters. */
   33181             :   false, /* isEliminatable.  Not relevant for setters. */
   33182             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33183             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33184             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33185             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33186             : };
   33187             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33188             : static_assert(0 < 1, "There is no slot for us");
   33189             : static const JSJitInfo paddingRight_setterinfo = {
   33190             :   { (JSJitGetterOp)set_paddingRight },
   33191             :   { prototypes::id::CSS2Properties },
   33192             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33193             :   JSJitInfo::Setter,
   33194             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33195             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33196             :   false,  /* isInfallible. False in setters. */
   33197             :   false,  /* isMovable.  Not relevant for setters. */
   33198             :   false, /* isEliminatable.  Not relevant for setters. */
   33199             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33200             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33201             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33202             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33203             : };
   33204             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33205             : static_assert(0 < 1, "There is no slot for us");
   33206             : 
   33207             : static bool
   33208           0 : get_padding_right(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33209             : {
   33210           0 :   binding_detail::FastErrorResult rv;
   33211           0 :   DOMString result;
   33212           0 :   self->GetPaddingRight(result, rv);
   33213           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33214           0 :     return false;
   33215             :   }
   33216           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33217           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33218           0 :     return false;
   33219             :   }
   33220           0 :   return true;
   33221             : }
   33222             : 
   33223             : static bool
   33224           0 : set_padding_right(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33225             : {
   33226           0 :   binding_detail::FakeString arg0;
   33227           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33228           0 :     return false;
   33229             :   }
   33230           0 :   binding_detail::FastErrorResult rv;
   33231           0 :   self->SetPaddingRight(NonNullHelper(Constify(arg0)), rv);
   33232           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33233           0 :     return false;
   33234             :   }
   33235           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33236             : 
   33237           0 :   return true;
   33238             : }
   33239             : 
   33240             : static const JSJitInfo padding_right_getterinfo = {
   33241             :   { (JSJitGetterOp)get_padding_right },
   33242             :   { prototypes::id::CSS2Properties },
   33243             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33244             :   JSJitInfo::Getter,
   33245             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33246             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33247             :   false,  /* isInfallible. False in setters. */
   33248             :   false,  /* isMovable.  Not relevant for setters. */
   33249             :   false, /* isEliminatable.  Not relevant for setters. */
   33250             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33251             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33252             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33253             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33254             : };
   33255             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33256             : static_assert(0 < 1, "There is no slot for us");
   33257             : static const JSJitInfo padding_right_setterinfo = {
   33258             :   { (JSJitGetterOp)set_padding_right },
   33259             :   { prototypes::id::CSS2Properties },
   33260             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33261             :   JSJitInfo::Setter,
   33262             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33263             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33264             :   false,  /* isInfallible. False in setters. */
   33265             :   false,  /* isMovable.  Not relevant for setters. */
   33266             :   false, /* isEliminatable.  Not relevant for setters. */
   33267             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33268             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33269             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33270             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33271             : };
   33272             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33273             : static_assert(0 < 1, "There is no slot for us");
   33274             : 
   33275             : static bool
   33276           0 : get_paddingTop(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33277             : {
   33278           0 :   binding_detail::FastErrorResult rv;
   33279           0 :   DOMString result;
   33280           0 :   self->GetPaddingTop(result, rv);
   33281           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33282           0 :     return false;
   33283             :   }
   33284           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33285           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33286           0 :     return false;
   33287             :   }
   33288           0 :   return true;
   33289             : }
   33290             : 
   33291             : static bool
   33292           0 : set_paddingTop(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33293             : {
   33294           0 :   binding_detail::FakeString arg0;
   33295           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33296           0 :     return false;
   33297             :   }
   33298           0 :   binding_detail::FastErrorResult rv;
   33299           0 :   self->SetPaddingTop(NonNullHelper(Constify(arg0)), rv);
   33300           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33301           0 :     return false;
   33302             :   }
   33303           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33304             : 
   33305           0 :   return true;
   33306             : }
   33307             : 
   33308             : static const JSJitInfo paddingTop_getterinfo = {
   33309             :   { (JSJitGetterOp)get_paddingTop },
   33310             :   { prototypes::id::CSS2Properties },
   33311             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33312             :   JSJitInfo::Getter,
   33313             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33314             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33315             :   false,  /* isInfallible. False in setters. */
   33316             :   false,  /* isMovable.  Not relevant for setters. */
   33317             :   false, /* isEliminatable.  Not relevant for setters. */
   33318             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33319             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33320             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33321             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33322             : };
   33323             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33324             : static_assert(0 < 1, "There is no slot for us");
   33325             : static const JSJitInfo paddingTop_setterinfo = {
   33326             :   { (JSJitGetterOp)set_paddingTop },
   33327             :   { prototypes::id::CSS2Properties },
   33328             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33329             :   JSJitInfo::Setter,
   33330             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33331             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33332             :   false,  /* isInfallible. False in setters. */
   33333             :   false,  /* isMovable.  Not relevant for setters. */
   33334             :   false, /* isEliminatable.  Not relevant for setters. */
   33335             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33336             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33337             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33338             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33339             : };
   33340             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33341             : static_assert(0 < 1, "There is no slot for us");
   33342             : 
   33343             : static bool
   33344           0 : get_padding_top(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33345             : {
   33346           0 :   binding_detail::FastErrorResult rv;
   33347           0 :   DOMString result;
   33348           0 :   self->GetPaddingTop(result, rv);
   33349           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33350           0 :     return false;
   33351             :   }
   33352           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33353           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33354           0 :     return false;
   33355             :   }
   33356           0 :   return true;
   33357             : }
   33358             : 
   33359             : static bool
   33360           0 : set_padding_top(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33361             : {
   33362           0 :   binding_detail::FakeString arg0;
   33363           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33364           0 :     return false;
   33365             :   }
   33366           0 :   binding_detail::FastErrorResult rv;
   33367           0 :   self->SetPaddingTop(NonNullHelper(Constify(arg0)), rv);
   33368           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33369           0 :     return false;
   33370             :   }
   33371           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33372             : 
   33373           0 :   return true;
   33374             : }
   33375             : 
   33376             : static const JSJitInfo padding_top_getterinfo = {
   33377             :   { (JSJitGetterOp)get_padding_top },
   33378             :   { prototypes::id::CSS2Properties },
   33379             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33380             :   JSJitInfo::Getter,
   33381             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33382             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33383             :   false,  /* isInfallible. False in setters. */
   33384             :   false,  /* isMovable.  Not relevant for setters. */
   33385             :   false, /* isEliminatable.  Not relevant for setters. */
   33386             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33387             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33388             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33389             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33390             : };
   33391             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33392             : static_assert(0 < 1, "There is no slot for us");
   33393             : static const JSJitInfo padding_top_setterinfo = {
   33394             :   { (JSJitGetterOp)set_padding_top },
   33395             :   { prototypes::id::CSS2Properties },
   33396             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33397             :   JSJitInfo::Setter,
   33398             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33399             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33400             :   false,  /* isInfallible. False in setters. */
   33401             :   false,  /* isMovable.  Not relevant for setters. */
   33402             :   false, /* isEliminatable.  Not relevant for setters. */
   33403             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33404             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33405             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33406             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33407             : };
   33408             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33409             : static_assert(0 < 1, "There is no slot for us");
   33410             : 
   33411             : static bool
   33412           0 : get_pageBreakAfter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33413             : {
   33414           0 :   binding_detail::FastErrorResult rv;
   33415           0 :   DOMString result;
   33416           0 :   self->GetPageBreakAfter(result, rv);
   33417           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33418           0 :     return false;
   33419             :   }
   33420           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33421           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33422           0 :     return false;
   33423             :   }
   33424           0 :   return true;
   33425             : }
   33426             : 
   33427             : static bool
   33428           0 : set_pageBreakAfter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33429             : {
   33430           0 :   binding_detail::FakeString arg0;
   33431           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33432           0 :     return false;
   33433             :   }
   33434           0 :   binding_detail::FastErrorResult rv;
   33435           0 :   self->SetPageBreakAfter(NonNullHelper(Constify(arg0)), rv);
   33436           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33437           0 :     return false;
   33438             :   }
   33439           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33440             : 
   33441           0 :   return true;
   33442             : }
   33443             : 
   33444             : static const JSJitInfo pageBreakAfter_getterinfo = {
   33445             :   { (JSJitGetterOp)get_pageBreakAfter },
   33446             :   { prototypes::id::CSS2Properties },
   33447             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33448             :   JSJitInfo::Getter,
   33449             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33450             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33451             :   false,  /* isInfallible. False in setters. */
   33452             :   false,  /* isMovable.  Not relevant for setters. */
   33453             :   false, /* isEliminatable.  Not relevant for setters. */
   33454             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33455             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33456             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33457             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33458             : };
   33459             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33460             : static_assert(0 < 1, "There is no slot for us");
   33461             : static const JSJitInfo pageBreakAfter_setterinfo = {
   33462             :   { (JSJitGetterOp)set_pageBreakAfter },
   33463             :   { prototypes::id::CSS2Properties },
   33464             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33465             :   JSJitInfo::Setter,
   33466             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33467             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33468             :   false,  /* isInfallible. False in setters. */
   33469             :   false,  /* isMovable.  Not relevant for setters. */
   33470             :   false, /* isEliminatable.  Not relevant for setters. */
   33471             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33472             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33473             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33474             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33475             : };
   33476             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33477             : static_assert(0 < 1, "There is no slot for us");
   33478             : 
   33479             : static bool
   33480           0 : get_page_break_after(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33481             : {
   33482           0 :   binding_detail::FastErrorResult rv;
   33483           0 :   DOMString result;
   33484           0 :   self->GetPageBreakAfter(result, rv);
   33485           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33486           0 :     return false;
   33487             :   }
   33488           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33489           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33490           0 :     return false;
   33491             :   }
   33492           0 :   return true;
   33493             : }
   33494             : 
   33495             : static bool
   33496           0 : set_page_break_after(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33497             : {
   33498           0 :   binding_detail::FakeString arg0;
   33499           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33500           0 :     return false;
   33501             :   }
   33502           0 :   binding_detail::FastErrorResult rv;
   33503           0 :   self->SetPageBreakAfter(NonNullHelper(Constify(arg0)), rv);
   33504           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33505           0 :     return false;
   33506             :   }
   33507           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33508             : 
   33509           0 :   return true;
   33510             : }
   33511             : 
   33512             : static const JSJitInfo page_break_after_getterinfo = {
   33513             :   { (JSJitGetterOp)get_page_break_after },
   33514             :   { prototypes::id::CSS2Properties },
   33515             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33516             :   JSJitInfo::Getter,
   33517             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33518             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33519             :   false,  /* isInfallible. False in setters. */
   33520             :   false,  /* isMovable.  Not relevant for setters. */
   33521             :   false, /* isEliminatable.  Not relevant for setters. */
   33522             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33523             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33524             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33525             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33526             : };
   33527             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33528             : static_assert(0 < 1, "There is no slot for us");
   33529             : static const JSJitInfo page_break_after_setterinfo = {
   33530             :   { (JSJitGetterOp)set_page_break_after },
   33531             :   { prototypes::id::CSS2Properties },
   33532             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33533             :   JSJitInfo::Setter,
   33534             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33535             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33536             :   false,  /* isInfallible. False in setters. */
   33537             :   false,  /* isMovable.  Not relevant for setters. */
   33538             :   false, /* isEliminatable.  Not relevant for setters. */
   33539             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33540             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33541             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33542             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33543             : };
   33544             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33545             : static_assert(0 < 1, "There is no slot for us");
   33546             : 
   33547             : static bool
   33548           0 : get_pageBreakBefore(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33549             : {
   33550           0 :   binding_detail::FastErrorResult rv;
   33551           0 :   DOMString result;
   33552           0 :   self->GetPageBreakBefore(result, rv);
   33553           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33554           0 :     return false;
   33555             :   }
   33556           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33557           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33558           0 :     return false;
   33559             :   }
   33560           0 :   return true;
   33561             : }
   33562             : 
   33563             : static bool
   33564           0 : set_pageBreakBefore(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33565             : {
   33566           0 :   binding_detail::FakeString arg0;
   33567           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33568           0 :     return false;
   33569             :   }
   33570           0 :   binding_detail::FastErrorResult rv;
   33571           0 :   self->SetPageBreakBefore(NonNullHelper(Constify(arg0)), rv);
   33572           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33573           0 :     return false;
   33574             :   }
   33575           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33576             : 
   33577           0 :   return true;
   33578             : }
   33579             : 
   33580             : static const JSJitInfo pageBreakBefore_getterinfo = {
   33581             :   { (JSJitGetterOp)get_pageBreakBefore },
   33582             :   { prototypes::id::CSS2Properties },
   33583             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33584             :   JSJitInfo::Getter,
   33585             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33586             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33587             :   false,  /* isInfallible. False in setters. */
   33588             :   false,  /* isMovable.  Not relevant for setters. */
   33589             :   false, /* isEliminatable.  Not relevant for setters. */
   33590             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33591             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33592             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33593             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33594             : };
   33595             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33596             : static_assert(0 < 1, "There is no slot for us");
   33597             : static const JSJitInfo pageBreakBefore_setterinfo = {
   33598             :   { (JSJitGetterOp)set_pageBreakBefore },
   33599             :   { prototypes::id::CSS2Properties },
   33600             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33601             :   JSJitInfo::Setter,
   33602             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33603             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33604             :   false,  /* isInfallible. False in setters. */
   33605             :   false,  /* isMovable.  Not relevant for setters. */
   33606             :   false, /* isEliminatable.  Not relevant for setters. */
   33607             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33608             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33609             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33610             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33611             : };
   33612             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33613             : static_assert(0 < 1, "There is no slot for us");
   33614             : 
   33615             : static bool
   33616           0 : get_page_break_before(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33617             : {
   33618           0 :   binding_detail::FastErrorResult rv;
   33619           0 :   DOMString result;
   33620           0 :   self->GetPageBreakBefore(result, rv);
   33621           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33622           0 :     return false;
   33623             :   }
   33624           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33625           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33626           0 :     return false;
   33627             :   }
   33628           0 :   return true;
   33629             : }
   33630             : 
   33631             : static bool
   33632           0 : set_page_break_before(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33633             : {
   33634           0 :   binding_detail::FakeString arg0;
   33635           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33636           0 :     return false;
   33637             :   }
   33638           0 :   binding_detail::FastErrorResult rv;
   33639           0 :   self->SetPageBreakBefore(NonNullHelper(Constify(arg0)), rv);
   33640           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33641           0 :     return false;
   33642             :   }
   33643           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33644             : 
   33645           0 :   return true;
   33646             : }
   33647             : 
   33648             : static const JSJitInfo page_break_before_getterinfo = {
   33649             :   { (JSJitGetterOp)get_page_break_before },
   33650             :   { prototypes::id::CSS2Properties },
   33651             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33652             :   JSJitInfo::Getter,
   33653             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33654             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33655             :   false,  /* isInfallible. False in setters. */
   33656             :   false,  /* isMovable.  Not relevant for setters. */
   33657             :   false, /* isEliminatable.  Not relevant for setters. */
   33658             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33659             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33660             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33661             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33662             : };
   33663             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33664             : static_assert(0 < 1, "There is no slot for us");
   33665             : static const JSJitInfo page_break_before_setterinfo = {
   33666             :   { (JSJitGetterOp)set_page_break_before },
   33667             :   { prototypes::id::CSS2Properties },
   33668             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33669             :   JSJitInfo::Setter,
   33670             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33671             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33672             :   false,  /* isInfallible. False in setters. */
   33673             :   false,  /* isMovable.  Not relevant for setters. */
   33674             :   false, /* isEliminatable.  Not relevant for setters. */
   33675             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33676             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33677             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33678             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33679             : };
   33680             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33681             : static_assert(0 < 1, "There is no slot for us");
   33682             : 
   33683             : static bool
   33684           0 : get_pageBreakInside(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33685             : {
   33686           0 :   binding_detail::FastErrorResult rv;
   33687           0 :   DOMString result;
   33688           0 :   self->GetPageBreakInside(result, rv);
   33689           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33690           0 :     return false;
   33691             :   }
   33692           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33693           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33694           0 :     return false;
   33695             :   }
   33696           0 :   return true;
   33697             : }
   33698             : 
   33699             : static bool
   33700           0 : set_pageBreakInside(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33701             : {
   33702           0 :   binding_detail::FakeString arg0;
   33703           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33704           0 :     return false;
   33705             :   }
   33706           0 :   binding_detail::FastErrorResult rv;
   33707           0 :   self->SetPageBreakInside(NonNullHelper(Constify(arg0)), rv);
   33708           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33709           0 :     return false;
   33710             :   }
   33711           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33712             : 
   33713           0 :   return true;
   33714             : }
   33715             : 
   33716             : static const JSJitInfo pageBreakInside_getterinfo = {
   33717             :   { (JSJitGetterOp)get_pageBreakInside },
   33718             :   { prototypes::id::CSS2Properties },
   33719             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33720             :   JSJitInfo::Getter,
   33721             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33722             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33723             :   false,  /* isInfallible. False in setters. */
   33724             :   false,  /* isMovable.  Not relevant for setters. */
   33725             :   false, /* isEliminatable.  Not relevant for setters. */
   33726             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33727             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33728             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33729             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33730             : };
   33731             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33732             : static_assert(0 < 1, "There is no slot for us");
   33733             : static const JSJitInfo pageBreakInside_setterinfo = {
   33734             :   { (JSJitGetterOp)set_pageBreakInside },
   33735             :   { prototypes::id::CSS2Properties },
   33736             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33737             :   JSJitInfo::Setter,
   33738             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33739             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33740             :   false,  /* isInfallible. False in setters. */
   33741             :   false,  /* isMovable.  Not relevant for setters. */
   33742             :   false, /* isEliminatable.  Not relevant for setters. */
   33743             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33744             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33745             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33746             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33747             : };
   33748             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33749             : static_assert(0 < 1, "There is no slot for us");
   33750             : 
   33751             : static bool
   33752           0 : get_page_break_inside(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33753             : {
   33754           0 :   binding_detail::FastErrorResult rv;
   33755           0 :   DOMString result;
   33756           0 :   self->GetPageBreakInside(result, rv);
   33757           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33758           0 :     return false;
   33759             :   }
   33760           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33761           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33762           0 :     return false;
   33763             :   }
   33764           0 :   return true;
   33765             : }
   33766             : 
   33767             : static bool
   33768           0 : set_page_break_inside(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33769             : {
   33770           0 :   binding_detail::FakeString arg0;
   33771           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33772           0 :     return false;
   33773             :   }
   33774           0 :   binding_detail::FastErrorResult rv;
   33775           0 :   self->SetPageBreakInside(NonNullHelper(Constify(arg0)), rv);
   33776           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33777           0 :     return false;
   33778             :   }
   33779           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33780             : 
   33781           0 :   return true;
   33782             : }
   33783             : 
   33784             : static const JSJitInfo page_break_inside_getterinfo = {
   33785             :   { (JSJitGetterOp)get_page_break_inside },
   33786             :   { prototypes::id::CSS2Properties },
   33787             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33788             :   JSJitInfo::Getter,
   33789             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33790             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33791             :   false,  /* isInfallible. False in setters. */
   33792             :   false,  /* isMovable.  Not relevant for setters. */
   33793             :   false, /* isEliminatable.  Not relevant for setters. */
   33794             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33795             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33796             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33797             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33798             : };
   33799             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33800             : static_assert(0 < 1, "There is no slot for us");
   33801             : static const JSJitInfo page_break_inside_setterinfo = {
   33802             :   { (JSJitGetterOp)set_page_break_inside },
   33803             :   { prototypes::id::CSS2Properties },
   33804             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33805             :   JSJitInfo::Setter,
   33806             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33807             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33808             :   false,  /* isInfallible. False in setters. */
   33809             :   false,  /* isMovable.  Not relevant for setters. */
   33810             :   false, /* isEliminatable.  Not relevant for setters. */
   33811             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33812             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33813             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33814             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33815             : };
   33816             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33817             : static_assert(0 < 1, "There is no slot for us");
   33818             : 
   33819             : static bool
   33820           0 : get_paintOrder(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33821             : {
   33822           0 :   binding_detail::FastErrorResult rv;
   33823           0 :   DOMString result;
   33824           0 :   self->GetPaintOrder(result, rv);
   33825           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33826           0 :     return false;
   33827             :   }
   33828           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33829           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33830           0 :     return false;
   33831             :   }
   33832           0 :   return true;
   33833             : }
   33834             : 
   33835             : static bool
   33836           0 : set_paintOrder(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33837             : {
   33838           0 :   binding_detail::FakeString arg0;
   33839           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33840           0 :     return false;
   33841             :   }
   33842           0 :   binding_detail::FastErrorResult rv;
   33843           0 :   self->SetPaintOrder(NonNullHelper(Constify(arg0)), rv);
   33844           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33845           0 :     return false;
   33846             :   }
   33847           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33848             : 
   33849           0 :   return true;
   33850             : }
   33851             : 
   33852             : static const JSJitInfo paintOrder_getterinfo = {
   33853             :   { (JSJitGetterOp)get_paintOrder },
   33854             :   { prototypes::id::CSS2Properties },
   33855             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33856             :   JSJitInfo::Getter,
   33857             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33858             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33859             :   false,  /* isInfallible. False in setters. */
   33860             :   false,  /* isMovable.  Not relevant for setters. */
   33861             :   false, /* isEliminatable.  Not relevant for setters. */
   33862             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33863             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33864             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33865             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33866             : };
   33867             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33868             : static_assert(0 < 1, "There is no slot for us");
   33869             : static const JSJitInfo paintOrder_setterinfo = {
   33870             :   { (JSJitGetterOp)set_paintOrder },
   33871             :   { prototypes::id::CSS2Properties },
   33872             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33873             :   JSJitInfo::Setter,
   33874             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33875             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33876             :   false,  /* isInfallible. False in setters. */
   33877             :   false,  /* isMovable.  Not relevant for setters. */
   33878             :   false, /* isEliminatable.  Not relevant for setters. */
   33879             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33880             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33881             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33882             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33883             : };
   33884             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33885             : static_assert(0 < 1, "There is no slot for us");
   33886             : 
   33887             : static bool
   33888           0 : get_paint_order(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33889             : {
   33890           0 :   binding_detail::FastErrorResult rv;
   33891           0 :   DOMString result;
   33892           0 :   self->GetPaintOrder(result, rv);
   33893           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33894           0 :     return false;
   33895             :   }
   33896           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33897           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33898           0 :     return false;
   33899             :   }
   33900           0 :   return true;
   33901             : }
   33902             : 
   33903             : static bool
   33904           0 : set_paint_order(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33905             : {
   33906           0 :   binding_detail::FakeString arg0;
   33907           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33908           0 :     return false;
   33909             :   }
   33910           0 :   binding_detail::FastErrorResult rv;
   33911           0 :   self->SetPaintOrder(NonNullHelper(Constify(arg0)), rv);
   33912           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33913           0 :     return false;
   33914             :   }
   33915           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33916             : 
   33917           0 :   return true;
   33918             : }
   33919             : 
   33920             : static const JSJitInfo paint_order_getterinfo = {
   33921             :   { (JSJitGetterOp)get_paint_order },
   33922             :   { prototypes::id::CSS2Properties },
   33923             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33924             :   JSJitInfo::Getter,
   33925             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33926             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33927             :   false,  /* isInfallible. False in setters. */
   33928             :   false,  /* isMovable.  Not relevant for setters. */
   33929             :   false, /* isEliminatable.  Not relevant for setters. */
   33930             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33931             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33932             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33933             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33934             : };
   33935             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33936             : static_assert(0 < 1, "There is no slot for us");
   33937             : static const JSJitInfo paint_order_setterinfo = {
   33938             :   { (JSJitGetterOp)set_paint_order },
   33939             :   { prototypes::id::CSS2Properties },
   33940             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33941             :   JSJitInfo::Setter,
   33942             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33943             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   33944             :   false,  /* isInfallible. False in setters. */
   33945             :   false,  /* isMovable.  Not relevant for setters. */
   33946             :   false, /* isEliminatable.  Not relevant for setters. */
   33947             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33948             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   33949             :   false,  /* isTypedMethod.  Only relevant for methods. */
   33950             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   33951             : };
   33952             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   33953             : static_assert(0 < 1, "There is no slot for us");
   33954             : 
   33955             : static bool
   33956           0 : get_perspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   33957             : {
   33958           0 :   binding_detail::FastErrorResult rv;
   33959           0 :   DOMString result;
   33960           0 :   self->GetPerspective(result, rv);
   33961           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33962           0 :     return false;
   33963             :   }
   33964           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33965           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   33966           0 :     return false;
   33967             :   }
   33968           0 :   return true;
   33969             : }
   33970             : 
   33971             : static bool
   33972           0 : set_perspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   33973             : {
   33974           0 :   binding_detail::FakeString arg0;
   33975           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   33976           0 :     return false;
   33977             :   }
   33978           0 :   binding_detail::FastErrorResult rv;
   33979           0 :   self->SetPerspective(NonNullHelper(Constify(arg0)), rv);
   33980           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   33981           0 :     return false;
   33982             :   }
   33983           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   33984             : 
   33985           0 :   return true;
   33986             : }
   33987             : 
   33988             : static const JSJitInfo perspective_getterinfo = {
   33989             :   { (JSJitGetterOp)get_perspective },
   33990             :   { prototypes::id::CSS2Properties },
   33991             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   33992             :   JSJitInfo::Getter,
   33993             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   33994             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   33995             :   false,  /* isInfallible. False in setters. */
   33996             :   false,  /* isMovable.  Not relevant for setters. */
   33997             :   false, /* isEliminatable.  Not relevant for setters. */
   33998             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   33999             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34000             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34001             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34002             : };
   34003             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34004             : static_assert(0 < 1, "There is no slot for us");
   34005             : static const JSJitInfo perspective_setterinfo = {
   34006             :   { (JSJitGetterOp)set_perspective },
   34007             :   { prototypes::id::CSS2Properties },
   34008             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34009             :   JSJitInfo::Setter,
   34010             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34011             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34012             :   false,  /* isInfallible. False in setters. */
   34013             :   false,  /* isMovable.  Not relevant for setters. */
   34014             :   false, /* isEliminatable.  Not relevant for setters. */
   34015             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34016             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34017             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34018             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34019             : };
   34020             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34021             : static_assert(0 < 1, "There is no slot for us");
   34022             : 
   34023             : static bool
   34024           0 : get_perspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34025             : {
   34026           0 :   binding_detail::FastErrorResult rv;
   34027           0 :   DOMString result;
   34028           0 :   self->GetPerspectiveOrigin(result, rv);
   34029           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34030           0 :     return false;
   34031             :   }
   34032           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34033           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34034           0 :     return false;
   34035             :   }
   34036           0 :   return true;
   34037             : }
   34038             : 
   34039             : static bool
   34040           0 : set_perspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34041             : {
   34042           0 :   binding_detail::FakeString arg0;
   34043           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34044           0 :     return false;
   34045             :   }
   34046           0 :   binding_detail::FastErrorResult rv;
   34047           0 :   self->SetPerspectiveOrigin(NonNullHelper(Constify(arg0)), rv);
   34048           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34049           0 :     return false;
   34050             :   }
   34051           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34052             : 
   34053           0 :   return true;
   34054             : }
   34055             : 
   34056             : static const JSJitInfo perspectiveOrigin_getterinfo = {
   34057             :   { (JSJitGetterOp)get_perspectiveOrigin },
   34058             :   { prototypes::id::CSS2Properties },
   34059             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34060             :   JSJitInfo::Getter,
   34061             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34062             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34063             :   false,  /* isInfallible. False in setters. */
   34064             :   false,  /* isMovable.  Not relevant for setters. */
   34065             :   false, /* isEliminatable.  Not relevant for setters. */
   34066             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34067             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34068             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34069             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34070             : };
   34071             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34072             : static_assert(0 < 1, "There is no slot for us");
   34073             : static const JSJitInfo perspectiveOrigin_setterinfo = {
   34074             :   { (JSJitGetterOp)set_perspectiveOrigin },
   34075             :   { prototypes::id::CSS2Properties },
   34076             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34077             :   JSJitInfo::Setter,
   34078             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34079             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34080             :   false,  /* isInfallible. False in setters. */
   34081             :   false,  /* isMovable.  Not relevant for setters. */
   34082             :   false, /* isEliminatable.  Not relevant for setters. */
   34083             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34084             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34085             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34086             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34087             : };
   34088             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34089             : static_assert(0 < 1, "There is no slot for us");
   34090             : 
   34091             : static bool
   34092           0 : get_perspective_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34093             : {
   34094           0 :   binding_detail::FastErrorResult rv;
   34095           0 :   DOMString result;
   34096           0 :   self->GetPerspectiveOrigin(result, rv);
   34097           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34098           0 :     return false;
   34099             :   }
   34100           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34101           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34102           0 :     return false;
   34103             :   }
   34104           0 :   return true;
   34105             : }
   34106             : 
   34107             : static bool
   34108           0 : set_perspective_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34109             : {
   34110           0 :   binding_detail::FakeString arg0;
   34111           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34112           0 :     return false;
   34113             :   }
   34114           0 :   binding_detail::FastErrorResult rv;
   34115           0 :   self->SetPerspectiveOrigin(NonNullHelper(Constify(arg0)), rv);
   34116           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34117           0 :     return false;
   34118             :   }
   34119           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34120             : 
   34121           0 :   return true;
   34122             : }
   34123             : 
   34124             : static const JSJitInfo perspective_origin_getterinfo = {
   34125             :   { (JSJitGetterOp)get_perspective_origin },
   34126             :   { prototypes::id::CSS2Properties },
   34127             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34128             :   JSJitInfo::Getter,
   34129             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34130             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34131             :   false,  /* isInfallible. False in setters. */
   34132             :   false,  /* isMovable.  Not relevant for setters. */
   34133             :   false, /* isEliminatable.  Not relevant for setters. */
   34134             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34135             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34136             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34137             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34138             : };
   34139             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34140             : static_assert(0 < 1, "There is no slot for us");
   34141             : static const JSJitInfo perspective_origin_setterinfo = {
   34142             :   { (JSJitGetterOp)set_perspective_origin },
   34143             :   { prototypes::id::CSS2Properties },
   34144             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34145             :   JSJitInfo::Setter,
   34146             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34147             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34148             :   false,  /* isInfallible. False in setters. */
   34149             :   false,  /* isMovable.  Not relevant for setters. */
   34150             :   false, /* isEliminatable.  Not relevant for setters. */
   34151             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34152             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34153             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34154             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34155             : };
   34156             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34157             : static_assert(0 < 1, "There is no slot for us");
   34158             : 
   34159             : static bool
   34160           0 : get_placeContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34161             : {
   34162           0 :   binding_detail::FastErrorResult rv;
   34163           0 :   DOMString result;
   34164           0 :   self->GetPlaceContent(result, rv);
   34165           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34166           0 :     return false;
   34167             :   }
   34168           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34169           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34170           0 :     return false;
   34171             :   }
   34172           0 :   return true;
   34173             : }
   34174             : 
   34175             : static bool
   34176           0 : set_placeContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34177             : {
   34178           0 :   binding_detail::FakeString arg0;
   34179           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34180           0 :     return false;
   34181             :   }
   34182           0 :   binding_detail::FastErrorResult rv;
   34183           0 :   self->SetPlaceContent(NonNullHelper(Constify(arg0)), rv);
   34184           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34185           0 :     return false;
   34186             :   }
   34187           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34188             : 
   34189           0 :   return true;
   34190             : }
   34191             : 
   34192             : static const JSJitInfo placeContent_getterinfo = {
   34193             :   { (JSJitGetterOp)get_placeContent },
   34194             :   { prototypes::id::CSS2Properties },
   34195             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34196             :   JSJitInfo::Getter,
   34197             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34198             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34199             :   false,  /* isInfallible. False in setters. */
   34200             :   false,  /* isMovable.  Not relevant for setters. */
   34201             :   false, /* isEliminatable.  Not relevant for setters. */
   34202             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34203             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34204             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34205             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34206             : };
   34207             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34208             : static_assert(0 < 1, "There is no slot for us");
   34209             : static const JSJitInfo placeContent_setterinfo = {
   34210             :   { (JSJitGetterOp)set_placeContent },
   34211             :   { prototypes::id::CSS2Properties },
   34212             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34213             :   JSJitInfo::Setter,
   34214             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34215             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34216             :   false,  /* isInfallible. False in setters. */
   34217             :   false,  /* isMovable.  Not relevant for setters. */
   34218             :   false, /* isEliminatable.  Not relevant for setters. */
   34219             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34220             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34221             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34222             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34223             : };
   34224             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34225             : static_assert(0 < 1, "There is no slot for us");
   34226             : 
   34227             : static bool
   34228           0 : get_place_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34229             : {
   34230           0 :   binding_detail::FastErrorResult rv;
   34231           0 :   DOMString result;
   34232           0 :   self->GetPlaceContent(result, rv);
   34233           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34234           0 :     return false;
   34235             :   }
   34236           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34237           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34238           0 :     return false;
   34239             :   }
   34240           0 :   return true;
   34241             : }
   34242             : 
   34243             : static bool
   34244           0 : set_place_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34245             : {
   34246           0 :   binding_detail::FakeString arg0;
   34247           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34248           0 :     return false;
   34249             :   }
   34250           0 :   binding_detail::FastErrorResult rv;
   34251           0 :   self->SetPlaceContent(NonNullHelper(Constify(arg0)), rv);
   34252           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34253           0 :     return false;
   34254             :   }
   34255           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34256             : 
   34257           0 :   return true;
   34258             : }
   34259             : 
   34260             : static const JSJitInfo place_content_getterinfo = {
   34261             :   { (JSJitGetterOp)get_place_content },
   34262             :   { prototypes::id::CSS2Properties },
   34263             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34264             :   JSJitInfo::Getter,
   34265             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34266             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34267             :   false,  /* isInfallible. False in setters. */
   34268             :   false,  /* isMovable.  Not relevant for setters. */
   34269             :   false, /* isEliminatable.  Not relevant for setters. */
   34270             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34271             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34272             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34273             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34274             : };
   34275             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34276             : static_assert(0 < 1, "There is no slot for us");
   34277             : static const JSJitInfo place_content_setterinfo = {
   34278             :   { (JSJitGetterOp)set_place_content },
   34279             :   { prototypes::id::CSS2Properties },
   34280             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34281             :   JSJitInfo::Setter,
   34282             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34283             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34284             :   false,  /* isInfallible. False in setters. */
   34285             :   false,  /* isMovable.  Not relevant for setters. */
   34286             :   false, /* isEliminatable.  Not relevant for setters. */
   34287             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34288             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34289             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34290             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34291             : };
   34292             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34293             : static_assert(0 < 1, "There is no slot for us");
   34294             : 
   34295             : static bool
   34296           0 : get_placeItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34297             : {
   34298           0 :   binding_detail::FastErrorResult rv;
   34299           0 :   DOMString result;
   34300           0 :   self->GetPlaceItems(result, rv);
   34301           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34302           0 :     return false;
   34303             :   }
   34304           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34305           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34306           0 :     return false;
   34307             :   }
   34308           0 :   return true;
   34309             : }
   34310             : 
   34311             : static bool
   34312           0 : set_placeItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34313             : {
   34314           0 :   binding_detail::FakeString arg0;
   34315           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34316           0 :     return false;
   34317             :   }
   34318           0 :   binding_detail::FastErrorResult rv;
   34319           0 :   self->SetPlaceItems(NonNullHelper(Constify(arg0)), rv);
   34320           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34321           0 :     return false;
   34322             :   }
   34323           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34324             : 
   34325           0 :   return true;
   34326             : }
   34327             : 
   34328             : static const JSJitInfo placeItems_getterinfo = {
   34329             :   { (JSJitGetterOp)get_placeItems },
   34330             :   { prototypes::id::CSS2Properties },
   34331             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34332             :   JSJitInfo::Getter,
   34333             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34334             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34335             :   false,  /* isInfallible. False in setters. */
   34336             :   false,  /* isMovable.  Not relevant for setters. */
   34337             :   false, /* isEliminatable.  Not relevant for setters. */
   34338             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34339             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34340             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34341             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34342             : };
   34343             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34344             : static_assert(0 < 1, "There is no slot for us");
   34345             : static const JSJitInfo placeItems_setterinfo = {
   34346             :   { (JSJitGetterOp)set_placeItems },
   34347             :   { prototypes::id::CSS2Properties },
   34348             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34349             :   JSJitInfo::Setter,
   34350             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34351             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34352             :   false,  /* isInfallible. False in setters. */
   34353             :   false,  /* isMovable.  Not relevant for setters. */
   34354             :   false, /* isEliminatable.  Not relevant for setters. */
   34355             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34356             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34357             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34358             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34359             : };
   34360             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34361             : static_assert(0 < 1, "There is no slot for us");
   34362             : 
   34363             : static bool
   34364           0 : get_place_items(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34365             : {
   34366           0 :   binding_detail::FastErrorResult rv;
   34367           0 :   DOMString result;
   34368           0 :   self->GetPlaceItems(result, rv);
   34369           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34370           0 :     return false;
   34371             :   }
   34372           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34373           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34374           0 :     return false;
   34375             :   }
   34376           0 :   return true;
   34377             : }
   34378             : 
   34379             : static bool
   34380           0 : set_place_items(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34381             : {
   34382           0 :   binding_detail::FakeString arg0;
   34383           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34384           0 :     return false;
   34385             :   }
   34386           0 :   binding_detail::FastErrorResult rv;
   34387           0 :   self->SetPlaceItems(NonNullHelper(Constify(arg0)), rv);
   34388           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34389           0 :     return false;
   34390             :   }
   34391           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34392             : 
   34393           0 :   return true;
   34394             : }
   34395             : 
   34396             : static const JSJitInfo place_items_getterinfo = {
   34397             :   { (JSJitGetterOp)get_place_items },
   34398             :   { prototypes::id::CSS2Properties },
   34399             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34400             :   JSJitInfo::Getter,
   34401             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34402             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34403             :   false,  /* isInfallible. False in setters. */
   34404             :   false,  /* isMovable.  Not relevant for setters. */
   34405             :   false, /* isEliminatable.  Not relevant for setters. */
   34406             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34407             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34408             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34409             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34410             : };
   34411             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34412             : static_assert(0 < 1, "There is no slot for us");
   34413             : static const JSJitInfo place_items_setterinfo = {
   34414             :   { (JSJitGetterOp)set_place_items },
   34415             :   { prototypes::id::CSS2Properties },
   34416             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34417             :   JSJitInfo::Setter,
   34418             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34419             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34420             :   false,  /* isInfallible. False in setters. */
   34421             :   false,  /* isMovable.  Not relevant for setters. */
   34422             :   false, /* isEliminatable.  Not relevant for setters. */
   34423             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34424             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34425             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34426             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34427             : };
   34428             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34429             : static_assert(0 < 1, "There is no slot for us");
   34430             : 
   34431             : static bool
   34432           0 : get_placeSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34433             : {
   34434           0 :   binding_detail::FastErrorResult rv;
   34435           0 :   DOMString result;
   34436           0 :   self->GetPlaceSelf(result, rv);
   34437           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34438           0 :     return false;
   34439             :   }
   34440           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34441           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34442           0 :     return false;
   34443             :   }
   34444           0 :   return true;
   34445             : }
   34446             : 
   34447             : static bool
   34448           0 : set_placeSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34449             : {
   34450           0 :   binding_detail::FakeString arg0;
   34451           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34452           0 :     return false;
   34453             :   }
   34454           0 :   binding_detail::FastErrorResult rv;
   34455           0 :   self->SetPlaceSelf(NonNullHelper(Constify(arg0)), rv);
   34456           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34457           0 :     return false;
   34458             :   }
   34459           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34460             : 
   34461           0 :   return true;
   34462             : }
   34463             : 
   34464             : static const JSJitInfo placeSelf_getterinfo = {
   34465             :   { (JSJitGetterOp)get_placeSelf },
   34466             :   { prototypes::id::CSS2Properties },
   34467             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34468             :   JSJitInfo::Getter,
   34469             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34470             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34471             :   false,  /* isInfallible. False in setters. */
   34472             :   false,  /* isMovable.  Not relevant for setters. */
   34473             :   false, /* isEliminatable.  Not relevant for setters. */
   34474             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34475             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34476             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34477             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34478             : };
   34479             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34480             : static_assert(0 < 1, "There is no slot for us");
   34481             : static const JSJitInfo placeSelf_setterinfo = {
   34482             :   { (JSJitGetterOp)set_placeSelf },
   34483             :   { prototypes::id::CSS2Properties },
   34484             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34485             :   JSJitInfo::Setter,
   34486             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34487             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34488             :   false,  /* isInfallible. False in setters. */
   34489             :   false,  /* isMovable.  Not relevant for setters. */
   34490             :   false, /* isEliminatable.  Not relevant for setters. */
   34491             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34492             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34493             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34494             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34495             : };
   34496             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34497             : static_assert(0 < 1, "There is no slot for us");
   34498             : 
   34499             : static bool
   34500           0 : get_place_self(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34501             : {
   34502           0 :   binding_detail::FastErrorResult rv;
   34503           0 :   DOMString result;
   34504           0 :   self->GetPlaceSelf(result, rv);
   34505           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34506           0 :     return false;
   34507             :   }
   34508           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34509           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34510           0 :     return false;
   34511             :   }
   34512           0 :   return true;
   34513             : }
   34514             : 
   34515             : static bool
   34516           0 : set_place_self(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34517             : {
   34518           0 :   binding_detail::FakeString arg0;
   34519           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34520           0 :     return false;
   34521             :   }
   34522           0 :   binding_detail::FastErrorResult rv;
   34523           0 :   self->SetPlaceSelf(NonNullHelper(Constify(arg0)), rv);
   34524           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34525           0 :     return false;
   34526             :   }
   34527           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34528             : 
   34529           0 :   return true;
   34530             : }
   34531             : 
   34532             : static const JSJitInfo place_self_getterinfo = {
   34533             :   { (JSJitGetterOp)get_place_self },
   34534             :   { prototypes::id::CSS2Properties },
   34535             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34536             :   JSJitInfo::Getter,
   34537             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34538             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34539             :   false,  /* isInfallible. False in setters. */
   34540             :   false,  /* isMovable.  Not relevant for setters. */
   34541             :   false, /* isEliminatable.  Not relevant for setters. */
   34542             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34543             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34544             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34545             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34546             : };
   34547             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34548             : static_assert(0 < 1, "There is no slot for us");
   34549             : static const JSJitInfo place_self_setterinfo = {
   34550             :   { (JSJitGetterOp)set_place_self },
   34551             :   { prototypes::id::CSS2Properties },
   34552             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34553             :   JSJitInfo::Setter,
   34554             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34555             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34556             :   false,  /* isInfallible. False in setters. */
   34557             :   false,  /* isMovable.  Not relevant for setters. */
   34558             :   false, /* isEliminatable.  Not relevant for setters. */
   34559             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34560             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34561             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34562             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34563             : };
   34564             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34565             : static_assert(0 < 1, "There is no slot for us");
   34566             : 
   34567             : static bool
   34568           0 : get_pointerEvents(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34569             : {
   34570           0 :   binding_detail::FastErrorResult rv;
   34571           0 :   DOMString result;
   34572           0 :   self->GetPointerEvents(result, rv);
   34573           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34574           0 :     return false;
   34575             :   }
   34576           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34577           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34578           0 :     return false;
   34579             :   }
   34580           0 :   return true;
   34581             : }
   34582             : 
   34583             : static bool
   34584           1 : set_pointerEvents(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34585             : {
   34586           2 :   binding_detail::FakeString arg0;
   34587           1 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34588           0 :     return false;
   34589             :   }
   34590           2 :   binding_detail::FastErrorResult rv;
   34591           1 :   self->SetPointerEvents(NonNullHelper(Constify(arg0)), rv);
   34592           1 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34593           0 :     return false;
   34594             :   }
   34595           1 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34596             : 
   34597           1 :   return true;
   34598             : }
   34599             : 
   34600             : static const JSJitInfo pointerEvents_getterinfo = {
   34601             :   { (JSJitGetterOp)get_pointerEvents },
   34602             :   { prototypes::id::CSS2Properties },
   34603             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34604             :   JSJitInfo::Getter,
   34605             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34606             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34607             :   false,  /* isInfallible. False in setters. */
   34608             :   false,  /* isMovable.  Not relevant for setters. */
   34609             :   false, /* isEliminatable.  Not relevant for setters. */
   34610             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34611             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34612             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34613             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34614             : };
   34615             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34616             : static_assert(0 < 1, "There is no slot for us");
   34617             : static const JSJitInfo pointerEvents_setterinfo = {
   34618             :   { (JSJitGetterOp)set_pointerEvents },
   34619             :   { prototypes::id::CSS2Properties },
   34620             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34621             :   JSJitInfo::Setter,
   34622             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34623             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34624             :   false,  /* isInfallible. False in setters. */
   34625             :   false,  /* isMovable.  Not relevant for setters. */
   34626             :   false, /* isEliminatable.  Not relevant for setters. */
   34627             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34628             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34629             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34630             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34631             : };
   34632             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34633             : static_assert(0 < 1, "There is no slot for us");
   34634             : 
   34635             : static bool
   34636           0 : get_pointer_events(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34637             : {
   34638           0 :   binding_detail::FastErrorResult rv;
   34639           0 :   DOMString result;
   34640           0 :   self->GetPointerEvents(result, rv);
   34641           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34642           0 :     return false;
   34643             :   }
   34644           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34645           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34646           0 :     return false;
   34647             :   }
   34648           0 :   return true;
   34649             : }
   34650             : 
   34651             : static bool
   34652           0 : set_pointer_events(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34653             : {
   34654           0 :   binding_detail::FakeString arg0;
   34655           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34656           0 :     return false;
   34657             :   }
   34658           0 :   binding_detail::FastErrorResult rv;
   34659           0 :   self->SetPointerEvents(NonNullHelper(Constify(arg0)), rv);
   34660           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34661           0 :     return false;
   34662             :   }
   34663           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34664             : 
   34665           0 :   return true;
   34666             : }
   34667             : 
   34668             : static const JSJitInfo pointer_events_getterinfo = {
   34669             :   { (JSJitGetterOp)get_pointer_events },
   34670             :   { prototypes::id::CSS2Properties },
   34671             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34672             :   JSJitInfo::Getter,
   34673             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34674             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34675             :   false,  /* isInfallible. False in setters. */
   34676             :   false,  /* isMovable.  Not relevant for setters. */
   34677             :   false, /* isEliminatable.  Not relevant for setters. */
   34678             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34679             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34680             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34681             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34682             : };
   34683             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34684             : static_assert(0 < 1, "There is no slot for us");
   34685             : static const JSJitInfo pointer_events_setterinfo = {
   34686             :   { (JSJitGetterOp)set_pointer_events },
   34687             :   { prototypes::id::CSS2Properties },
   34688             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34689             :   JSJitInfo::Setter,
   34690             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34691             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34692             :   false,  /* isInfallible. False in setters. */
   34693             :   false,  /* isMovable.  Not relevant for setters. */
   34694             :   false, /* isEliminatable.  Not relevant for setters. */
   34695             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34696             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34697             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34698             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34699             : };
   34700             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34701             : static_assert(0 < 1, "There is no slot for us");
   34702             : 
   34703             : static bool
   34704           0 : get_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34705             : {
   34706           0 :   binding_detail::FastErrorResult rv;
   34707           0 :   DOMString result;
   34708           0 :   self->GetPosition(result, rv);
   34709           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34710           0 :     return false;
   34711             :   }
   34712           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34713           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34714           0 :     return false;
   34715             :   }
   34716           0 :   return true;
   34717             : }
   34718             : 
   34719             : static bool
   34720           0 : set_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34721             : {
   34722           0 :   binding_detail::FakeString arg0;
   34723           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34724           0 :     return false;
   34725             :   }
   34726           0 :   binding_detail::FastErrorResult rv;
   34727           0 :   self->SetPosition(NonNullHelper(Constify(arg0)), rv);
   34728           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34729           0 :     return false;
   34730             :   }
   34731           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34732             : 
   34733           0 :   return true;
   34734             : }
   34735             : 
   34736             : static const JSJitInfo position_getterinfo = {
   34737             :   { (JSJitGetterOp)get_position },
   34738             :   { prototypes::id::CSS2Properties },
   34739             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34740             :   JSJitInfo::Getter,
   34741             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34742             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34743             :   false,  /* isInfallible. False in setters. */
   34744             :   false,  /* isMovable.  Not relevant for setters. */
   34745             :   false, /* isEliminatable.  Not relevant for setters. */
   34746             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34747             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34748             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34749             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34750             : };
   34751             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34752             : static_assert(0 < 1, "There is no slot for us");
   34753             : static const JSJitInfo position_setterinfo = {
   34754             :   { (JSJitGetterOp)set_position },
   34755             :   { prototypes::id::CSS2Properties },
   34756             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34757             :   JSJitInfo::Setter,
   34758             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34759             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34760             :   false,  /* isInfallible. False in setters. */
   34761             :   false,  /* isMovable.  Not relevant for setters. */
   34762             :   false, /* isEliminatable.  Not relevant for setters. */
   34763             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34764             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34765             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34766             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34767             : };
   34768             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34769             : static_assert(0 < 1, "There is no slot for us");
   34770             : 
   34771             : static bool
   34772           0 : get_quotes(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34773             : {
   34774           0 :   binding_detail::FastErrorResult rv;
   34775           0 :   DOMString result;
   34776           0 :   self->GetQuotes(result, rv);
   34777           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34778           0 :     return false;
   34779             :   }
   34780           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34781           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34782           0 :     return false;
   34783             :   }
   34784           0 :   return true;
   34785             : }
   34786             : 
   34787             : static bool
   34788           0 : set_quotes(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34789             : {
   34790           0 :   binding_detail::FakeString arg0;
   34791           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34792           0 :     return false;
   34793             :   }
   34794           0 :   binding_detail::FastErrorResult rv;
   34795           0 :   self->SetQuotes(NonNullHelper(Constify(arg0)), rv);
   34796           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34797           0 :     return false;
   34798             :   }
   34799           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34800             : 
   34801           0 :   return true;
   34802             : }
   34803             : 
   34804             : static const JSJitInfo quotes_getterinfo = {
   34805             :   { (JSJitGetterOp)get_quotes },
   34806             :   { prototypes::id::CSS2Properties },
   34807             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34808             :   JSJitInfo::Getter,
   34809             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34810             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34811             :   false,  /* isInfallible. False in setters. */
   34812             :   false,  /* isMovable.  Not relevant for setters. */
   34813             :   false, /* isEliminatable.  Not relevant for setters. */
   34814             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34815             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34816             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34817             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34818             : };
   34819             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34820             : static_assert(0 < 1, "There is no slot for us");
   34821             : static const JSJitInfo quotes_setterinfo = {
   34822             :   { (JSJitGetterOp)set_quotes },
   34823             :   { prototypes::id::CSS2Properties },
   34824             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34825             :   JSJitInfo::Setter,
   34826             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34827             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34828             :   false,  /* isInfallible. False in setters. */
   34829             :   false,  /* isMovable.  Not relevant for setters. */
   34830             :   false, /* isEliminatable.  Not relevant for setters. */
   34831             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34832             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34833             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34834             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34835             : };
   34836             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34837             : static_assert(0 < 1, "There is no slot for us");
   34838             : 
   34839             : static bool
   34840           0 : get_resize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34841             : {
   34842           0 :   binding_detail::FastErrorResult rv;
   34843           0 :   DOMString result;
   34844           0 :   self->GetResize(result, rv);
   34845           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34846           0 :     return false;
   34847             :   }
   34848           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34849           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34850           0 :     return false;
   34851             :   }
   34852           0 :   return true;
   34853             : }
   34854             : 
   34855             : static bool
   34856           0 : set_resize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34857             : {
   34858           0 :   binding_detail::FakeString arg0;
   34859           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34860           0 :     return false;
   34861             :   }
   34862           0 :   binding_detail::FastErrorResult rv;
   34863           0 :   self->SetResize(NonNullHelper(Constify(arg0)), rv);
   34864           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34865           0 :     return false;
   34866             :   }
   34867           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34868             : 
   34869           0 :   return true;
   34870             : }
   34871             : 
   34872             : static const JSJitInfo resize_getterinfo = {
   34873             :   { (JSJitGetterOp)get_resize },
   34874             :   { prototypes::id::CSS2Properties },
   34875             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34876             :   JSJitInfo::Getter,
   34877             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34878             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34879             :   false,  /* isInfallible. False in setters. */
   34880             :   false,  /* isMovable.  Not relevant for setters. */
   34881             :   false, /* isEliminatable.  Not relevant for setters. */
   34882             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34883             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34884             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34885             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34886             : };
   34887             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34888             : static_assert(0 < 1, "There is no slot for us");
   34889             : static const JSJitInfo resize_setterinfo = {
   34890             :   { (JSJitGetterOp)set_resize },
   34891             :   { prototypes::id::CSS2Properties },
   34892             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34893             :   JSJitInfo::Setter,
   34894             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34895             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34896             :   false,  /* isInfallible. False in setters. */
   34897             :   false,  /* isMovable.  Not relevant for setters. */
   34898             :   false, /* isEliminatable.  Not relevant for setters. */
   34899             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34900             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34901             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34902             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34903             : };
   34904             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34905             : static_assert(0 < 1, "There is no slot for us");
   34906             : 
   34907             : static bool
   34908           0 : get_right(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34909             : {
   34910           0 :   binding_detail::FastErrorResult rv;
   34911           0 :   DOMString result;
   34912           0 :   self->GetRight(result, rv);
   34913           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34914           0 :     return false;
   34915             :   }
   34916           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34917           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34918           0 :     return false;
   34919             :   }
   34920           0 :   return true;
   34921             : }
   34922             : 
   34923             : static bool
   34924           0 : set_right(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34925             : {
   34926           0 :   binding_detail::FakeString arg0;
   34927           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34928           0 :     return false;
   34929             :   }
   34930           0 :   binding_detail::FastErrorResult rv;
   34931           0 :   self->SetRight(NonNullHelper(Constify(arg0)), rv);
   34932           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34933           0 :     return false;
   34934             :   }
   34935           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34936             : 
   34937           0 :   return true;
   34938             : }
   34939             : 
   34940             : static const JSJitInfo right_getterinfo = {
   34941             :   { (JSJitGetterOp)get_right },
   34942             :   { prototypes::id::CSS2Properties },
   34943             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34944             :   JSJitInfo::Getter,
   34945             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34946             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   34947             :   false,  /* isInfallible. False in setters. */
   34948             :   false,  /* isMovable.  Not relevant for setters. */
   34949             :   false, /* isEliminatable.  Not relevant for setters. */
   34950             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34951             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34952             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34953             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34954             : };
   34955             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34956             : static_assert(0 < 1, "There is no slot for us");
   34957             : static const JSJitInfo right_setterinfo = {
   34958             :   { (JSJitGetterOp)set_right },
   34959             :   { prototypes::id::CSS2Properties },
   34960             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   34961             :   JSJitInfo::Setter,
   34962             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   34963             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   34964             :   false,  /* isInfallible. False in setters. */
   34965             :   false,  /* isMovable.  Not relevant for setters. */
   34966             :   false, /* isEliminatable.  Not relevant for setters. */
   34967             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   34968             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   34969             :   false,  /* isTypedMethod.  Only relevant for methods. */
   34970             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   34971             : };
   34972             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   34973             : static_assert(0 < 1, "There is no slot for us");
   34974             : 
   34975             : static bool
   34976           0 : get_rubyAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   34977             : {
   34978           0 :   binding_detail::FastErrorResult rv;
   34979           0 :   DOMString result;
   34980           0 :   self->GetRubyAlign(result, rv);
   34981           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   34982           0 :     return false;
   34983             :   }
   34984           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   34985           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   34986           0 :     return false;
   34987             :   }
   34988           0 :   return true;
   34989             : }
   34990             : 
   34991             : static bool
   34992           0 : set_rubyAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   34993             : {
   34994           0 :   binding_detail::FakeString arg0;
   34995           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   34996           0 :     return false;
   34997             :   }
   34998           0 :   binding_detail::FastErrorResult rv;
   34999           0 :   self->SetRubyAlign(NonNullHelper(Constify(arg0)), rv);
   35000           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35001           0 :     return false;
   35002             :   }
   35003           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35004             : 
   35005           0 :   return true;
   35006             : }
   35007             : 
   35008             : static const JSJitInfo rubyAlign_getterinfo = {
   35009             :   { (JSJitGetterOp)get_rubyAlign },
   35010             :   { prototypes::id::CSS2Properties },
   35011             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35012             :   JSJitInfo::Getter,
   35013             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35014             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35015             :   false,  /* isInfallible. False in setters. */
   35016             :   false,  /* isMovable.  Not relevant for setters. */
   35017             :   false, /* isEliminatable.  Not relevant for setters. */
   35018             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35019             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35020             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35021             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35022             : };
   35023             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35024             : static_assert(0 < 1, "There is no slot for us");
   35025             : static const JSJitInfo rubyAlign_setterinfo = {
   35026             :   { (JSJitGetterOp)set_rubyAlign },
   35027             :   { prototypes::id::CSS2Properties },
   35028             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35029             :   JSJitInfo::Setter,
   35030             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35031             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35032             :   false,  /* isInfallible. False in setters. */
   35033             :   false,  /* isMovable.  Not relevant for setters. */
   35034             :   false, /* isEliminatable.  Not relevant for setters. */
   35035             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35036             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35037             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35038             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35039             : };
   35040             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35041             : static_assert(0 < 1, "There is no slot for us");
   35042             : 
   35043             : static bool
   35044           0 : get_ruby_align(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35045             : {
   35046           0 :   binding_detail::FastErrorResult rv;
   35047           0 :   DOMString result;
   35048           0 :   self->GetRubyAlign(result, rv);
   35049           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35050           0 :     return false;
   35051             :   }
   35052           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35053           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35054           0 :     return false;
   35055             :   }
   35056           0 :   return true;
   35057             : }
   35058             : 
   35059             : static bool
   35060           0 : set_ruby_align(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35061             : {
   35062           0 :   binding_detail::FakeString arg0;
   35063           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35064           0 :     return false;
   35065             :   }
   35066           0 :   binding_detail::FastErrorResult rv;
   35067           0 :   self->SetRubyAlign(NonNullHelper(Constify(arg0)), rv);
   35068           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35069           0 :     return false;
   35070             :   }
   35071           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35072             : 
   35073           0 :   return true;
   35074             : }
   35075             : 
   35076             : static const JSJitInfo ruby_align_getterinfo = {
   35077             :   { (JSJitGetterOp)get_ruby_align },
   35078             :   { prototypes::id::CSS2Properties },
   35079             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35080             :   JSJitInfo::Getter,
   35081             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35082             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35083             :   false,  /* isInfallible. False in setters. */
   35084             :   false,  /* isMovable.  Not relevant for setters. */
   35085             :   false, /* isEliminatable.  Not relevant for setters. */
   35086             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35087             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35088             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35089             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35090             : };
   35091             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35092             : static_assert(0 < 1, "There is no slot for us");
   35093             : static const JSJitInfo ruby_align_setterinfo = {
   35094             :   { (JSJitGetterOp)set_ruby_align },
   35095             :   { prototypes::id::CSS2Properties },
   35096             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35097             :   JSJitInfo::Setter,
   35098             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35099             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35100             :   false,  /* isInfallible. False in setters. */
   35101             :   false,  /* isMovable.  Not relevant for setters. */
   35102             :   false, /* isEliminatable.  Not relevant for setters. */
   35103             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35104             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35105             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35106             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35107             : };
   35108             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35109             : static_assert(0 < 1, "There is no slot for us");
   35110             : 
   35111             : static bool
   35112           0 : get_rubyPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35113             : {
   35114           0 :   binding_detail::FastErrorResult rv;
   35115           0 :   DOMString result;
   35116           0 :   self->GetRubyPosition(result, rv);
   35117           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35118           0 :     return false;
   35119             :   }
   35120           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35121           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35122           0 :     return false;
   35123             :   }
   35124           0 :   return true;
   35125             : }
   35126             : 
   35127             : static bool
   35128           0 : set_rubyPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35129             : {
   35130           0 :   binding_detail::FakeString arg0;
   35131           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35132           0 :     return false;
   35133             :   }
   35134           0 :   binding_detail::FastErrorResult rv;
   35135           0 :   self->SetRubyPosition(NonNullHelper(Constify(arg0)), rv);
   35136           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35137           0 :     return false;
   35138             :   }
   35139           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35140             : 
   35141           0 :   return true;
   35142             : }
   35143             : 
   35144             : static const JSJitInfo rubyPosition_getterinfo = {
   35145             :   { (JSJitGetterOp)get_rubyPosition },
   35146             :   { prototypes::id::CSS2Properties },
   35147             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35148             :   JSJitInfo::Getter,
   35149             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35150             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35151             :   false,  /* isInfallible. False in setters. */
   35152             :   false,  /* isMovable.  Not relevant for setters. */
   35153             :   false, /* isEliminatable.  Not relevant for setters. */
   35154             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35155             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35156             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35157             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35158             : };
   35159             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35160             : static_assert(0 < 1, "There is no slot for us");
   35161             : static const JSJitInfo rubyPosition_setterinfo = {
   35162             :   { (JSJitGetterOp)set_rubyPosition },
   35163             :   { prototypes::id::CSS2Properties },
   35164             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35165             :   JSJitInfo::Setter,
   35166             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35167             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35168             :   false,  /* isInfallible. False in setters. */
   35169             :   false,  /* isMovable.  Not relevant for setters. */
   35170             :   false, /* isEliminatable.  Not relevant for setters. */
   35171             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35172             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35173             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35174             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35175             : };
   35176             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35177             : static_assert(0 < 1, "There is no slot for us");
   35178             : 
   35179             : static bool
   35180           0 : get_ruby_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35181             : {
   35182           0 :   binding_detail::FastErrorResult rv;
   35183           0 :   DOMString result;
   35184           0 :   self->GetRubyPosition(result, rv);
   35185           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35186           0 :     return false;
   35187             :   }
   35188           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35189           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35190           0 :     return false;
   35191             :   }
   35192           0 :   return true;
   35193             : }
   35194             : 
   35195             : static bool
   35196           0 : set_ruby_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35197             : {
   35198           0 :   binding_detail::FakeString arg0;
   35199           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35200           0 :     return false;
   35201             :   }
   35202           0 :   binding_detail::FastErrorResult rv;
   35203           0 :   self->SetRubyPosition(NonNullHelper(Constify(arg0)), rv);
   35204           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35205           0 :     return false;
   35206             :   }
   35207           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35208             : 
   35209           0 :   return true;
   35210             : }
   35211             : 
   35212             : static const JSJitInfo ruby_position_getterinfo = {
   35213             :   { (JSJitGetterOp)get_ruby_position },
   35214             :   { prototypes::id::CSS2Properties },
   35215             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35216             :   JSJitInfo::Getter,
   35217             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35218             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35219             :   false,  /* isInfallible. False in setters. */
   35220             :   false,  /* isMovable.  Not relevant for setters. */
   35221             :   false, /* isEliminatable.  Not relevant for setters. */
   35222             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35223             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35224             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35225             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35226             : };
   35227             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35228             : static_assert(0 < 1, "There is no slot for us");
   35229             : static const JSJitInfo ruby_position_setterinfo = {
   35230             :   { (JSJitGetterOp)set_ruby_position },
   35231             :   { prototypes::id::CSS2Properties },
   35232             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35233             :   JSJitInfo::Setter,
   35234             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35235             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35236             :   false,  /* isInfallible. False in setters. */
   35237             :   false,  /* isMovable.  Not relevant for setters. */
   35238             :   false, /* isEliminatable.  Not relevant for setters. */
   35239             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35240             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35241             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35242             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35243             : };
   35244             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35245             : static_assert(0 < 1, "There is no slot for us");
   35246             : 
   35247             : static bool
   35248           0 : get_scrollBehavior(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35249             : {
   35250           0 :   binding_detail::FastErrorResult rv;
   35251           0 :   DOMString result;
   35252           0 :   self->GetScrollBehavior(result, rv);
   35253           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35254           0 :     return false;
   35255             :   }
   35256           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35257           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35258           0 :     return false;
   35259             :   }
   35260           0 :   return true;
   35261             : }
   35262             : 
   35263             : static bool
   35264           0 : set_scrollBehavior(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35265             : {
   35266           0 :   binding_detail::FakeString arg0;
   35267           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35268           0 :     return false;
   35269             :   }
   35270           0 :   binding_detail::FastErrorResult rv;
   35271           0 :   self->SetScrollBehavior(NonNullHelper(Constify(arg0)), rv);
   35272           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35273           0 :     return false;
   35274             :   }
   35275           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35276             : 
   35277           0 :   return true;
   35278             : }
   35279             : 
   35280             : static const JSJitInfo scrollBehavior_getterinfo = {
   35281             :   { (JSJitGetterOp)get_scrollBehavior },
   35282             :   { prototypes::id::CSS2Properties },
   35283             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35284             :   JSJitInfo::Getter,
   35285             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35286             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35287             :   false,  /* isInfallible. False in setters. */
   35288             :   false,  /* isMovable.  Not relevant for setters. */
   35289             :   false, /* isEliminatable.  Not relevant for setters. */
   35290             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35291             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35292             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35293             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35294             : };
   35295             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35296             : static_assert(0 < 1, "There is no slot for us");
   35297             : static const JSJitInfo scrollBehavior_setterinfo = {
   35298             :   { (JSJitGetterOp)set_scrollBehavior },
   35299             :   { prototypes::id::CSS2Properties },
   35300             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35301             :   JSJitInfo::Setter,
   35302             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35303             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35304             :   false,  /* isInfallible. False in setters. */
   35305             :   false,  /* isMovable.  Not relevant for setters. */
   35306             :   false, /* isEliminatable.  Not relevant for setters. */
   35307             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35308             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35309             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35310             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35311             : };
   35312             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35313             : static_assert(0 < 1, "There is no slot for us");
   35314             : 
   35315             : static bool
   35316           0 : get_scroll_behavior(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35317             : {
   35318           0 :   binding_detail::FastErrorResult rv;
   35319           0 :   DOMString result;
   35320           0 :   self->GetScrollBehavior(result, rv);
   35321           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35322           0 :     return false;
   35323             :   }
   35324           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35325           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35326           0 :     return false;
   35327             :   }
   35328           0 :   return true;
   35329             : }
   35330             : 
   35331             : static bool
   35332           0 : set_scroll_behavior(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35333             : {
   35334           0 :   binding_detail::FakeString arg0;
   35335           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35336           0 :     return false;
   35337             :   }
   35338           0 :   binding_detail::FastErrorResult rv;
   35339           0 :   self->SetScrollBehavior(NonNullHelper(Constify(arg0)), rv);
   35340           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35341           0 :     return false;
   35342             :   }
   35343           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35344             : 
   35345           0 :   return true;
   35346             : }
   35347             : 
   35348             : static const JSJitInfo scroll_behavior_getterinfo = {
   35349             :   { (JSJitGetterOp)get_scroll_behavior },
   35350             :   { prototypes::id::CSS2Properties },
   35351             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35352             :   JSJitInfo::Getter,
   35353             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35354             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35355             :   false,  /* isInfallible. False in setters. */
   35356             :   false,  /* isMovable.  Not relevant for setters. */
   35357             :   false, /* isEliminatable.  Not relevant for setters. */
   35358             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35359             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35360             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35361             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35362             : };
   35363             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35364             : static_assert(0 < 1, "There is no slot for us");
   35365             : static const JSJitInfo scroll_behavior_setterinfo = {
   35366             :   { (JSJitGetterOp)set_scroll_behavior },
   35367             :   { prototypes::id::CSS2Properties },
   35368             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35369             :   JSJitInfo::Setter,
   35370             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35371             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35372             :   false,  /* isInfallible. False in setters. */
   35373             :   false,  /* isMovable.  Not relevant for setters. */
   35374             :   false, /* isEliminatable.  Not relevant for setters. */
   35375             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35376             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35377             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35378             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35379             : };
   35380             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35381             : static_assert(0 < 1, "There is no slot for us");
   35382             : 
   35383             : static bool
   35384           0 : get_scrollSnapCoordinate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35385             : {
   35386           0 :   binding_detail::FastErrorResult rv;
   35387           0 :   DOMString result;
   35388           0 :   self->GetScrollSnapCoordinate(result, rv);
   35389           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35390           0 :     return false;
   35391             :   }
   35392           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35393           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35394           0 :     return false;
   35395             :   }
   35396           0 :   return true;
   35397             : }
   35398             : 
   35399             : static bool
   35400           0 : set_scrollSnapCoordinate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35401             : {
   35402           0 :   binding_detail::FakeString arg0;
   35403           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35404           0 :     return false;
   35405             :   }
   35406           0 :   binding_detail::FastErrorResult rv;
   35407           0 :   self->SetScrollSnapCoordinate(NonNullHelper(Constify(arg0)), rv);
   35408           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35409           0 :     return false;
   35410             :   }
   35411           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35412             : 
   35413           0 :   return true;
   35414             : }
   35415             : 
   35416             : static const JSJitInfo scrollSnapCoordinate_getterinfo = {
   35417             :   { (JSJitGetterOp)get_scrollSnapCoordinate },
   35418             :   { prototypes::id::CSS2Properties },
   35419             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35420             :   JSJitInfo::Getter,
   35421             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35422             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35423             :   false,  /* isInfallible. False in setters. */
   35424             :   false,  /* isMovable.  Not relevant for setters. */
   35425             :   false, /* isEliminatable.  Not relevant for setters. */
   35426             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35427             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35428             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35429             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35430             : };
   35431             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35432             : static_assert(0 < 1, "There is no slot for us");
   35433             : static const JSJitInfo scrollSnapCoordinate_setterinfo = {
   35434             :   { (JSJitGetterOp)set_scrollSnapCoordinate },
   35435             :   { prototypes::id::CSS2Properties },
   35436             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35437             :   JSJitInfo::Setter,
   35438             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35439             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35440             :   false,  /* isInfallible. False in setters. */
   35441             :   false,  /* isMovable.  Not relevant for setters. */
   35442             :   false, /* isEliminatable.  Not relevant for setters. */
   35443             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35444             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35445             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35446             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35447             : };
   35448             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35449             : static_assert(0 < 1, "There is no slot for us");
   35450             : 
   35451             : static bool
   35452           0 : get_scroll_snap_coordinate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35453             : {
   35454           0 :   binding_detail::FastErrorResult rv;
   35455           0 :   DOMString result;
   35456           0 :   self->GetScrollSnapCoordinate(result, rv);
   35457           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35458           0 :     return false;
   35459             :   }
   35460           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35461           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35462           0 :     return false;
   35463             :   }
   35464           0 :   return true;
   35465             : }
   35466             : 
   35467             : static bool
   35468           0 : set_scroll_snap_coordinate(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35469             : {
   35470           0 :   binding_detail::FakeString arg0;
   35471           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35472           0 :     return false;
   35473             :   }
   35474           0 :   binding_detail::FastErrorResult rv;
   35475           0 :   self->SetScrollSnapCoordinate(NonNullHelper(Constify(arg0)), rv);
   35476           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35477           0 :     return false;
   35478             :   }
   35479           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35480             : 
   35481           0 :   return true;
   35482             : }
   35483             : 
   35484             : static const JSJitInfo scroll_snap_coordinate_getterinfo = {
   35485             :   { (JSJitGetterOp)get_scroll_snap_coordinate },
   35486             :   { prototypes::id::CSS2Properties },
   35487             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35488             :   JSJitInfo::Getter,
   35489             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35490             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35491             :   false,  /* isInfallible. False in setters. */
   35492             :   false,  /* isMovable.  Not relevant for setters. */
   35493             :   false, /* isEliminatable.  Not relevant for setters. */
   35494             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35495             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35496             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35497             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35498             : };
   35499             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35500             : static_assert(0 < 1, "There is no slot for us");
   35501             : static const JSJitInfo scroll_snap_coordinate_setterinfo = {
   35502             :   { (JSJitGetterOp)set_scroll_snap_coordinate },
   35503             :   { prototypes::id::CSS2Properties },
   35504             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35505             :   JSJitInfo::Setter,
   35506             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35507             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35508             :   false,  /* isInfallible. False in setters. */
   35509             :   false,  /* isMovable.  Not relevant for setters. */
   35510             :   false, /* isEliminatable.  Not relevant for setters. */
   35511             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35512             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35513             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35514             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35515             : };
   35516             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35517             : static_assert(0 < 1, "There is no slot for us");
   35518             : 
   35519             : static bool
   35520           0 : get_scrollSnapDestination(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35521             : {
   35522           0 :   binding_detail::FastErrorResult rv;
   35523           0 :   DOMString result;
   35524           0 :   self->GetScrollSnapDestination(result, rv);
   35525           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35526           0 :     return false;
   35527             :   }
   35528           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35529           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35530           0 :     return false;
   35531             :   }
   35532           0 :   return true;
   35533             : }
   35534             : 
   35535             : static bool
   35536           0 : set_scrollSnapDestination(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35537             : {
   35538           0 :   binding_detail::FakeString arg0;
   35539           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35540           0 :     return false;
   35541             :   }
   35542           0 :   binding_detail::FastErrorResult rv;
   35543           0 :   self->SetScrollSnapDestination(NonNullHelper(Constify(arg0)), rv);
   35544           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35545           0 :     return false;
   35546             :   }
   35547           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35548             : 
   35549           0 :   return true;
   35550             : }
   35551             : 
   35552             : static const JSJitInfo scrollSnapDestination_getterinfo = {
   35553             :   { (JSJitGetterOp)get_scrollSnapDestination },
   35554             :   { prototypes::id::CSS2Properties },
   35555             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35556             :   JSJitInfo::Getter,
   35557             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35558             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35559             :   false,  /* isInfallible. False in setters. */
   35560             :   false,  /* isMovable.  Not relevant for setters. */
   35561             :   false, /* isEliminatable.  Not relevant for setters. */
   35562             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35563             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35564             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35565             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35566             : };
   35567             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35568             : static_assert(0 < 1, "There is no slot for us");
   35569             : static const JSJitInfo scrollSnapDestination_setterinfo = {
   35570             :   { (JSJitGetterOp)set_scrollSnapDestination },
   35571             :   { prototypes::id::CSS2Properties },
   35572             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35573             :   JSJitInfo::Setter,
   35574             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35575             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35576             :   false,  /* isInfallible. False in setters. */
   35577             :   false,  /* isMovable.  Not relevant for setters. */
   35578             :   false, /* isEliminatable.  Not relevant for setters. */
   35579             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35580             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35581             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35582             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35583             : };
   35584             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35585             : static_assert(0 < 1, "There is no slot for us");
   35586             : 
   35587             : static bool
   35588           0 : get_scroll_snap_destination(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35589             : {
   35590           0 :   binding_detail::FastErrorResult rv;
   35591           0 :   DOMString result;
   35592           0 :   self->GetScrollSnapDestination(result, rv);
   35593           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35594           0 :     return false;
   35595             :   }
   35596           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35597           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35598           0 :     return false;
   35599             :   }
   35600           0 :   return true;
   35601             : }
   35602             : 
   35603             : static bool
   35604           0 : set_scroll_snap_destination(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35605             : {
   35606           0 :   binding_detail::FakeString arg0;
   35607           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35608           0 :     return false;
   35609             :   }
   35610           0 :   binding_detail::FastErrorResult rv;
   35611           0 :   self->SetScrollSnapDestination(NonNullHelper(Constify(arg0)), rv);
   35612           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35613           0 :     return false;
   35614             :   }
   35615           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35616             : 
   35617           0 :   return true;
   35618             : }
   35619             : 
   35620             : static const JSJitInfo scroll_snap_destination_getterinfo = {
   35621             :   { (JSJitGetterOp)get_scroll_snap_destination },
   35622             :   { prototypes::id::CSS2Properties },
   35623             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35624             :   JSJitInfo::Getter,
   35625             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35626             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35627             :   false,  /* isInfallible. False in setters. */
   35628             :   false,  /* isMovable.  Not relevant for setters. */
   35629             :   false, /* isEliminatable.  Not relevant for setters. */
   35630             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35631             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35632             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35633             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35634             : };
   35635             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35636             : static_assert(0 < 1, "There is no slot for us");
   35637             : static const JSJitInfo scroll_snap_destination_setterinfo = {
   35638             :   { (JSJitGetterOp)set_scroll_snap_destination },
   35639             :   { prototypes::id::CSS2Properties },
   35640             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35641             :   JSJitInfo::Setter,
   35642             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35643             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35644             :   false,  /* isInfallible. False in setters. */
   35645             :   false,  /* isMovable.  Not relevant for setters. */
   35646             :   false, /* isEliminatable.  Not relevant for setters. */
   35647             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35648             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35649             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35650             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35651             : };
   35652             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35653             : static_assert(0 < 1, "There is no slot for us");
   35654             : 
   35655             : static bool
   35656           0 : get_scrollSnapPointsX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35657             : {
   35658           0 :   binding_detail::FastErrorResult rv;
   35659           0 :   DOMString result;
   35660           0 :   self->GetScrollSnapPointsX(result, rv);
   35661           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35662           0 :     return false;
   35663             :   }
   35664           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35665           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35666           0 :     return false;
   35667             :   }
   35668           0 :   return true;
   35669             : }
   35670             : 
   35671             : static bool
   35672           0 : set_scrollSnapPointsX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35673             : {
   35674           0 :   binding_detail::FakeString arg0;
   35675           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35676           0 :     return false;
   35677             :   }
   35678           0 :   binding_detail::FastErrorResult rv;
   35679           0 :   self->SetScrollSnapPointsX(NonNullHelper(Constify(arg0)), rv);
   35680           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35681           0 :     return false;
   35682             :   }
   35683           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35684             : 
   35685           0 :   return true;
   35686             : }
   35687             : 
   35688             : static const JSJitInfo scrollSnapPointsX_getterinfo = {
   35689             :   { (JSJitGetterOp)get_scrollSnapPointsX },
   35690             :   { prototypes::id::CSS2Properties },
   35691             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35692             :   JSJitInfo::Getter,
   35693             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35694             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35695             :   false,  /* isInfallible. False in setters. */
   35696             :   false,  /* isMovable.  Not relevant for setters. */
   35697             :   false, /* isEliminatable.  Not relevant for setters. */
   35698             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35699             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35700             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35701             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35702             : };
   35703             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35704             : static_assert(0 < 1, "There is no slot for us");
   35705             : static const JSJitInfo scrollSnapPointsX_setterinfo = {
   35706             :   { (JSJitGetterOp)set_scrollSnapPointsX },
   35707             :   { prototypes::id::CSS2Properties },
   35708             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35709             :   JSJitInfo::Setter,
   35710             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35711             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35712             :   false,  /* isInfallible. False in setters. */
   35713             :   false,  /* isMovable.  Not relevant for setters. */
   35714             :   false, /* isEliminatable.  Not relevant for setters. */
   35715             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35716             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35717             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35718             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35719             : };
   35720             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35721             : static_assert(0 < 1, "There is no slot for us");
   35722             : 
   35723             : static bool
   35724           0 : get_scroll_snap_points_x(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35725             : {
   35726           0 :   binding_detail::FastErrorResult rv;
   35727           0 :   DOMString result;
   35728           0 :   self->GetScrollSnapPointsX(result, rv);
   35729           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35730           0 :     return false;
   35731             :   }
   35732           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35733           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35734           0 :     return false;
   35735             :   }
   35736           0 :   return true;
   35737             : }
   35738             : 
   35739             : static bool
   35740           0 : set_scroll_snap_points_x(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35741             : {
   35742           0 :   binding_detail::FakeString arg0;
   35743           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35744           0 :     return false;
   35745             :   }
   35746           0 :   binding_detail::FastErrorResult rv;
   35747           0 :   self->SetScrollSnapPointsX(NonNullHelper(Constify(arg0)), rv);
   35748           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35749           0 :     return false;
   35750             :   }
   35751           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35752             : 
   35753           0 :   return true;
   35754             : }
   35755             : 
   35756             : static const JSJitInfo scroll_snap_points_x_getterinfo = {
   35757             :   { (JSJitGetterOp)get_scroll_snap_points_x },
   35758             :   { prototypes::id::CSS2Properties },
   35759             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35760             :   JSJitInfo::Getter,
   35761             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35762             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35763             :   false,  /* isInfallible. False in setters. */
   35764             :   false,  /* isMovable.  Not relevant for setters. */
   35765             :   false, /* isEliminatable.  Not relevant for setters. */
   35766             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35767             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35768             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35769             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35770             : };
   35771             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35772             : static_assert(0 < 1, "There is no slot for us");
   35773             : static const JSJitInfo scroll_snap_points_x_setterinfo = {
   35774             :   { (JSJitGetterOp)set_scroll_snap_points_x },
   35775             :   { prototypes::id::CSS2Properties },
   35776             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35777             :   JSJitInfo::Setter,
   35778             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35779             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35780             :   false,  /* isInfallible. False in setters. */
   35781             :   false,  /* isMovable.  Not relevant for setters. */
   35782             :   false, /* isEliminatable.  Not relevant for setters. */
   35783             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35784             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35785             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35786             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35787             : };
   35788             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35789             : static_assert(0 < 1, "There is no slot for us");
   35790             : 
   35791             : static bool
   35792           0 : get_scrollSnapPointsY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35793             : {
   35794           0 :   binding_detail::FastErrorResult rv;
   35795           0 :   DOMString result;
   35796           0 :   self->GetScrollSnapPointsY(result, rv);
   35797           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35798           0 :     return false;
   35799             :   }
   35800           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35801           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35802           0 :     return false;
   35803             :   }
   35804           0 :   return true;
   35805             : }
   35806             : 
   35807             : static bool
   35808           0 : set_scrollSnapPointsY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35809             : {
   35810           0 :   binding_detail::FakeString arg0;
   35811           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35812           0 :     return false;
   35813             :   }
   35814           0 :   binding_detail::FastErrorResult rv;
   35815           0 :   self->SetScrollSnapPointsY(NonNullHelper(Constify(arg0)), rv);
   35816           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35817           0 :     return false;
   35818             :   }
   35819           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35820             : 
   35821           0 :   return true;
   35822             : }
   35823             : 
   35824             : static const JSJitInfo scrollSnapPointsY_getterinfo = {
   35825             :   { (JSJitGetterOp)get_scrollSnapPointsY },
   35826             :   { prototypes::id::CSS2Properties },
   35827             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35828             :   JSJitInfo::Getter,
   35829             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35830             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35831             :   false,  /* isInfallible. False in setters. */
   35832             :   false,  /* isMovable.  Not relevant for setters. */
   35833             :   false, /* isEliminatable.  Not relevant for setters. */
   35834             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35835             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35836             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35837             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35838             : };
   35839             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35840             : static_assert(0 < 1, "There is no slot for us");
   35841             : static const JSJitInfo scrollSnapPointsY_setterinfo = {
   35842             :   { (JSJitGetterOp)set_scrollSnapPointsY },
   35843             :   { prototypes::id::CSS2Properties },
   35844             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35845             :   JSJitInfo::Setter,
   35846             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35847             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35848             :   false,  /* isInfallible. False in setters. */
   35849             :   false,  /* isMovable.  Not relevant for setters. */
   35850             :   false, /* isEliminatable.  Not relevant for setters. */
   35851             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35852             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35853             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35854             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35855             : };
   35856             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35857             : static_assert(0 < 1, "There is no slot for us");
   35858             : 
   35859             : static bool
   35860           0 : get_scroll_snap_points_y(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35861             : {
   35862           0 :   binding_detail::FastErrorResult rv;
   35863           0 :   DOMString result;
   35864           0 :   self->GetScrollSnapPointsY(result, rv);
   35865           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35866           0 :     return false;
   35867             :   }
   35868           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35869           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35870           0 :     return false;
   35871             :   }
   35872           0 :   return true;
   35873             : }
   35874             : 
   35875             : static bool
   35876           0 : set_scroll_snap_points_y(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35877             : {
   35878           0 :   binding_detail::FakeString arg0;
   35879           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35880           0 :     return false;
   35881             :   }
   35882           0 :   binding_detail::FastErrorResult rv;
   35883           0 :   self->SetScrollSnapPointsY(NonNullHelper(Constify(arg0)), rv);
   35884           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35885           0 :     return false;
   35886             :   }
   35887           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35888             : 
   35889           0 :   return true;
   35890             : }
   35891             : 
   35892             : static const JSJitInfo scroll_snap_points_y_getterinfo = {
   35893             :   { (JSJitGetterOp)get_scroll_snap_points_y },
   35894             :   { prototypes::id::CSS2Properties },
   35895             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35896             :   JSJitInfo::Getter,
   35897             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35898             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35899             :   false,  /* isInfallible. False in setters. */
   35900             :   false,  /* isMovable.  Not relevant for setters. */
   35901             :   false, /* isEliminatable.  Not relevant for setters. */
   35902             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35903             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35904             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35905             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35906             : };
   35907             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35908             : static_assert(0 < 1, "There is no slot for us");
   35909             : static const JSJitInfo scroll_snap_points_y_setterinfo = {
   35910             :   { (JSJitGetterOp)set_scroll_snap_points_y },
   35911             :   { prototypes::id::CSS2Properties },
   35912             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35913             :   JSJitInfo::Setter,
   35914             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35915             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35916             :   false,  /* isInfallible. False in setters. */
   35917             :   false,  /* isMovable.  Not relevant for setters. */
   35918             :   false, /* isEliminatable.  Not relevant for setters. */
   35919             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35920             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35921             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35922             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35923             : };
   35924             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35925             : static_assert(0 < 1, "There is no slot for us");
   35926             : 
   35927             : static bool
   35928           0 : get_scrollSnapType(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35929             : {
   35930           0 :   binding_detail::FastErrorResult rv;
   35931           0 :   DOMString result;
   35932           0 :   self->GetScrollSnapType(result, rv);
   35933           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35934           0 :     return false;
   35935             :   }
   35936           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35937           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   35938           0 :     return false;
   35939             :   }
   35940           0 :   return true;
   35941             : }
   35942             : 
   35943             : static bool
   35944           0 : set_scrollSnapType(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   35945             : {
   35946           0 :   binding_detail::FakeString arg0;
   35947           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   35948           0 :     return false;
   35949             :   }
   35950           0 :   binding_detail::FastErrorResult rv;
   35951           0 :   self->SetScrollSnapType(NonNullHelper(Constify(arg0)), rv);
   35952           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   35953           0 :     return false;
   35954             :   }
   35955           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   35956             : 
   35957           0 :   return true;
   35958             : }
   35959             : 
   35960             : static const JSJitInfo scrollSnapType_getterinfo = {
   35961             :   { (JSJitGetterOp)get_scrollSnapType },
   35962             :   { prototypes::id::CSS2Properties },
   35963             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35964             :   JSJitInfo::Getter,
   35965             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35966             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   35967             :   false,  /* isInfallible. False in setters. */
   35968             :   false,  /* isMovable.  Not relevant for setters. */
   35969             :   false, /* isEliminatable.  Not relevant for setters. */
   35970             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35971             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35972             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35973             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35974             : };
   35975             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35976             : static_assert(0 < 1, "There is no slot for us");
   35977             : static const JSJitInfo scrollSnapType_setterinfo = {
   35978             :   { (JSJitGetterOp)set_scrollSnapType },
   35979             :   { prototypes::id::CSS2Properties },
   35980             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   35981             :   JSJitInfo::Setter,
   35982             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   35983             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   35984             :   false,  /* isInfallible. False in setters. */
   35985             :   false,  /* isMovable.  Not relevant for setters. */
   35986             :   false, /* isEliminatable.  Not relevant for setters. */
   35987             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   35988             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   35989             :   false,  /* isTypedMethod.  Only relevant for methods. */
   35990             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   35991             : };
   35992             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   35993             : static_assert(0 < 1, "There is no slot for us");
   35994             : 
   35995             : static bool
   35996           0 : get_scroll_snap_type(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   35997             : {
   35998           0 :   binding_detail::FastErrorResult rv;
   35999           0 :   DOMString result;
   36000           0 :   self->GetScrollSnapType(result, rv);
   36001           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36002           0 :     return false;
   36003             :   }
   36004           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36005           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36006           0 :     return false;
   36007             :   }
   36008           0 :   return true;
   36009             : }
   36010             : 
   36011             : static bool
   36012           0 : set_scroll_snap_type(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36013             : {
   36014           0 :   binding_detail::FakeString arg0;
   36015           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36016           0 :     return false;
   36017             :   }
   36018           0 :   binding_detail::FastErrorResult rv;
   36019           0 :   self->SetScrollSnapType(NonNullHelper(Constify(arg0)), rv);
   36020           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36021           0 :     return false;
   36022             :   }
   36023           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36024             : 
   36025           0 :   return true;
   36026             : }
   36027             : 
   36028             : static const JSJitInfo scroll_snap_type_getterinfo = {
   36029             :   { (JSJitGetterOp)get_scroll_snap_type },
   36030             :   { prototypes::id::CSS2Properties },
   36031             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36032             :   JSJitInfo::Getter,
   36033             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36034             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36035             :   false,  /* isInfallible. False in setters. */
   36036             :   false,  /* isMovable.  Not relevant for setters. */
   36037             :   false, /* isEliminatable.  Not relevant for setters. */
   36038             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36039             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36040             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36041             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36042             : };
   36043             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36044             : static_assert(0 < 1, "There is no slot for us");
   36045             : static const JSJitInfo scroll_snap_type_setterinfo = {
   36046             :   { (JSJitGetterOp)set_scroll_snap_type },
   36047             :   { prototypes::id::CSS2Properties },
   36048             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36049             :   JSJitInfo::Setter,
   36050             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36051             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36052             :   false,  /* isInfallible. False in setters. */
   36053             :   false,  /* isMovable.  Not relevant for setters. */
   36054             :   false, /* isEliminatable.  Not relevant for setters. */
   36055             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36056             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36057             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36058             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36059             : };
   36060             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36061             : static_assert(0 < 1, "There is no slot for us");
   36062             : 
   36063             : static bool
   36064           0 : get_scrollSnapTypeX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36065             : {
   36066           0 :   binding_detail::FastErrorResult rv;
   36067           0 :   DOMString result;
   36068           0 :   self->GetScrollSnapTypeX(result, rv);
   36069           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36070           0 :     return false;
   36071             :   }
   36072           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36073           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36074           0 :     return false;
   36075             :   }
   36076           0 :   return true;
   36077             : }
   36078             : 
   36079             : static bool
   36080           0 : set_scrollSnapTypeX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36081             : {
   36082           0 :   binding_detail::FakeString arg0;
   36083           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36084           0 :     return false;
   36085             :   }
   36086           0 :   binding_detail::FastErrorResult rv;
   36087           0 :   self->SetScrollSnapTypeX(NonNullHelper(Constify(arg0)), rv);
   36088           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36089           0 :     return false;
   36090             :   }
   36091           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36092             : 
   36093           0 :   return true;
   36094             : }
   36095             : 
   36096             : static const JSJitInfo scrollSnapTypeX_getterinfo = {
   36097             :   { (JSJitGetterOp)get_scrollSnapTypeX },
   36098             :   { prototypes::id::CSS2Properties },
   36099             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36100             :   JSJitInfo::Getter,
   36101             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36102             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36103             :   false,  /* isInfallible. False in setters. */
   36104             :   false,  /* isMovable.  Not relevant for setters. */
   36105             :   false, /* isEliminatable.  Not relevant for setters. */
   36106             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36107             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36108             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36109             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36110             : };
   36111             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36112             : static_assert(0 < 1, "There is no slot for us");
   36113             : static const JSJitInfo scrollSnapTypeX_setterinfo = {
   36114             :   { (JSJitGetterOp)set_scrollSnapTypeX },
   36115             :   { prototypes::id::CSS2Properties },
   36116             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36117             :   JSJitInfo::Setter,
   36118             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36119             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36120             :   false,  /* isInfallible. False in setters. */
   36121             :   false,  /* isMovable.  Not relevant for setters. */
   36122             :   false, /* isEliminatable.  Not relevant for setters. */
   36123             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36124             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36125             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36126             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36127             : };
   36128             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36129             : static_assert(0 < 1, "There is no slot for us");
   36130             : 
   36131             : static bool
   36132           0 : get_scroll_snap_type_x(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36133             : {
   36134           0 :   binding_detail::FastErrorResult rv;
   36135           0 :   DOMString result;
   36136           0 :   self->GetScrollSnapTypeX(result, rv);
   36137           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36138           0 :     return false;
   36139             :   }
   36140           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36141           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36142           0 :     return false;
   36143             :   }
   36144           0 :   return true;
   36145             : }
   36146             : 
   36147             : static bool
   36148           0 : set_scroll_snap_type_x(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36149             : {
   36150           0 :   binding_detail::FakeString arg0;
   36151           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36152           0 :     return false;
   36153             :   }
   36154           0 :   binding_detail::FastErrorResult rv;
   36155           0 :   self->SetScrollSnapTypeX(NonNullHelper(Constify(arg0)), rv);
   36156           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36157           0 :     return false;
   36158             :   }
   36159           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36160             : 
   36161           0 :   return true;
   36162             : }
   36163             : 
   36164             : static const JSJitInfo scroll_snap_type_x_getterinfo = {
   36165             :   { (JSJitGetterOp)get_scroll_snap_type_x },
   36166             :   { prototypes::id::CSS2Properties },
   36167             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36168             :   JSJitInfo::Getter,
   36169             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36170             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36171             :   false,  /* isInfallible. False in setters. */
   36172             :   false,  /* isMovable.  Not relevant for setters. */
   36173             :   false, /* isEliminatable.  Not relevant for setters. */
   36174             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36175             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36176             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36177             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36178             : };
   36179             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36180             : static_assert(0 < 1, "There is no slot for us");
   36181             : static const JSJitInfo scroll_snap_type_x_setterinfo = {
   36182             :   { (JSJitGetterOp)set_scroll_snap_type_x },
   36183             :   { prototypes::id::CSS2Properties },
   36184             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36185             :   JSJitInfo::Setter,
   36186             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36187             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36188             :   false,  /* isInfallible. False in setters. */
   36189             :   false,  /* isMovable.  Not relevant for setters. */
   36190             :   false, /* isEliminatable.  Not relevant for setters. */
   36191             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36192             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36193             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36194             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36195             : };
   36196             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36197             : static_assert(0 < 1, "There is no slot for us");
   36198             : 
   36199             : static bool
   36200           0 : get_scrollSnapTypeY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36201             : {
   36202           0 :   binding_detail::FastErrorResult rv;
   36203           0 :   DOMString result;
   36204           0 :   self->GetScrollSnapTypeY(result, rv);
   36205           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36206           0 :     return false;
   36207             :   }
   36208           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36209           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36210           0 :     return false;
   36211             :   }
   36212           0 :   return true;
   36213             : }
   36214             : 
   36215             : static bool
   36216           0 : set_scrollSnapTypeY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36217             : {
   36218           0 :   binding_detail::FakeString arg0;
   36219           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36220           0 :     return false;
   36221             :   }
   36222           0 :   binding_detail::FastErrorResult rv;
   36223           0 :   self->SetScrollSnapTypeY(NonNullHelper(Constify(arg0)), rv);
   36224           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36225           0 :     return false;
   36226             :   }
   36227           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36228             : 
   36229           0 :   return true;
   36230             : }
   36231             : 
   36232             : static const JSJitInfo scrollSnapTypeY_getterinfo = {
   36233             :   { (JSJitGetterOp)get_scrollSnapTypeY },
   36234             :   { prototypes::id::CSS2Properties },
   36235             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36236             :   JSJitInfo::Getter,
   36237             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36238             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36239             :   false,  /* isInfallible. False in setters. */
   36240             :   false,  /* isMovable.  Not relevant for setters. */
   36241             :   false, /* isEliminatable.  Not relevant for setters. */
   36242             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36243             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36244             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36245             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36246             : };
   36247             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36248             : static_assert(0 < 1, "There is no slot for us");
   36249             : static const JSJitInfo scrollSnapTypeY_setterinfo = {
   36250             :   { (JSJitGetterOp)set_scrollSnapTypeY },
   36251             :   { prototypes::id::CSS2Properties },
   36252             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36253             :   JSJitInfo::Setter,
   36254             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36255             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36256             :   false,  /* isInfallible. False in setters. */
   36257             :   false,  /* isMovable.  Not relevant for setters. */
   36258             :   false, /* isEliminatable.  Not relevant for setters. */
   36259             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36260             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36261             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36262             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36263             : };
   36264             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36265             : static_assert(0 < 1, "There is no slot for us");
   36266             : 
   36267             : static bool
   36268           0 : get_scroll_snap_type_y(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36269             : {
   36270           0 :   binding_detail::FastErrorResult rv;
   36271           0 :   DOMString result;
   36272           0 :   self->GetScrollSnapTypeY(result, rv);
   36273           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36274           0 :     return false;
   36275             :   }
   36276           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36277           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36278           0 :     return false;
   36279             :   }
   36280           0 :   return true;
   36281             : }
   36282             : 
   36283             : static bool
   36284           0 : set_scroll_snap_type_y(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36285             : {
   36286           0 :   binding_detail::FakeString arg0;
   36287           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36288           0 :     return false;
   36289             :   }
   36290           0 :   binding_detail::FastErrorResult rv;
   36291           0 :   self->SetScrollSnapTypeY(NonNullHelper(Constify(arg0)), rv);
   36292           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36293           0 :     return false;
   36294             :   }
   36295           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36296             : 
   36297           0 :   return true;
   36298             : }
   36299             : 
   36300             : static const JSJitInfo scroll_snap_type_y_getterinfo = {
   36301             :   { (JSJitGetterOp)get_scroll_snap_type_y },
   36302             :   { prototypes::id::CSS2Properties },
   36303             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36304             :   JSJitInfo::Getter,
   36305             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36306             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36307             :   false,  /* isInfallible. False in setters. */
   36308             :   false,  /* isMovable.  Not relevant for setters. */
   36309             :   false, /* isEliminatable.  Not relevant for setters. */
   36310             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36311             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36312             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36313             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36314             : };
   36315             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36316             : static_assert(0 < 1, "There is no slot for us");
   36317             : static const JSJitInfo scroll_snap_type_y_setterinfo = {
   36318             :   { (JSJitGetterOp)set_scroll_snap_type_y },
   36319             :   { prototypes::id::CSS2Properties },
   36320             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36321             :   JSJitInfo::Setter,
   36322             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36323             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36324             :   false,  /* isInfallible. False in setters. */
   36325             :   false,  /* isMovable.  Not relevant for setters. */
   36326             :   false, /* isEliminatable.  Not relevant for setters. */
   36327             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36328             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36329             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36330             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36331             : };
   36332             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36333             : static_assert(0 < 1, "There is no slot for us");
   36334             : 
   36335             : static bool
   36336           0 : get_shapeOutside(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36337             : {
   36338           0 :   binding_detail::FastErrorResult rv;
   36339           0 :   DOMString result;
   36340           0 :   self->GetShapeOutside(result, rv);
   36341           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36342           0 :     return false;
   36343             :   }
   36344           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36345           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36346           0 :     return false;
   36347             :   }
   36348           0 :   return true;
   36349             : }
   36350             : 
   36351             : static bool
   36352           0 : set_shapeOutside(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36353             : {
   36354           0 :   binding_detail::FakeString arg0;
   36355           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36356           0 :     return false;
   36357             :   }
   36358           0 :   binding_detail::FastErrorResult rv;
   36359           0 :   self->SetShapeOutside(NonNullHelper(Constify(arg0)), rv);
   36360           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36361           0 :     return false;
   36362             :   }
   36363           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36364             : 
   36365           0 :   return true;
   36366             : }
   36367             : 
   36368             : static const JSJitInfo shapeOutside_getterinfo = {
   36369             :   { (JSJitGetterOp)get_shapeOutside },
   36370             :   { prototypes::id::CSS2Properties },
   36371             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36372             :   JSJitInfo::Getter,
   36373             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36374             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36375             :   false,  /* isInfallible. False in setters. */
   36376             :   false,  /* isMovable.  Not relevant for setters. */
   36377             :   false, /* isEliminatable.  Not relevant for setters. */
   36378             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36379             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36380             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36381             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36382             : };
   36383             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36384             : static_assert(0 < 1, "There is no slot for us");
   36385             : static const JSJitInfo shapeOutside_setterinfo = {
   36386             :   { (JSJitGetterOp)set_shapeOutside },
   36387             :   { prototypes::id::CSS2Properties },
   36388             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36389             :   JSJitInfo::Setter,
   36390             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36391             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36392             :   false,  /* isInfallible. False in setters. */
   36393             :   false,  /* isMovable.  Not relevant for setters. */
   36394             :   false, /* isEliminatable.  Not relevant for setters. */
   36395             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36396             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36397             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36398             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36399             : };
   36400             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36401             : static_assert(0 < 1, "There is no slot for us");
   36402             : 
   36403             : static bool
   36404           0 : get_shape_outside(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36405             : {
   36406           0 :   binding_detail::FastErrorResult rv;
   36407           0 :   DOMString result;
   36408           0 :   self->GetShapeOutside(result, rv);
   36409           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36410           0 :     return false;
   36411             :   }
   36412           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36413           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36414           0 :     return false;
   36415             :   }
   36416           0 :   return true;
   36417             : }
   36418             : 
   36419             : static bool
   36420           0 : set_shape_outside(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36421             : {
   36422           0 :   binding_detail::FakeString arg0;
   36423           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36424           0 :     return false;
   36425             :   }
   36426           0 :   binding_detail::FastErrorResult rv;
   36427           0 :   self->SetShapeOutside(NonNullHelper(Constify(arg0)), rv);
   36428           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36429           0 :     return false;
   36430             :   }
   36431           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36432             : 
   36433           0 :   return true;
   36434             : }
   36435             : 
   36436             : static const JSJitInfo shape_outside_getterinfo = {
   36437             :   { (JSJitGetterOp)get_shape_outside },
   36438             :   { prototypes::id::CSS2Properties },
   36439             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36440             :   JSJitInfo::Getter,
   36441             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36442             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36443             :   false,  /* isInfallible. False in setters. */
   36444             :   false,  /* isMovable.  Not relevant for setters. */
   36445             :   false, /* isEliminatable.  Not relevant for setters. */
   36446             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36447             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36448             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36449             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36450             : };
   36451             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36452             : static_assert(0 < 1, "There is no slot for us");
   36453             : static const JSJitInfo shape_outside_setterinfo = {
   36454             :   { (JSJitGetterOp)set_shape_outside },
   36455             :   { prototypes::id::CSS2Properties },
   36456             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36457             :   JSJitInfo::Setter,
   36458             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36459             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36460             :   false,  /* isInfallible. False in setters. */
   36461             :   false,  /* isMovable.  Not relevant for setters. */
   36462             :   false, /* isEliminatable.  Not relevant for setters. */
   36463             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36464             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36465             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36466             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36467             : };
   36468             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36469             : static_assert(0 < 1, "There is no slot for us");
   36470             : 
   36471             : static bool
   36472           0 : get_shapeRendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36473             : {
   36474           0 :   binding_detail::FastErrorResult rv;
   36475           0 :   DOMString result;
   36476           0 :   self->GetShapeRendering(result, rv);
   36477           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36478           0 :     return false;
   36479             :   }
   36480           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36481           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36482           0 :     return false;
   36483             :   }
   36484           0 :   return true;
   36485             : }
   36486             : 
   36487             : static bool
   36488           0 : set_shapeRendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36489             : {
   36490           0 :   binding_detail::FakeString arg0;
   36491           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36492           0 :     return false;
   36493             :   }
   36494           0 :   binding_detail::FastErrorResult rv;
   36495           0 :   self->SetShapeRendering(NonNullHelper(Constify(arg0)), rv);
   36496           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36497           0 :     return false;
   36498             :   }
   36499           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36500             : 
   36501           0 :   return true;
   36502             : }
   36503             : 
   36504             : static const JSJitInfo shapeRendering_getterinfo = {
   36505             :   { (JSJitGetterOp)get_shapeRendering },
   36506             :   { prototypes::id::CSS2Properties },
   36507             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36508             :   JSJitInfo::Getter,
   36509             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36510             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36511             :   false,  /* isInfallible. False in setters. */
   36512             :   false,  /* isMovable.  Not relevant for setters. */
   36513             :   false, /* isEliminatable.  Not relevant for setters. */
   36514             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36515             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36516             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36517             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36518             : };
   36519             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36520             : static_assert(0 < 1, "There is no slot for us");
   36521             : static const JSJitInfo shapeRendering_setterinfo = {
   36522             :   { (JSJitGetterOp)set_shapeRendering },
   36523             :   { prototypes::id::CSS2Properties },
   36524             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36525             :   JSJitInfo::Setter,
   36526             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36527             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36528             :   false,  /* isInfallible. False in setters. */
   36529             :   false,  /* isMovable.  Not relevant for setters. */
   36530             :   false, /* isEliminatable.  Not relevant for setters. */
   36531             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36532             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36533             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36534             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36535             : };
   36536             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36537             : static_assert(0 < 1, "There is no slot for us");
   36538             : 
   36539             : static bool
   36540           0 : get_shape_rendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36541             : {
   36542           0 :   binding_detail::FastErrorResult rv;
   36543           0 :   DOMString result;
   36544           0 :   self->GetShapeRendering(result, rv);
   36545           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36546           0 :     return false;
   36547             :   }
   36548           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36549           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36550           0 :     return false;
   36551             :   }
   36552           0 :   return true;
   36553             : }
   36554             : 
   36555             : static bool
   36556           0 : set_shape_rendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36557             : {
   36558           0 :   binding_detail::FakeString arg0;
   36559           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36560           0 :     return false;
   36561             :   }
   36562           0 :   binding_detail::FastErrorResult rv;
   36563           0 :   self->SetShapeRendering(NonNullHelper(Constify(arg0)), rv);
   36564           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36565           0 :     return false;
   36566             :   }
   36567           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36568             : 
   36569           0 :   return true;
   36570             : }
   36571             : 
   36572             : static const JSJitInfo shape_rendering_getterinfo = {
   36573             :   { (JSJitGetterOp)get_shape_rendering },
   36574             :   { prototypes::id::CSS2Properties },
   36575             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36576             :   JSJitInfo::Getter,
   36577             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36578             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36579             :   false,  /* isInfallible. False in setters. */
   36580             :   false,  /* isMovable.  Not relevant for setters. */
   36581             :   false, /* isEliminatable.  Not relevant for setters. */
   36582             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36583             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36584             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36585             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36586             : };
   36587             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36588             : static_assert(0 < 1, "There is no slot for us");
   36589             : static const JSJitInfo shape_rendering_setterinfo = {
   36590             :   { (JSJitGetterOp)set_shape_rendering },
   36591             :   { prototypes::id::CSS2Properties },
   36592             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36593             :   JSJitInfo::Setter,
   36594             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36595             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36596             :   false,  /* isInfallible. False in setters. */
   36597             :   false,  /* isMovable.  Not relevant for setters. */
   36598             :   false, /* isEliminatable.  Not relevant for setters. */
   36599             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36600             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36601             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36602             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36603             : };
   36604             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36605             : static_assert(0 < 1, "There is no slot for us");
   36606             : 
   36607             : static bool
   36608           0 : get_MozStackSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36609             : {
   36610           0 :   binding_detail::FastErrorResult rv;
   36611           0 :   DOMString result;
   36612           0 :   self->GetMozStackSizing(result, rv);
   36613           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36614           0 :     return false;
   36615             :   }
   36616           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36617           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36618           0 :     return false;
   36619             :   }
   36620           0 :   return true;
   36621             : }
   36622             : 
   36623             : static bool
   36624           0 : set_MozStackSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36625             : {
   36626           0 :   binding_detail::FakeString arg0;
   36627           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36628           0 :     return false;
   36629             :   }
   36630           0 :   binding_detail::FastErrorResult rv;
   36631           0 :   self->SetMozStackSizing(NonNullHelper(Constify(arg0)), rv);
   36632           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36633           0 :     return false;
   36634             :   }
   36635           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36636             : 
   36637           0 :   return true;
   36638             : }
   36639             : 
   36640             : static const JSJitInfo MozStackSizing_getterinfo = {
   36641             :   { (JSJitGetterOp)get_MozStackSizing },
   36642             :   { prototypes::id::CSS2Properties },
   36643             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36644             :   JSJitInfo::Getter,
   36645             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36646             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36647             :   false,  /* isInfallible. False in setters. */
   36648             :   false,  /* isMovable.  Not relevant for setters. */
   36649             :   false, /* isEliminatable.  Not relevant for setters. */
   36650             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36651             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36652             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36653             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36654             : };
   36655             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36656             : static_assert(0 < 1, "There is no slot for us");
   36657             : static const JSJitInfo MozStackSizing_setterinfo = {
   36658             :   { (JSJitGetterOp)set_MozStackSizing },
   36659             :   { prototypes::id::CSS2Properties },
   36660             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36661             :   JSJitInfo::Setter,
   36662             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36663             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36664             :   false,  /* isInfallible. False in setters. */
   36665             :   false,  /* isMovable.  Not relevant for setters. */
   36666             :   false, /* isEliminatable.  Not relevant for setters. */
   36667             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36668             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36669             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36670             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36671             : };
   36672             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36673             : static_assert(0 < 1, "There is no slot for us");
   36674             : 
   36675             : static bool
   36676           0 : get__moz_stack_sizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36677             : {
   36678           0 :   binding_detail::FastErrorResult rv;
   36679           0 :   DOMString result;
   36680           0 :   self->GetMozStackSizing(result, rv);
   36681           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36682           0 :     return false;
   36683             :   }
   36684           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36685           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36686           0 :     return false;
   36687             :   }
   36688           0 :   return true;
   36689             : }
   36690             : 
   36691             : static bool
   36692           0 : set__moz_stack_sizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36693             : {
   36694           0 :   binding_detail::FakeString arg0;
   36695           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36696           0 :     return false;
   36697             :   }
   36698           0 :   binding_detail::FastErrorResult rv;
   36699           0 :   self->SetMozStackSizing(NonNullHelper(Constify(arg0)), rv);
   36700           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36701           0 :     return false;
   36702             :   }
   36703           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36704             : 
   36705           0 :   return true;
   36706             : }
   36707             : 
   36708             : static const JSJitInfo _moz_stack_sizing_getterinfo = {
   36709             :   { (JSJitGetterOp)get__moz_stack_sizing },
   36710             :   { prototypes::id::CSS2Properties },
   36711             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36712             :   JSJitInfo::Getter,
   36713             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36714             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36715             :   false,  /* isInfallible. False in setters. */
   36716             :   false,  /* isMovable.  Not relevant for setters. */
   36717             :   false, /* isEliminatable.  Not relevant for setters. */
   36718             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36719             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36720             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36721             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36722             : };
   36723             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36724             : static_assert(0 < 1, "There is no slot for us");
   36725             : static const JSJitInfo _moz_stack_sizing_setterinfo = {
   36726             :   { (JSJitGetterOp)set__moz_stack_sizing },
   36727             :   { prototypes::id::CSS2Properties },
   36728             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36729             :   JSJitInfo::Setter,
   36730             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36731             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36732             :   false,  /* isInfallible. False in setters. */
   36733             :   false,  /* isMovable.  Not relevant for setters. */
   36734             :   false, /* isEliminatable.  Not relevant for setters. */
   36735             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36736             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36737             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36738             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36739             : };
   36740             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36741             : static_assert(0 < 1, "There is no slot for us");
   36742             : 
   36743             : static bool
   36744           0 : get_stopColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36745             : {
   36746           0 :   binding_detail::FastErrorResult rv;
   36747           0 :   DOMString result;
   36748           0 :   self->GetStopColor(result, rv);
   36749           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36750           0 :     return false;
   36751             :   }
   36752           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36753           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36754           0 :     return false;
   36755             :   }
   36756           0 :   return true;
   36757             : }
   36758             : 
   36759             : static bool
   36760           0 : set_stopColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36761             : {
   36762           0 :   binding_detail::FakeString arg0;
   36763           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36764           0 :     return false;
   36765             :   }
   36766           0 :   binding_detail::FastErrorResult rv;
   36767           0 :   self->SetStopColor(NonNullHelper(Constify(arg0)), rv);
   36768           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36769           0 :     return false;
   36770             :   }
   36771           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36772             : 
   36773           0 :   return true;
   36774             : }
   36775             : 
   36776             : static const JSJitInfo stopColor_getterinfo = {
   36777             :   { (JSJitGetterOp)get_stopColor },
   36778             :   { prototypes::id::CSS2Properties },
   36779             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36780             :   JSJitInfo::Getter,
   36781             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36782             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36783             :   false,  /* isInfallible. False in setters. */
   36784             :   false,  /* isMovable.  Not relevant for setters. */
   36785             :   false, /* isEliminatable.  Not relevant for setters. */
   36786             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36787             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36788             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36789             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36790             : };
   36791             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36792             : static_assert(0 < 1, "There is no slot for us");
   36793             : static const JSJitInfo stopColor_setterinfo = {
   36794             :   { (JSJitGetterOp)set_stopColor },
   36795             :   { prototypes::id::CSS2Properties },
   36796             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36797             :   JSJitInfo::Setter,
   36798             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36799             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36800             :   false,  /* isInfallible. False in setters. */
   36801             :   false,  /* isMovable.  Not relevant for setters. */
   36802             :   false, /* isEliminatable.  Not relevant for setters. */
   36803             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36804             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36805             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36806             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36807             : };
   36808             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36809             : static_assert(0 < 1, "There is no slot for us");
   36810             : 
   36811             : static bool
   36812           0 : get_stop_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36813             : {
   36814           0 :   binding_detail::FastErrorResult rv;
   36815           0 :   DOMString result;
   36816           0 :   self->GetStopColor(result, rv);
   36817           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36818           0 :     return false;
   36819             :   }
   36820           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36821           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36822           0 :     return false;
   36823             :   }
   36824           0 :   return true;
   36825             : }
   36826             : 
   36827             : static bool
   36828           0 : set_stop_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36829             : {
   36830           0 :   binding_detail::FakeString arg0;
   36831           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36832           0 :     return false;
   36833             :   }
   36834           0 :   binding_detail::FastErrorResult rv;
   36835           0 :   self->SetStopColor(NonNullHelper(Constify(arg0)), rv);
   36836           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36837           0 :     return false;
   36838             :   }
   36839           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36840             : 
   36841           0 :   return true;
   36842             : }
   36843             : 
   36844             : static const JSJitInfo stop_color_getterinfo = {
   36845             :   { (JSJitGetterOp)get_stop_color },
   36846             :   { prototypes::id::CSS2Properties },
   36847             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36848             :   JSJitInfo::Getter,
   36849             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36850             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36851             :   false,  /* isInfallible. False in setters. */
   36852             :   false,  /* isMovable.  Not relevant for setters. */
   36853             :   false, /* isEliminatable.  Not relevant for setters. */
   36854             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36855             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36856             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36857             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36858             : };
   36859             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36860             : static_assert(0 < 1, "There is no slot for us");
   36861             : static const JSJitInfo stop_color_setterinfo = {
   36862             :   { (JSJitGetterOp)set_stop_color },
   36863             :   { prototypes::id::CSS2Properties },
   36864             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36865             :   JSJitInfo::Setter,
   36866             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36867             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36868             :   false,  /* isInfallible. False in setters. */
   36869             :   false,  /* isMovable.  Not relevant for setters. */
   36870             :   false, /* isEliminatable.  Not relevant for setters. */
   36871             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36872             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36873             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36874             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36875             : };
   36876             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36877             : static_assert(0 < 1, "There is no slot for us");
   36878             : 
   36879             : static bool
   36880           0 : get_stopOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36881             : {
   36882           0 :   binding_detail::FastErrorResult rv;
   36883           0 :   DOMString result;
   36884           0 :   self->GetStopOpacity(result, rv);
   36885           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36886           0 :     return false;
   36887             :   }
   36888           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36889           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36890           0 :     return false;
   36891             :   }
   36892           0 :   return true;
   36893             : }
   36894             : 
   36895             : static bool
   36896           0 : set_stopOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36897             : {
   36898           0 :   binding_detail::FakeString arg0;
   36899           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36900           0 :     return false;
   36901             :   }
   36902           0 :   binding_detail::FastErrorResult rv;
   36903           0 :   self->SetStopOpacity(NonNullHelper(Constify(arg0)), rv);
   36904           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36905           0 :     return false;
   36906             :   }
   36907           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36908             : 
   36909           0 :   return true;
   36910             : }
   36911             : 
   36912             : static const JSJitInfo stopOpacity_getterinfo = {
   36913             :   { (JSJitGetterOp)get_stopOpacity },
   36914             :   { prototypes::id::CSS2Properties },
   36915             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36916             :   JSJitInfo::Getter,
   36917             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36918             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36919             :   false,  /* isInfallible. False in setters. */
   36920             :   false,  /* isMovable.  Not relevant for setters. */
   36921             :   false, /* isEliminatable.  Not relevant for setters. */
   36922             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36923             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36924             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36925             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36926             : };
   36927             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36928             : static_assert(0 < 1, "There is no slot for us");
   36929             : static const JSJitInfo stopOpacity_setterinfo = {
   36930             :   { (JSJitGetterOp)set_stopOpacity },
   36931             :   { prototypes::id::CSS2Properties },
   36932             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36933             :   JSJitInfo::Setter,
   36934             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36935             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   36936             :   false,  /* isInfallible. False in setters. */
   36937             :   false,  /* isMovable.  Not relevant for setters. */
   36938             :   false, /* isEliminatable.  Not relevant for setters. */
   36939             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36940             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36941             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36942             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36943             : };
   36944             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36945             : static_assert(0 < 1, "There is no slot for us");
   36946             : 
   36947             : static bool
   36948           0 : get_stop_opacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   36949             : {
   36950           0 :   binding_detail::FastErrorResult rv;
   36951           0 :   DOMString result;
   36952           0 :   self->GetStopOpacity(result, rv);
   36953           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36954           0 :     return false;
   36955             :   }
   36956           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36957           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   36958           0 :     return false;
   36959             :   }
   36960           0 :   return true;
   36961             : }
   36962             : 
   36963             : static bool
   36964           0 : set_stop_opacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   36965             : {
   36966           0 :   binding_detail::FakeString arg0;
   36967           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   36968           0 :     return false;
   36969             :   }
   36970           0 :   binding_detail::FastErrorResult rv;
   36971           0 :   self->SetStopOpacity(NonNullHelper(Constify(arg0)), rv);
   36972           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   36973           0 :     return false;
   36974             :   }
   36975           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   36976             : 
   36977           0 :   return true;
   36978             : }
   36979             : 
   36980             : static const JSJitInfo stop_opacity_getterinfo = {
   36981             :   { (JSJitGetterOp)get_stop_opacity },
   36982             :   { prototypes::id::CSS2Properties },
   36983             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   36984             :   JSJitInfo::Getter,
   36985             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   36986             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   36987             :   false,  /* isInfallible. False in setters. */
   36988             :   false,  /* isMovable.  Not relevant for setters. */
   36989             :   false, /* isEliminatable.  Not relevant for setters. */
   36990             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   36991             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   36992             :   false,  /* isTypedMethod.  Only relevant for methods. */
   36993             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   36994             : };
   36995             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   36996             : static_assert(0 < 1, "There is no slot for us");
   36997             : static const JSJitInfo stop_opacity_setterinfo = {
   36998             :   { (JSJitGetterOp)set_stop_opacity },
   36999             :   { prototypes::id::CSS2Properties },
   37000             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37001             :   JSJitInfo::Setter,
   37002             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37003             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37004             :   false,  /* isInfallible. False in setters. */
   37005             :   false,  /* isMovable.  Not relevant for setters. */
   37006             :   false, /* isEliminatable.  Not relevant for setters. */
   37007             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37008             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37009             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37010             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37011             : };
   37012             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37013             : static_assert(0 < 1, "There is no slot for us");
   37014             : 
   37015             : static bool
   37016           0 : get_stroke(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37017             : {
   37018           0 :   binding_detail::FastErrorResult rv;
   37019           0 :   DOMString result;
   37020           0 :   self->GetStroke(result, rv);
   37021           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37022           0 :     return false;
   37023             :   }
   37024           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37025           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37026           0 :     return false;
   37027             :   }
   37028           0 :   return true;
   37029             : }
   37030             : 
   37031             : static bool
   37032           0 : set_stroke(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37033             : {
   37034           0 :   binding_detail::FakeString arg0;
   37035           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37036           0 :     return false;
   37037             :   }
   37038           0 :   binding_detail::FastErrorResult rv;
   37039           0 :   self->SetStroke(NonNullHelper(Constify(arg0)), rv);
   37040           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37041           0 :     return false;
   37042             :   }
   37043           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37044             : 
   37045           0 :   return true;
   37046             : }
   37047             : 
   37048             : static const JSJitInfo stroke_getterinfo = {
   37049             :   { (JSJitGetterOp)get_stroke },
   37050             :   { prototypes::id::CSS2Properties },
   37051             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37052             :   JSJitInfo::Getter,
   37053             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37054             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37055             :   false,  /* isInfallible. False in setters. */
   37056             :   false,  /* isMovable.  Not relevant for setters. */
   37057             :   false, /* isEliminatable.  Not relevant for setters. */
   37058             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37059             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37060             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37061             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37062             : };
   37063             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37064             : static_assert(0 < 1, "There is no slot for us");
   37065             : static const JSJitInfo stroke_setterinfo = {
   37066             :   { (JSJitGetterOp)set_stroke },
   37067             :   { prototypes::id::CSS2Properties },
   37068             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37069             :   JSJitInfo::Setter,
   37070             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37071             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37072             :   false,  /* isInfallible. False in setters. */
   37073             :   false,  /* isMovable.  Not relevant for setters. */
   37074             :   false, /* isEliminatable.  Not relevant for setters. */
   37075             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37076             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37077             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37078             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37079             : };
   37080             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37081             : static_assert(0 < 1, "There is no slot for us");
   37082             : 
   37083             : static bool
   37084           0 : get_strokeDasharray(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37085             : {
   37086           0 :   binding_detail::FastErrorResult rv;
   37087           0 :   DOMString result;
   37088           0 :   self->GetStrokeDasharray(result, rv);
   37089           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37090           0 :     return false;
   37091             :   }
   37092           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37093           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37094           0 :     return false;
   37095             :   }
   37096           0 :   return true;
   37097             : }
   37098             : 
   37099             : static bool
   37100           0 : set_strokeDasharray(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37101             : {
   37102           0 :   binding_detail::FakeString arg0;
   37103           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37104           0 :     return false;
   37105             :   }
   37106           0 :   binding_detail::FastErrorResult rv;
   37107           0 :   self->SetStrokeDasharray(NonNullHelper(Constify(arg0)), rv);
   37108           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37109           0 :     return false;
   37110             :   }
   37111           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37112             : 
   37113           0 :   return true;
   37114             : }
   37115             : 
   37116             : static const JSJitInfo strokeDasharray_getterinfo = {
   37117             :   { (JSJitGetterOp)get_strokeDasharray },
   37118             :   { prototypes::id::CSS2Properties },
   37119             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37120             :   JSJitInfo::Getter,
   37121             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37122             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37123             :   false,  /* isInfallible. False in setters. */
   37124             :   false,  /* isMovable.  Not relevant for setters. */
   37125             :   false, /* isEliminatable.  Not relevant for setters. */
   37126             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37127             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37128             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37129             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37130             : };
   37131             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37132             : static_assert(0 < 1, "There is no slot for us");
   37133             : static const JSJitInfo strokeDasharray_setterinfo = {
   37134             :   { (JSJitGetterOp)set_strokeDasharray },
   37135             :   { prototypes::id::CSS2Properties },
   37136             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37137             :   JSJitInfo::Setter,
   37138             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37139             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37140             :   false,  /* isInfallible. False in setters. */
   37141             :   false,  /* isMovable.  Not relevant for setters. */
   37142             :   false, /* isEliminatable.  Not relevant for setters. */
   37143             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37144             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37145             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37146             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37147             : };
   37148             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37149             : static_assert(0 < 1, "There is no slot for us");
   37150             : 
   37151             : static bool
   37152           0 : get_stroke_dasharray(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37153             : {
   37154           0 :   binding_detail::FastErrorResult rv;
   37155           0 :   DOMString result;
   37156           0 :   self->GetStrokeDasharray(result, rv);
   37157           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37158           0 :     return false;
   37159             :   }
   37160           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37161           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37162           0 :     return false;
   37163             :   }
   37164           0 :   return true;
   37165             : }
   37166             : 
   37167             : static bool
   37168           0 : set_stroke_dasharray(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37169             : {
   37170           0 :   binding_detail::FakeString arg0;
   37171           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37172           0 :     return false;
   37173             :   }
   37174           0 :   binding_detail::FastErrorResult rv;
   37175           0 :   self->SetStrokeDasharray(NonNullHelper(Constify(arg0)), rv);
   37176           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37177           0 :     return false;
   37178             :   }
   37179           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37180             : 
   37181           0 :   return true;
   37182             : }
   37183             : 
   37184             : static const JSJitInfo stroke_dasharray_getterinfo = {
   37185             :   { (JSJitGetterOp)get_stroke_dasharray },
   37186             :   { prototypes::id::CSS2Properties },
   37187             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37188             :   JSJitInfo::Getter,
   37189             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37190             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37191             :   false,  /* isInfallible. False in setters. */
   37192             :   false,  /* isMovable.  Not relevant for setters. */
   37193             :   false, /* isEliminatable.  Not relevant for setters. */
   37194             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37195             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37196             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37197             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37198             : };
   37199             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37200             : static_assert(0 < 1, "There is no slot for us");
   37201             : static const JSJitInfo stroke_dasharray_setterinfo = {
   37202             :   { (JSJitGetterOp)set_stroke_dasharray },
   37203             :   { prototypes::id::CSS2Properties },
   37204             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37205             :   JSJitInfo::Setter,
   37206             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37207             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37208             :   false,  /* isInfallible. False in setters. */
   37209             :   false,  /* isMovable.  Not relevant for setters. */
   37210             :   false, /* isEliminatable.  Not relevant for setters. */
   37211             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37212             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37213             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37214             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37215             : };
   37216             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37217             : static_assert(0 < 1, "There is no slot for us");
   37218             : 
   37219             : static bool
   37220           0 : get_strokeDashoffset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37221             : {
   37222           0 :   binding_detail::FastErrorResult rv;
   37223           0 :   DOMString result;
   37224           0 :   self->GetStrokeDashoffset(result, rv);
   37225           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37226           0 :     return false;
   37227             :   }
   37228           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37229           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37230           0 :     return false;
   37231             :   }
   37232           0 :   return true;
   37233             : }
   37234             : 
   37235             : static bool
   37236           0 : set_strokeDashoffset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37237             : {
   37238           0 :   binding_detail::FakeString arg0;
   37239           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37240           0 :     return false;
   37241             :   }
   37242           0 :   binding_detail::FastErrorResult rv;
   37243           0 :   self->SetStrokeDashoffset(NonNullHelper(Constify(arg0)), rv);
   37244           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37245           0 :     return false;
   37246             :   }
   37247           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37248             : 
   37249           0 :   return true;
   37250             : }
   37251             : 
   37252             : static const JSJitInfo strokeDashoffset_getterinfo = {
   37253             :   { (JSJitGetterOp)get_strokeDashoffset },
   37254             :   { prototypes::id::CSS2Properties },
   37255             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37256             :   JSJitInfo::Getter,
   37257             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37258             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37259             :   false,  /* isInfallible. False in setters. */
   37260             :   false,  /* isMovable.  Not relevant for setters. */
   37261             :   false, /* isEliminatable.  Not relevant for setters. */
   37262             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37263             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37264             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37265             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37266             : };
   37267             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37268             : static_assert(0 < 1, "There is no slot for us");
   37269             : static const JSJitInfo strokeDashoffset_setterinfo = {
   37270             :   { (JSJitGetterOp)set_strokeDashoffset },
   37271             :   { prototypes::id::CSS2Properties },
   37272             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37273             :   JSJitInfo::Setter,
   37274             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37275             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37276             :   false,  /* isInfallible. False in setters. */
   37277             :   false,  /* isMovable.  Not relevant for setters. */
   37278             :   false, /* isEliminatable.  Not relevant for setters. */
   37279             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37280             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37281             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37282             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37283             : };
   37284             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37285             : static_assert(0 < 1, "There is no slot for us");
   37286             : 
   37287             : static bool
   37288           0 : get_stroke_dashoffset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37289             : {
   37290           0 :   binding_detail::FastErrorResult rv;
   37291           0 :   DOMString result;
   37292           0 :   self->GetStrokeDashoffset(result, rv);
   37293           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37294           0 :     return false;
   37295             :   }
   37296           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37297           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37298           0 :     return false;
   37299             :   }
   37300           0 :   return true;
   37301             : }
   37302             : 
   37303             : static bool
   37304           0 : set_stroke_dashoffset(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37305             : {
   37306           0 :   binding_detail::FakeString arg0;
   37307           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37308           0 :     return false;
   37309             :   }
   37310           0 :   binding_detail::FastErrorResult rv;
   37311           0 :   self->SetStrokeDashoffset(NonNullHelper(Constify(arg0)), rv);
   37312           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37313           0 :     return false;
   37314             :   }
   37315           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37316             : 
   37317           0 :   return true;
   37318             : }
   37319             : 
   37320             : static const JSJitInfo stroke_dashoffset_getterinfo = {
   37321             :   { (JSJitGetterOp)get_stroke_dashoffset },
   37322             :   { prototypes::id::CSS2Properties },
   37323             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37324             :   JSJitInfo::Getter,
   37325             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37326             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37327             :   false,  /* isInfallible. False in setters. */
   37328             :   false,  /* isMovable.  Not relevant for setters. */
   37329             :   false, /* isEliminatable.  Not relevant for setters. */
   37330             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37331             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37332             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37333             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37334             : };
   37335             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37336             : static_assert(0 < 1, "There is no slot for us");
   37337             : static const JSJitInfo stroke_dashoffset_setterinfo = {
   37338             :   { (JSJitGetterOp)set_stroke_dashoffset },
   37339             :   { prototypes::id::CSS2Properties },
   37340             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37341             :   JSJitInfo::Setter,
   37342             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37343             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37344             :   false,  /* isInfallible. False in setters. */
   37345             :   false,  /* isMovable.  Not relevant for setters. */
   37346             :   false, /* isEliminatable.  Not relevant for setters. */
   37347             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37348             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37349             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37350             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37351             : };
   37352             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37353             : static_assert(0 < 1, "There is no slot for us");
   37354             : 
   37355             : static bool
   37356           0 : get_strokeLinecap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37357             : {
   37358           0 :   binding_detail::FastErrorResult rv;
   37359           0 :   DOMString result;
   37360           0 :   self->GetStrokeLinecap(result, rv);
   37361           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37362           0 :     return false;
   37363             :   }
   37364           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37365           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37366           0 :     return false;
   37367             :   }
   37368           0 :   return true;
   37369             : }
   37370             : 
   37371             : static bool
   37372           0 : set_strokeLinecap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37373             : {
   37374           0 :   binding_detail::FakeString arg0;
   37375           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37376           0 :     return false;
   37377             :   }
   37378           0 :   binding_detail::FastErrorResult rv;
   37379           0 :   self->SetStrokeLinecap(NonNullHelper(Constify(arg0)), rv);
   37380           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37381           0 :     return false;
   37382             :   }
   37383           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37384             : 
   37385           0 :   return true;
   37386             : }
   37387             : 
   37388             : static const JSJitInfo strokeLinecap_getterinfo = {
   37389             :   { (JSJitGetterOp)get_strokeLinecap },
   37390             :   { prototypes::id::CSS2Properties },
   37391             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37392             :   JSJitInfo::Getter,
   37393             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37394             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37395             :   false,  /* isInfallible. False in setters. */
   37396             :   false,  /* isMovable.  Not relevant for setters. */
   37397             :   false, /* isEliminatable.  Not relevant for setters. */
   37398             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37399             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37400             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37401             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37402             : };
   37403             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37404             : static_assert(0 < 1, "There is no slot for us");
   37405             : static const JSJitInfo strokeLinecap_setterinfo = {
   37406             :   { (JSJitGetterOp)set_strokeLinecap },
   37407             :   { prototypes::id::CSS2Properties },
   37408             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37409             :   JSJitInfo::Setter,
   37410             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37411             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37412             :   false,  /* isInfallible. False in setters. */
   37413             :   false,  /* isMovable.  Not relevant for setters. */
   37414             :   false, /* isEliminatable.  Not relevant for setters. */
   37415             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37416             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37417             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37418             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37419             : };
   37420             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37421             : static_assert(0 < 1, "There is no slot for us");
   37422             : 
   37423             : static bool
   37424           0 : get_stroke_linecap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37425             : {
   37426           0 :   binding_detail::FastErrorResult rv;
   37427           0 :   DOMString result;
   37428           0 :   self->GetStrokeLinecap(result, rv);
   37429           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37430           0 :     return false;
   37431             :   }
   37432           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37433           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37434           0 :     return false;
   37435             :   }
   37436           0 :   return true;
   37437             : }
   37438             : 
   37439             : static bool
   37440           0 : set_stroke_linecap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37441             : {
   37442           0 :   binding_detail::FakeString arg0;
   37443           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37444           0 :     return false;
   37445             :   }
   37446           0 :   binding_detail::FastErrorResult rv;
   37447           0 :   self->SetStrokeLinecap(NonNullHelper(Constify(arg0)), rv);
   37448           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37449           0 :     return false;
   37450             :   }
   37451           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37452             : 
   37453           0 :   return true;
   37454             : }
   37455             : 
   37456             : static const JSJitInfo stroke_linecap_getterinfo = {
   37457             :   { (JSJitGetterOp)get_stroke_linecap },
   37458             :   { prototypes::id::CSS2Properties },
   37459             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37460             :   JSJitInfo::Getter,
   37461             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37462             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37463             :   false,  /* isInfallible. False in setters. */
   37464             :   false,  /* isMovable.  Not relevant for setters. */
   37465             :   false, /* isEliminatable.  Not relevant for setters. */
   37466             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37467             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37468             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37469             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37470             : };
   37471             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37472             : static_assert(0 < 1, "There is no slot for us");
   37473             : static const JSJitInfo stroke_linecap_setterinfo = {
   37474             :   { (JSJitGetterOp)set_stroke_linecap },
   37475             :   { prototypes::id::CSS2Properties },
   37476             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37477             :   JSJitInfo::Setter,
   37478             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37479             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37480             :   false,  /* isInfallible. False in setters. */
   37481             :   false,  /* isMovable.  Not relevant for setters. */
   37482             :   false, /* isEliminatable.  Not relevant for setters. */
   37483             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37484             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37485             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37486             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37487             : };
   37488             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37489             : static_assert(0 < 1, "There is no slot for us");
   37490             : 
   37491             : static bool
   37492           0 : get_strokeLinejoin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37493             : {
   37494           0 :   binding_detail::FastErrorResult rv;
   37495           0 :   DOMString result;
   37496           0 :   self->GetStrokeLinejoin(result, rv);
   37497           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37498           0 :     return false;
   37499             :   }
   37500           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37501           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37502           0 :     return false;
   37503             :   }
   37504           0 :   return true;
   37505             : }
   37506             : 
   37507             : static bool
   37508           0 : set_strokeLinejoin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37509             : {
   37510           0 :   binding_detail::FakeString arg0;
   37511           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37512           0 :     return false;
   37513             :   }
   37514           0 :   binding_detail::FastErrorResult rv;
   37515           0 :   self->SetStrokeLinejoin(NonNullHelper(Constify(arg0)), rv);
   37516           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37517           0 :     return false;
   37518             :   }
   37519           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37520             : 
   37521           0 :   return true;
   37522             : }
   37523             : 
   37524             : static const JSJitInfo strokeLinejoin_getterinfo = {
   37525             :   { (JSJitGetterOp)get_strokeLinejoin },
   37526             :   { prototypes::id::CSS2Properties },
   37527             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37528             :   JSJitInfo::Getter,
   37529             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37530             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37531             :   false,  /* isInfallible. False in setters. */
   37532             :   false,  /* isMovable.  Not relevant for setters. */
   37533             :   false, /* isEliminatable.  Not relevant for setters. */
   37534             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37535             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37536             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37537             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37538             : };
   37539             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37540             : static_assert(0 < 1, "There is no slot for us");
   37541             : static const JSJitInfo strokeLinejoin_setterinfo = {
   37542             :   { (JSJitGetterOp)set_strokeLinejoin },
   37543             :   { prototypes::id::CSS2Properties },
   37544             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37545             :   JSJitInfo::Setter,
   37546             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37547             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37548             :   false,  /* isInfallible. False in setters. */
   37549             :   false,  /* isMovable.  Not relevant for setters. */
   37550             :   false, /* isEliminatable.  Not relevant for setters. */
   37551             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37552             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37553             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37554             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37555             : };
   37556             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37557             : static_assert(0 < 1, "There is no slot for us");
   37558             : 
   37559             : static bool
   37560           0 : get_stroke_linejoin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37561             : {
   37562           0 :   binding_detail::FastErrorResult rv;
   37563           0 :   DOMString result;
   37564           0 :   self->GetStrokeLinejoin(result, rv);
   37565           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37566           0 :     return false;
   37567             :   }
   37568           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37569           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37570           0 :     return false;
   37571             :   }
   37572           0 :   return true;
   37573             : }
   37574             : 
   37575             : static bool
   37576           0 : set_stroke_linejoin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37577             : {
   37578           0 :   binding_detail::FakeString arg0;
   37579           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37580           0 :     return false;
   37581             :   }
   37582           0 :   binding_detail::FastErrorResult rv;
   37583           0 :   self->SetStrokeLinejoin(NonNullHelper(Constify(arg0)), rv);
   37584           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37585           0 :     return false;
   37586             :   }
   37587           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37588             : 
   37589           0 :   return true;
   37590             : }
   37591             : 
   37592             : static const JSJitInfo stroke_linejoin_getterinfo = {
   37593             :   { (JSJitGetterOp)get_stroke_linejoin },
   37594             :   { prototypes::id::CSS2Properties },
   37595             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37596             :   JSJitInfo::Getter,
   37597             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37598             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37599             :   false,  /* isInfallible. False in setters. */
   37600             :   false,  /* isMovable.  Not relevant for setters. */
   37601             :   false, /* isEliminatable.  Not relevant for setters. */
   37602             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37603             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37604             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37605             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37606             : };
   37607             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37608             : static_assert(0 < 1, "There is no slot for us");
   37609             : static const JSJitInfo stroke_linejoin_setterinfo = {
   37610             :   { (JSJitGetterOp)set_stroke_linejoin },
   37611             :   { prototypes::id::CSS2Properties },
   37612             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37613             :   JSJitInfo::Setter,
   37614             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37615             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37616             :   false,  /* isInfallible. False in setters. */
   37617             :   false,  /* isMovable.  Not relevant for setters. */
   37618             :   false, /* isEliminatable.  Not relevant for setters. */
   37619             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37620             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37621             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37622             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37623             : };
   37624             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37625             : static_assert(0 < 1, "There is no slot for us");
   37626             : 
   37627             : static bool
   37628           0 : get_strokeMiterlimit(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37629             : {
   37630           0 :   binding_detail::FastErrorResult rv;
   37631           0 :   DOMString result;
   37632           0 :   self->GetStrokeMiterlimit(result, rv);
   37633           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37634           0 :     return false;
   37635             :   }
   37636           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37637           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37638           0 :     return false;
   37639             :   }
   37640           0 :   return true;
   37641             : }
   37642             : 
   37643             : static bool
   37644           0 : set_strokeMiterlimit(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37645             : {
   37646           0 :   binding_detail::FakeString arg0;
   37647           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37648           0 :     return false;
   37649             :   }
   37650           0 :   binding_detail::FastErrorResult rv;
   37651           0 :   self->SetStrokeMiterlimit(NonNullHelper(Constify(arg0)), rv);
   37652           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37653           0 :     return false;
   37654             :   }
   37655           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37656             : 
   37657           0 :   return true;
   37658             : }
   37659             : 
   37660             : static const JSJitInfo strokeMiterlimit_getterinfo = {
   37661             :   { (JSJitGetterOp)get_strokeMiterlimit },
   37662             :   { prototypes::id::CSS2Properties },
   37663             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37664             :   JSJitInfo::Getter,
   37665             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37666             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37667             :   false,  /* isInfallible. False in setters. */
   37668             :   false,  /* isMovable.  Not relevant for setters. */
   37669             :   false, /* isEliminatable.  Not relevant for setters. */
   37670             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37671             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37672             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37673             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37674             : };
   37675             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37676             : static_assert(0 < 1, "There is no slot for us");
   37677             : static const JSJitInfo strokeMiterlimit_setterinfo = {
   37678             :   { (JSJitGetterOp)set_strokeMiterlimit },
   37679             :   { prototypes::id::CSS2Properties },
   37680             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37681             :   JSJitInfo::Setter,
   37682             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37683             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37684             :   false,  /* isInfallible. False in setters. */
   37685             :   false,  /* isMovable.  Not relevant for setters. */
   37686             :   false, /* isEliminatable.  Not relevant for setters. */
   37687             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37688             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37689             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37690             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37691             : };
   37692             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37693             : static_assert(0 < 1, "There is no slot for us");
   37694             : 
   37695             : static bool
   37696           0 : get_stroke_miterlimit(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37697             : {
   37698           0 :   binding_detail::FastErrorResult rv;
   37699           0 :   DOMString result;
   37700           0 :   self->GetStrokeMiterlimit(result, rv);
   37701           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37702           0 :     return false;
   37703             :   }
   37704           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37705           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37706           0 :     return false;
   37707             :   }
   37708           0 :   return true;
   37709             : }
   37710             : 
   37711             : static bool
   37712           0 : set_stroke_miterlimit(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37713             : {
   37714           0 :   binding_detail::FakeString arg0;
   37715           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37716           0 :     return false;
   37717             :   }
   37718           0 :   binding_detail::FastErrorResult rv;
   37719           0 :   self->SetStrokeMiterlimit(NonNullHelper(Constify(arg0)), rv);
   37720           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37721           0 :     return false;
   37722             :   }
   37723           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37724             : 
   37725           0 :   return true;
   37726             : }
   37727             : 
   37728             : static const JSJitInfo stroke_miterlimit_getterinfo = {
   37729             :   { (JSJitGetterOp)get_stroke_miterlimit },
   37730             :   { prototypes::id::CSS2Properties },
   37731             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37732             :   JSJitInfo::Getter,
   37733             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37734             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37735             :   false,  /* isInfallible. False in setters. */
   37736             :   false,  /* isMovable.  Not relevant for setters. */
   37737             :   false, /* isEliminatable.  Not relevant for setters. */
   37738             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37739             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37740             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37741             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37742             : };
   37743             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37744             : static_assert(0 < 1, "There is no slot for us");
   37745             : static const JSJitInfo stroke_miterlimit_setterinfo = {
   37746             :   { (JSJitGetterOp)set_stroke_miterlimit },
   37747             :   { prototypes::id::CSS2Properties },
   37748             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37749             :   JSJitInfo::Setter,
   37750             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37751             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37752             :   false,  /* isInfallible. False in setters. */
   37753             :   false,  /* isMovable.  Not relevant for setters. */
   37754             :   false, /* isEliminatable.  Not relevant for setters. */
   37755             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37756             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37757             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37758             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37759             : };
   37760             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37761             : static_assert(0 < 1, "There is no slot for us");
   37762             : 
   37763             : static bool
   37764           0 : get_strokeOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37765             : {
   37766           0 :   binding_detail::FastErrorResult rv;
   37767           0 :   DOMString result;
   37768           0 :   self->GetStrokeOpacity(result, rv);
   37769           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37770           0 :     return false;
   37771             :   }
   37772           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37773           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37774           0 :     return false;
   37775             :   }
   37776           0 :   return true;
   37777             : }
   37778             : 
   37779             : static bool
   37780           0 : set_strokeOpacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37781             : {
   37782           0 :   binding_detail::FakeString arg0;
   37783           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37784           0 :     return false;
   37785             :   }
   37786           0 :   binding_detail::FastErrorResult rv;
   37787           0 :   self->SetStrokeOpacity(NonNullHelper(Constify(arg0)), rv);
   37788           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37789           0 :     return false;
   37790             :   }
   37791           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37792             : 
   37793           0 :   return true;
   37794             : }
   37795             : 
   37796             : static const JSJitInfo strokeOpacity_getterinfo = {
   37797             :   { (JSJitGetterOp)get_strokeOpacity },
   37798             :   { prototypes::id::CSS2Properties },
   37799             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37800             :   JSJitInfo::Getter,
   37801             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37802             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37803             :   false,  /* isInfallible. False in setters. */
   37804             :   false,  /* isMovable.  Not relevant for setters. */
   37805             :   false, /* isEliminatable.  Not relevant for setters. */
   37806             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37807             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37808             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37809             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37810             : };
   37811             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37812             : static_assert(0 < 1, "There is no slot for us");
   37813             : static const JSJitInfo strokeOpacity_setterinfo = {
   37814             :   { (JSJitGetterOp)set_strokeOpacity },
   37815             :   { prototypes::id::CSS2Properties },
   37816             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37817             :   JSJitInfo::Setter,
   37818             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37819             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37820             :   false,  /* isInfallible. False in setters. */
   37821             :   false,  /* isMovable.  Not relevant for setters. */
   37822             :   false, /* isEliminatable.  Not relevant for setters. */
   37823             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37824             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37825             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37826             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37827             : };
   37828             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37829             : static_assert(0 < 1, "There is no slot for us");
   37830             : 
   37831             : static bool
   37832           0 : get_stroke_opacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37833             : {
   37834           0 :   binding_detail::FastErrorResult rv;
   37835           0 :   DOMString result;
   37836           0 :   self->GetStrokeOpacity(result, rv);
   37837           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37838           0 :     return false;
   37839             :   }
   37840           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37841           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37842           0 :     return false;
   37843             :   }
   37844           0 :   return true;
   37845             : }
   37846             : 
   37847             : static bool
   37848           0 : set_stroke_opacity(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37849             : {
   37850           0 :   binding_detail::FakeString arg0;
   37851           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37852           0 :     return false;
   37853             :   }
   37854           0 :   binding_detail::FastErrorResult rv;
   37855           0 :   self->SetStrokeOpacity(NonNullHelper(Constify(arg0)), rv);
   37856           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37857           0 :     return false;
   37858             :   }
   37859           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37860             : 
   37861           0 :   return true;
   37862             : }
   37863             : 
   37864             : static const JSJitInfo stroke_opacity_getterinfo = {
   37865             :   { (JSJitGetterOp)get_stroke_opacity },
   37866             :   { prototypes::id::CSS2Properties },
   37867             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37868             :   JSJitInfo::Getter,
   37869             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37870             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37871             :   false,  /* isInfallible. False in setters. */
   37872             :   false,  /* isMovable.  Not relevant for setters. */
   37873             :   false, /* isEliminatable.  Not relevant for setters. */
   37874             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37875             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37876             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37877             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37878             : };
   37879             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37880             : static_assert(0 < 1, "There is no slot for us");
   37881             : static const JSJitInfo stroke_opacity_setterinfo = {
   37882             :   { (JSJitGetterOp)set_stroke_opacity },
   37883             :   { prototypes::id::CSS2Properties },
   37884             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37885             :   JSJitInfo::Setter,
   37886             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37887             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37888             :   false,  /* isInfallible. False in setters. */
   37889             :   false,  /* isMovable.  Not relevant for setters. */
   37890             :   false, /* isEliminatable.  Not relevant for setters. */
   37891             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37892             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37893             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37894             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37895             : };
   37896             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37897             : static_assert(0 < 1, "There is no slot for us");
   37898             : 
   37899             : static bool
   37900           0 : get_strokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37901             : {
   37902           0 :   binding_detail::FastErrorResult rv;
   37903           0 :   DOMString result;
   37904           0 :   self->GetStrokeWidth(result, rv);
   37905           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37906           0 :     return false;
   37907             :   }
   37908           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37909           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37910           0 :     return false;
   37911             :   }
   37912           0 :   return true;
   37913             : }
   37914             : 
   37915             : static bool
   37916           0 : set_strokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37917             : {
   37918           0 :   binding_detail::FakeString arg0;
   37919           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37920           0 :     return false;
   37921             :   }
   37922           0 :   binding_detail::FastErrorResult rv;
   37923           0 :   self->SetStrokeWidth(NonNullHelper(Constify(arg0)), rv);
   37924           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37925           0 :     return false;
   37926             :   }
   37927           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37928             : 
   37929           0 :   return true;
   37930             : }
   37931             : 
   37932             : static const JSJitInfo strokeWidth_getterinfo = {
   37933             :   { (JSJitGetterOp)get_strokeWidth },
   37934             :   { prototypes::id::CSS2Properties },
   37935             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37936             :   JSJitInfo::Getter,
   37937             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37938             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   37939             :   false,  /* isInfallible. False in setters. */
   37940             :   false,  /* isMovable.  Not relevant for setters. */
   37941             :   false, /* isEliminatable.  Not relevant for setters. */
   37942             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37943             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37944             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37945             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37946             : };
   37947             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37948             : static_assert(0 < 1, "There is no slot for us");
   37949             : static const JSJitInfo strokeWidth_setterinfo = {
   37950             :   { (JSJitGetterOp)set_strokeWidth },
   37951             :   { prototypes::id::CSS2Properties },
   37952             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   37953             :   JSJitInfo::Setter,
   37954             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   37955             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   37956             :   false,  /* isInfallible. False in setters. */
   37957             :   false,  /* isMovable.  Not relevant for setters. */
   37958             :   false, /* isEliminatable.  Not relevant for setters. */
   37959             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   37960             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   37961             :   false,  /* isTypedMethod.  Only relevant for methods. */
   37962             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   37963             : };
   37964             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   37965             : static_assert(0 < 1, "There is no slot for us");
   37966             : 
   37967             : static bool
   37968           0 : get_stroke_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   37969             : {
   37970           0 :   binding_detail::FastErrorResult rv;
   37971           0 :   DOMString result;
   37972           0 :   self->GetStrokeWidth(result, rv);
   37973           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37974           0 :     return false;
   37975             :   }
   37976           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37977           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   37978           0 :     return false;
   37979             :   }
   37980           0 :   return true;
   37981             : }
   37982             : 
   37983             : static bool
   37984           0 : set_stroke_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   37985             : {
   37986           0 :   binding_detail::FakeString arg0;
   37987           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   37988           0 :     return false;
   37989             :   }
   37990           0 :   binding_detail::FastErrorResult rv;
   37991           0 :   self->SetStrokeWidth(NonNullHelper(Constify(arg0)), rv);
   37992           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   37993           0 :     return false;
   37994             :   }
   37995           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   37996             : 
   37997           0 :   return true;
   37998             : }
   37999             : 
   38000             : static const JSJitInfo stroke_width_getterinfo = {
   38001             :   { (JSJitGetterOp)get_stroke_width },
   38002             :   { prototypes::id::CSS2Properties },
   38003             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38004             :   JSJitInfo::Getter,
   38005             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38006             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38007             :   false,  /* isInfallible. False in setters. */
   38008             :   false,  /* isMovable.  Not relevant for setters. */
   38009             :   false, /* isEliminatable.  Not relevant for setters. */
   38010             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38011             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38012             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38013             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38014             : };
   38015             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38016             : static_assert(0 < 1, "There is no slot for us");
   38017             : static const JSJitInfo stroke_width_setterinfo = {
   38018             :   { (JSJitGetterOp)set_stroke_width },
   38019             :   { prototypes::id::CSS2Properties },
   38020             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38021             :   JSJitInfo::Setter,
   38022             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38023             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38024             :   false,  /* isInfallible. False in setters. */
   38025             :   false,  /* isMovable.  Not relevant for setters. */
   38026             :   false, /* isEliminatable.  Not relevant for setters. */
   38027             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38028             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38029             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38030             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38031             : };
   38032             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38033             : static_assert(0 < 1, "There is no slot for us");
   38034             : 
   38035             : static bool
   38036           0 : get_MozTabSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38037             : {
   38038           0 :   binding_detail::FastErrorResult rv;
   38039           0 :   DOMString result;
   38040           0 :   self->GetMozTabSize(result, rv);
   38041           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38042           0 :     return false;
   38043             :   }
   38044           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38045           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38046           0 :     return false;
   38047             :   }
   38048           0 :   return true;
   38049             : }
   38050             : 
   38051             : static bool
   38052           0 : set_MozTabSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38053             : {
   38054           0 :   binding_detail::FakeString arg0;
   38055           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38056           0 :     return false;
   38057             :   }
   38058           0 :   binding_detail::FastErrorResult rv;
   38059           0 :   self->SetMozTabSize(NonNullHelper(Constify(arg0)), rv);
   38060           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38061           0 :     return false;
   38062             :   }
   38063           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38064             : 
   38065           0 :   return true;
   38066             : }
   38067             : 
   38068             : static const JSJitInfo MozTabSize_getterinfo = {
   38069             :   { (JSJitGetterOp)get_MozTabSize },
   38070             :   { prototypes::id::CSS2Properties },
   38071             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38072             :   JSJitInfo::Getter,
   38073             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38074             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38075             :   false,  /* isInfallible. False in setters. */
   38076             :   false,  /* isMovable.  Not relevant for setters. */
   38077             :   false, /* isEliminatable.  Not relevant for setters. */
   38078             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38079             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38080             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38081             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38082             : };
   38083             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38084             : static_assert(0 < 1, "There is no slot for us");
   38085             : static const JSJitInfo MozTabSize_setterinfo = {
   38086             :   { (JSJitGetterOp)set_MozTabSize },
   38087             :   { prototypes::id::CSS2Properties },
   38088             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38089             :   JSJitInfo::Setter,
   38090             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38091             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38092             :   false,  /* isInfallible. False in setters. */
   38093             :   false,  /* isMovable.  Not relevant for setters. */
   38094             :   false, /* isEliminatable.  Not relevant for setters. */
   38095             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38096             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38097             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38098             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38099             : };
   38100             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38101             : static_assert(0 < 1, "There is no slot for us");
   38102             : 
   38103             : static bool
   38104           0 : get__moz_tab_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38105             : {
   38106           0 :   binding_detail::FastErrorResult rv;
   38107           0 :   DOMString result;
   38108           0 :   self->GetMozTabSize(result, rv);
   38109           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38110           0 :     return false;
   38111             :   }
   38112           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38113           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38114           0 :     return false;
   38115             :   }
   38116           0 :   return true;
   38117             : }
   38118             : 
   38119             : static bool
   38120           0 : set__moz_tab_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38121             : {
   38122           0 :   binding_detail::FakeString arg0;
   38123           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38124           0 :     return false;
   38125             :   }
   38126           0 :   binding_detail::FastErrorResult rv;
   38127           0 :   self->SetMozTabSize(NonNullHelper(Constify(arg0)), rv);
   38128           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38129           0 :     return false;
   38130             :   }
   38131           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38132             : 
   38133           0 :   return true;
   38134             : }
   38135             : 
   38136             : static const JSJitInfo _moz_tab_size_getterinfo = {
   38137             :   { (JSJitGetterOp)get__moz_tab_size },
   38138             :   { prototypes::id::CSS2Properties },
   38139             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38140             :   JSJitInfo::Getter,
   38141             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38142             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38143             :   false,  /* isInfallible. False in setters. */
   38144             :   false,  /* isMovable.  Not relevant for setters. */
   38145             :   false, /* isEliminatable.  Not relevant for setters. */
   38146             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38147             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38148             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38149             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38150             : };
   38151             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38152             : static_assert(0 < 1, "There is no slot for us");
   38153             : static const JSJitInfo _moz_tab_size_setterinfo = {
   38154             :   { (JSJitGetterOp)set__moz_tab_size },
   38155             :   { prototypes::id::CSS2Properties },
   38156             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38157             :   JSJitInfo::Setter,
   38158             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38159             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38160             :   false,  /* isInfallible. False in setters. */
   38161             :   false,  /* isMovable.  Not relevant for setters. */
   38162             :   false, /* isEliminatable.  Not relevant for setters. */
   38163             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38164             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38165             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38166             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38167             : };
   38168             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38169             : static_assert(0 < 1, "There is no slot for us");
   38170             : 
   38171             : static bool
   38172           0 : get_tableLayout(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38173             : {
   38174           0 :   binding_detail::FastErrorResult rv;
   38175           0 :   DOMString result;
   38176           0 :   self->GetTableLayout(result, rv);
   38177           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38178           0 :     return false;
   38179             :   }
   38180           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38181           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38182           0 :     return false;
   38183             :   }
   38184           0 :   return true;
   38185             : }
   38186             : 
   38187             : static bool
   38188           0 : set_tableLayout(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38189             : {
   38190           0 :   binding_detail::FakeString arg0;
   38191           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38192           0 :     return false;
   38193             :   }
   38194           0 :   binding_detail::FastErrorResult rv;
   38195           0 :   self->SetTableLayout(NonNullHelper(Constify(arg0)), rv);
   38196           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38197           0 :     return false;
   38198             :   }
   38199           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38200             : 
   38201           0 :   return true;
   38202             : }
   38203             : 
   38204             : static const JSJitInfo tableLayout_getterinfo = {
   38205             :   { (JSJitGetterOp)get_tableLayout },
   38206             :   { prototypes::id::CSS2Properties },
   38207             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38208             :   JSJitInfo::Getter,
   38209             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38210             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38211             :   false,  /* isInfallible. False in setters. */
   38212             :   false,  /* isMovable.  Not relevant for setters. */
   38213             :   false, /* isEliminatable.  Not relevant for setters. */
   38214             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38215             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38216             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38217             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38218             : };
   38219             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38220             : static_assert(0 < 1, "There is no slot for us");
   38221             : static const JSJitInfo tableLayout_setterinfo = {
   38222             :   { (JSJitGetterOp)set_tableLayout },
   38223             :   { prototypes::id::CSS2Properties },
   38224             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38225             :   JSJitInfo::Setter,
   38226             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38227             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38228             :   false,  /* isInfallible. False in setters. */
   38229             :   false,  /* isMovable.  Not relevant for setters. */
   38230             :   false, /* isEliminatable.  Not relevant for setters. */
   38231             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38232             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38233             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38234             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38235             : };
   38236             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38237             : static_assert(0 < 1, "There is no slot for us");
   38238             : 
   38239             : static bool
   38240           0 : get_table_layout(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38241             : {
   38242           0 :   binding_detail::FastErrorResult rv;
   38243           0 :   DOMString result;
   38244           0 :   self->GetTableLayout(result, rv);
   38245           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38246           0 :     return false;
   38247             :   }
   38248           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38249           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38250           0 :     return false;
   38251             :   }
   38252           0 :   return true;
   38253             : }
   38254             : 
   38255             : static bool
   38256           0 : set_table_layout(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38257             : {
   38258           0 :   binding_detail::FakeString arg0;
   38259           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38260           0 :     return false;
   38261             :   }
   38262           0 :   binding_detail::FastErrorResult rv;
   38263           0 :   self->SetTableLayout(NonNullHelper(Constify(arg0)), rv);
   38264           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38265           0 :     return false;
   38266             :   }
   38267           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38268             : 
   38269           0 :   return true;
   38270             : }
   38271             : 
   38272             : static const JSJitInfo table_layout_getterinfo = {
   38273             :   { (JSJitGetterOp)get_table_layout },
   38274             :   { prototypes::id::CSS2Properties },
   38275             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38276             :   JSJitInfo::Getter,
   38277             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38278             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38279             :   false,  /* isInfallible. False in setters. */
   38280             :   false,  /* isMovable.  Not relevant for setters. */
   38281             :   false, /* isEliminatable.  Not relevant for setters. */
   38282             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38283             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38284             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38285             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38286             : };
   38287             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38288             : static_assert(0 < 1, "There is no slot for us");
   38289             : static const JSJitInfo table_layout_setterinfo = {
   38290             :   { (JSJitGetterOp)set_table_layout },
   38291             :   { prototypes::id::CSS2Properties },
   38292             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38293             :   JSJitInfo::Setter,
   38294             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38295             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38296             :   false,  /* isInfallible. False in setters. */
   38297             :   false,  /* isMovable.  Not relevant for setters. */
   38298             :   false, /* isEliminatable.  Not relevant for setters. */
   38299             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38300             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38301             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38302             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38303             : };
   38304             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38305             : static_assert(0 < 1, "There is no slot for us");
   38306             : 
   38307             : static bool
   38308           0 : get_textAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38309             : {
   38310           0 :   binding_detail::FastErrorResult rv;
   38311           0 :   DOMString result;
   38312           0 :   self->GetTextAlign(result, rv);
   38313           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38314           0 :     return false;
   38315             :   }
   38316           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38317           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38318           0 :     return false;
   38319             :   }
   38320           0 :   return true;
   38321             : }
   38322             : 
   38323             : static bool
   38324           0 : set_textAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38325             : {
   38326           0 :   binding_detail::FakeString arg0;
   38327           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38328           0 :     return false;
   38329             :   }
   38330           0 :   binding_detail::FastErrorResult rv;
   38331           0 :   self->SetTextAlign(NonNullHelper(Constify(arg0)), rv);
   38332           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38333           0 :     return false;
   38334             :   }
   38335           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38336             : 
   38337           0 :   return true;
   38338             : }
   38339             : 
   38340             : static const JSJitInfo textAlign_getterinfo = {
   38341             :   { (JSJitGetterOp)get_textAlign },
   38342             :   { prototypes::id::CSS2Properties },
   38343             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38344             :   JSJitInfo::Getter,
   38345             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38346             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38347             :   false,  /* isInfallible. False in setters. */
   38348             :   false,  /* isMovable.  Not relevant for setters. */
   38349             :   false, /* isEliminatable.  Not relevant for setters. */
   38350             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38351             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38352             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38353             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38354             : };
   38355             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38356             : static_assert(0 < 1, "There is no slot for us");
   38357             : static const JSJitInfo textAlign_setterinfo = {
   38358             :   { (JSJitGetterOp)set_textAlign },
   38359             :   { prototypes::id::CSS2Properties },
   38360             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38361             :   JSJitInfo::Setter,
   38362             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38363             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38364             :   false,  /* isInfallible. False in setters. */
   38365             :   false,  /* isMovable.  Not relevant for setters. */
   38366             :   false, /* isEliminatable.  Not relevant for setters. */
   38367             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38368             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38369             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38370             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38371             : };
   38372             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38373             : static_assert(0 < 1, "There is no slot for us");
   38374             : 
   38375             : static bool
   38376           0 : get_text_align(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38377             : {
   38378           0 :   binding_detail::FastErrorResult rv;
   38379           0 :   DOMString result;
   38380           0 :   self->GetTextAlign(result, rv);
   38381           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38382           0 :     return false;
   38383             :   }
   38384           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38385           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38386           0 :     return false;
   38387             :   }
   38388           0 :   return true;
   38389             : }
   38390             : 
   38391             : static bool
   38392           0 : set_text_align(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38393             : {
   38394           0 :   binding_detail::FakeString arg0;
   38395           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38396           0 :     return false;
   38397             :   }
   38398           0 :   binding_detail::FastErrorResult rv;
   38399           0 :   self->SetTextAlign(NonNullHelper(Constify(arg0)), rv);
   38400           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38401           0 :     return false;
   38402             :   }
   38403           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38404             : 
   38405           0 :   return true;
   38406             : }
   38407             : 
   38408             : static const JSJitInfo text_align_getterinfo = {
   38409             :   { (JSJitGetterOp)get_text_align },
   38410             :   { prototypes::id::CSS2Properties },
   38411             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38412             :   JSJitInfo::Getter,
   38413             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38414             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38415             :   false,  /* isInfallible. False in setters. */
   38416             :   false,  /* isMovable.  Not relevant for setters. */
   38417             :   false, /* isEliminatable.  Not relevant for setters. */
   38418             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38419             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38420             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38421             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38422             : };
   38423             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38424             : static_assert(0 < 1, "There is no slot for us");
   38425             : static const JSJitInfo text_align_setterinfo = {
   38426             :   { (JSJitGetterOp)set_text_align },
   38427             :   { prototypes::id::CSS2Properties },
   38428             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38429             :   JSJitInfo::Setter,
   38430             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38431             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38432             :   false,  /* isInfallible. False in setters. */
   38433             :   false,  /* isMovable.  Not relevant for setters. */
   38434             :   false, /* isEliminatable.  Not relevant for setters. */
   38435             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38436             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38437             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38438             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38439             : };
   38440             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38441             : static_assert(0 < 1, "There is no slot for us");
   38442             : 
   38443             : static bool
   38444           0 : get_textAlignLast(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38445             : {
   38446           0 :   binding_detail::FastErrorResult rv;
   38447           0 :   DOMString result;
   38448           0 :   self->GetTextAlignLast(result, rv);
   38449           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38450           0 :     return false;
   38451             :   }
   38452           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38453           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38454           0 :     return false;
   38455             :   }
   38456           0 :   return true;
   38457             : }
   38458             : 
   38459             : static bool
   38460           0 : set_textAlignLast(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38461             : {
   38462           0 :   binding_detail::FakeString arg0;
   38463           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38464           0 :     return false;
   38465             :   }
   38466           0 :   binding_detail::FastErrorResult rv;
   38467           0 :   self->SetTextAlignLast(NonNullHelper(Constify(arg0)), rv);
   38468           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38469           0 :     return false;
   38470             :   }
   38471           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38472             : 
   38473           0 :   return true;
   38474             : }
   38475             : 
   38476             : static const JSJitInfo textAlignLast_getterinfo = {
   38477             :   { (JSJitGetterOp)get_textAlignLast },
   38478             :   { prototypes::id::CSS2Properties },
   38479             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38480             :   JSJitInfo::Getter,
   38481             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38482             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38483             :   false,  /* isInfallible. False in setters. */
   38484             :   false,  /* isMovable.  Not relevant for setters. */
   38485             :   false, /* isEliminatable.  Not relevant for setters. */
   38486             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38487             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38488             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38489             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38490             : };
   38491             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38492             : static_assert(0 < 1, "There is no slot for us");
   38493             : static const JSJitInfo textAlignLast_setterinfo = {
   38494             :   { (JSJitGetterOp)set_textAlignLast },
   38495             :   { prototypes::id::CSS2Properties },
   38496             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38497             :   JSJitInfo::Setter,
   38498             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38499             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38500             :   false,  /* isInfallible. False in setters. */
   38501             :   false,  /* isMovable.  Not relevant for setters. */
   38502             :   false, /* isEliminatable.  Not relevant for setters. */
   38503             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38504             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38505             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38506             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38507             : };
   38508             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38509             : static_assert(0 < 1, "There is no slot for us");
   38510             : 
   38511             : static bool
   38512           0 : get_text_align_last(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38513             : {
   38514           0 :   binding_detail::FastErrorResult rv;
   38515           0 :   DOMString result;
   38516           0 :   self->GetTextAlignLast(result, rv);
   38517           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38518           0 :     return false;
   38519             :   }
   38520           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38521           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38522           0 :     return false;
   38523             :   }
   38524           0 :   return true;
   38525             : }
   38526             : 
   38527             : static bool
   38528           0 : set_text_align_last(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38529             : {
   38530           0 :   binding_detail::FakeString arg0;
   38531           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38532           0 :     return false;
   38533             :   }
   38534           0 :   binding_detail::FastErrorResult rv;
   38535           0 :   self->SetTextAlignLast(NonNullHelper(Constify(arg0)), rv);
   38536           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38537           0 :     return false;
   38538             :   }
   38539           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38540             : 
   38541           0 :   return true;
   38542             : }
   38543             : 
   38544             : static const JSJitInfo text_align_last_getterinfo = {
   38545             :   { (JSJitGetterOp)get_text_align_last },
   38546             :   { prototypes::id::CSS2Properties },
   38547             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38548             :   JSJitInfo::Getter,
   38549             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38550             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38551             :   false,  /* isInfallible. False in setters. */
   38552             :   false,  /* isMovable.  Not relevant for setters. */
   38553             :   false, /* isEliminatable.  Not relevant for setters. */
   38554             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38555             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38556             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38557             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38558             : };
   38559             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38560             : static_assert(0 < 1, "There is no slot for us");
   38561             : static const JSJitInfo text_align_last_setterinfo = {
   38562             :   { (JSJitGetterOp)set_text_align_last },
   38563             :   { prototypes::id::CSS2Properties },
   38564             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38565             :   JSJitInfo::Setter,
   38566             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38567             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38568             :   false,  /* isInfallible. False in setters. */
   38569             :   false,  /* isMovable.  Not relevant for setters. */
   38570             :   false, /* isEliminatable.  Not relevant for setters. */
   38571             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38572             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38573             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38574             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38575             : };
   38576             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38577             : static_assert(0 < 1, "There is no slot for us");
   38578             : 
   38579             : static bool
   38580           0 : get_textAnchor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38581             : {
   38582           0 :   binding_detail::FastErrorResult rv;
   38583           0 :   DOMString result;
   38584           0 :   self->GetTextAnchor(result, rv);
   38585           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38586           0 :     return false;
   38587             :   }
   38588           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38589           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38590           0 :     return false;
   38591             :   }
   38592           0 :   return true;
   38593             : }
   38594             : 
   38595             : static bool
   38596           0 : set_textAnchor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38597             : {
   38598           0 :   binding_detail::FakeString arg0;
   38599           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38600           0 :     return false;
   38601             :   }
   38602           0 :   binding_detail::FastErrorResult rv;
   38603           0 :   self->SetTextAnchor(NonNullHelper(Constify(arg0)), rv);
   38604           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38605           0 :     return false;
   38606             :   }
   38607           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38608             : 
   38609           0 :   return true;
   38610             : }
   38611             : 
   38612             : static const JSJitInfo textAnchor_getterinfo = {
   38613             :   { (JSJitGetterOp)get_textAnchor },
   38614             :   { prototypes::id::CSS2Properties },
   38615             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38616             :   JSJitInfo::Getter,
   38617             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38618             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38619             :   false,  /* isInfallible. False in setters. */
   38620             :   false,  /* isMovable.  Not relevant for setters. */
   38621             :   false, /* isEliminatable.  Not relevant for setters. */
   38622             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38623             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38624             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38625             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38626             : };
   38627             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38628             : static_assert(0 < 1, "There is no slot for us");
   38629             : static const JSJitInfo textAnchor_setterinfo = {
   38630             :   { (JSJitGetterOp)set_textAnchor },
   38631             :   { prototypes::id::CSS2Properties },
   38632             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38633             :   JSJitInfo::Setter,
   38634             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38635             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38636             :   false,  /* isInfallible. False in setters. */
   38637             :   false,  /* isMovable.  Not relevant for setters. */
   38638             :   false, /* isEliminatable.  Not relevant for setters. */
   38639             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38640             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38641             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38642             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38643             : };
   38644             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38645             : static_assert(0 < 1, "There is no slot for us");
   38646             : 
   38647             : static bool
   38648           0 : get_text_anchor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38649             : {
   38650           0 :   binding_detail::FastErrorResult rv;
   38651           0 :   DOMString result;
   38652           0 :   self->GetTextAnchor(result, rv);
   38653           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38654           0 :     return false;
   38655             :   }
   38656           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38657           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38658           0 :     return false;
   38659             :   }
   38660           0 :   return true;
   38661             : }
   38662             : 
   38663             : static bool
   38664           0 : set_text_anchor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38665             : {
   38666           0 :   binding_detail::FakeString arg0;
   38667           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38668           0 :     return false;
   38669             :   }
   38670           0 :   binding_detail::FastErrorResult rv;
   38671           0 :   self->SetTextAnchor(NonNullHelper(Constify(arg0)), rv);
   38672           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38673           0 :     return false;
   38674             :   }
   38675           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38676             : 
   38677           0 :   return true;
   38678             : }
   38679             : 
   38680             : static const JSJitInfo text_anchor_getterinfo = {
   38681             :   { (JSJitGetterOp)get_text_anchor },
   38682             :   { prototypes::id::CSS2Properties },
   38683             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38684             :   JSJitInfo::Getter,
   38685             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38686             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38687             :   false,  /* isInfallible. False in setters. */
   38688             :   false,  /* isMovable.  Not relevant for setters. */
   38689             :   false, /* isEliminatable.  Not relevant for setters. */
   38690             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38691             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38692             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38693             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38694             : };
   38695             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38696             : static_assert(0 < 1, "There is no slot for us");
   38697             : static const JSJitInfo text_anchor_setterinfo = {
   38698             :   { (JSJitGetterOp)set_text_anchor },
   38699             :   { prototypes::id::CSS2Properties },
   38700             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38701             :   JSJitInfo::Setter,
   38702             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38703             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38704             :   false,  /* isInfallible. False in setters. */
   38705             :   false,  /* isMovable.  Not relevant for setters. */
   38706             :   false, /* isEliminatable.  Not relevant for setters. */
   38707             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38708             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38709             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38710             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38711             : };
   38712             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38713             : static_assert(0 < 1, "There is no slot for us");
   38714             : 
   38715             : static bool
   38716           0 : get_textCombineUpright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38717             : {
   38718           0 :   binding_detail::FastErrorResult rv;
   38719           0 :   DOMString result;
   38720           0 :   self->GetTextCombineUpright(result, rv);
   38721           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38722           0 :     return false;
   38723             :   }
   38724           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38725           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38726           0 :     return false;
   38727             :   }
   38728           0 :   return true;
   38729             : }
   38730             : 
   38731             : static bool
   38732           0 : set_textCombineUpright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38733             : {
   38734           0 :   binding_detail::FakeString arg0;
   38735           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38736           0 :     return false;
   38737             :   }
   38738           0 :   binding_detail::FastErrorResult rv;
   38739           0 :   self->SetTextCombineUpright(NonNullHelper(Constify(arg0)), rv);
   38740           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38741           0 :     return false;
   38742             :   }
   38743           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38744             : 
   38745           0 :   return true;
   38746             : }
   38747             : 
   38748             : static const JSJitInfo textCombineUpright_getterinfo = {
   38749             :   { (JSJitGetterOp)get_textCombineUpright },
   38750             :   { prototypes::id::CSS2Properties },
   38751             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38752             :   JSJitInfo::Getter,
   38753             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38754             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38755             :   false,  /* isInfallible. False in setters. */
   38756             :   false,  /* isMovable.  Not relevant for setters. */
   38757             :   false, /* isEliminatable.  Not relevant for setters. */
   38758             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38759             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38760             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38761             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38762             : };
   38763             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38764             : static_assert(0 < 1, "There is no slot for us");
   38765             : static const JSJitInfo textCombineUpright_setterinfo = {
   38766             :   { (JSJitGetterOp)set_textCombineUpright },
   38767             :   { prototypes::id::CSS2Properties },
   38768             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38769             :   JSJitInfo::Setter,
   38770             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38771             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38772             :   false,  /* isInfallible. False in setters. */
   38773             :   false,  /* isMovable.  Not relevant for setters. */
   38774             :   false, /* isEliminatable.  Not relevant for setters. */
   38775             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38776             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38777             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38778             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38779             : };
   38780             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38781             : static_assert(0 < 1, "There is no slot for us");
   38782             : 
   38783             : static bool
   38784           0 : get_text_combine_upright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38785             : {
   38786           0 :   binding_detail::FastErrorResult rv;
   38787           0 :   DOMString result;
   38788           0 :   self->GetTextCombineUpright(result, rv);
   38789           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38790           0 :     return false;
   38791             :   }
   38792           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38793           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38794           0 :     return false;
   38795             :   }
   38796           0 :   return true;
   38797             : }
   38798             : 
   38799             : static bool
   38800           0 : set_text_combine_upright(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38801             : {
   38802           0 :   binding_detail::FakeString arg0;
   38803           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38804           0 :     return false;
   38805             :   }
   38806           0 :   binding_detail::FastErrorResult rv;
   38807           0 :   self->SetTextCombineUpright(NonNullHelper(Constify(arg0)), rv);
   38808           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38809           0 :     return false;
   38810             :   }
   38811           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38812             : 
   38813           0 :   return true;
   38814             : }
   38815             : 
   38816             : static const JSJitInfo text_combine_upright_getterinfo = {
   38817             :   { (JSJitGetterOp)get_text_combine_upright },
   38818             :   { prototypes::id::CSS2Properties },
   38819             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38820             :   JSJitInfo::Getter,
   38821             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38822             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38823             :   false,  /* isInfallible. False in setters. */
   38824             :   false,  /* isMovable.  Not relevant for setters. */
   38825             :   false, /* isEliminatable.  Not relevant for setters. */
   38826             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38827             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38828             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38829             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38830             : };
   38831             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38832             : static_assert(0 < 1, "There is no slot for us");
   38833             : static const JSJitInfo text_combine_upright_setterinfo = {
   38834             :   { (JSJitGetterOp)set_text_combine_upright },
   38835             :   { prototypes::id::CSS2Properties },
   38836             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38837             :   JSJitInfo::Setter,
   38838             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38839             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38840             :   false,  /* isInfallible. False in setters. */
   38841             :   false,  /* isMovable.  Not relevant for setters. */
   38842             :   false, /* isEliminatable.  Not relevant for setters. */
   38843             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38844             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38845             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38846             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38847             : };
   38848             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38849             : static_assert(0 < 1, "There is no slot for us");
   38850             : 
   38851             : static bool
   38852           0 : get_textDecoration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38853             : {
   38854           0 :   binding_detail::FastErrorResult rv;
   38855           0 :   DOMString result;
   38856           0 :   self->GetTextDecoration(result, rv);
   38857           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38858           0 :     return false;
   38859             :   }
   38860           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38861           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38862           0 :     return false;
   38863             :   }
   38864           0 :   return true;
   38865             : }
   38866             : 
   38867             : static bool
   38868           0 : set_textDecoration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38869             : {
   38870           0 :   binding_detail::FakeString arg0;
   38871           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38872           0 :     return false;
   38873             :   }
   38874           0 :   binding_detail::FastErrorResult rv;
   38875           0 :   self->SetTextDecoration(NonNullHelper(Constify(arg0)), rv);
   38876           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38877           0 :     return false;
   38878             :   }
   38879           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38880             : 
   38881           0 :   return true;
   38882             : }
   38883             : 
   38884             : static const JSJitInfo textDecoration_getterinfo = {
   38885             :   { (JSJitGetterOp)get_textDecoration },
   38886             :   { prototypes::id::CSS2Properties },
   38887             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38888             :   JSJitInfo::Getter,
   38889             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38890             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38891             :   false,  /* isInfallible. False in setters. */
   38892             :   false,  /* isMovable.  Not relevant for setters. */
   38893             :   false, /* isEliminatable.  Not relevant for setters. */
   38894             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38895             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38896             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38897             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38898             : };
   38899             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38900             : static_assert(0 < 1, "There is no slot for us");
   38901             : static const JSJitInfo textDecoration_setterinfo = {
   38902             :   { (JSJitGetterOp)set_textDecoration },
   38903             :   { prototypes::id::CSS2Properties },
   38904             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38905             :   JSJitInfo::Setter,
   38906             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38907             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38908             :   false,  /* isInfallible. False in setters. */
   38909             :   false,  /* isMovable.  Not relevant for setters. */
   38910             :   false, /* isEliminatable.  Not relevant for setters. */
   38911             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38912             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38913             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38914             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38915             : };
   38916             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38917             : static_assert(0 < 1, "There is no slot for us");
   38918             : 
   38919             : static bool
   38920           0 : get_text_decoration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38921             : {
   38922           0 :   binding_detail::FastErrorResult rv;
   38923           0 :   DOMString result;
   38924           0 :   self->GetTextDecoration(result, rv);
   38925           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38926           0 :     return false;
   38927             :   }
   38928           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38929           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38930           0 :     return false;
   38931             :   }
   38932           0 :   return true;
   38933             : }
   38934             : 
   38935             : static bool
   38936           0 : set_text_decoration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   38937             : {
   38938           0 :   binding_detail::FakeString arg0;
   38939           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   38940           0 :     return false;
   38941             :   }
   38942           0 :   binding_detail::FastErrorResult rv;
   38943           0 :   self->SetTextDecoration(NonNullHelper(Constify(arg0)), rv);
   38944           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38945           0 :     return false;
   38946             :   }
   38947           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38948             : 
   38949           0 :   return true;
   38950             : }
   38951             : 
   38952             : static const JSJitInfo text_decoration_getterinfo = {
   38953             :   { (JSJitGetterOp)get_text_decoration },
   38954             :   { prototypes::id::CSS2Properties },
   38955             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38956             :   JSJitInfo::Getter,
   38957             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38958             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   38959             :   false,  /* isInfallible. False in setters. */
   38960             :   false,  /* isMovable.  Not relevant for setters. */
   38961             :   false, /* isEliminatable.  Not relevant for setters. */
   38962             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38963             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38964             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38965             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38966             : };
   38967             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38968             : static_assert(0 < 1, "There is no slot for us");
   38969             : static const JSJitInfo text_decoration_setterinfo = {
   38970             :   { (JSJitGetterOp)set_text_decoration },
   38971             :   { prototypes::id::CSS2Properties },
   38972             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   38973             :   JSJitInfo::Setter,
   38974             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   38975             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   38976             :   false,  /* isInfallible. False in setters. */
   38977             :   false,  /* isMovable.  Not relevant for setters. */
   38978             :   false, /* isEliminatable.  Not relevant for setters. */
   38979             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   38980             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   38981             :   false,  /* isTypedMethod.  Only relevant for methods. */
   38982             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   38983             : };
   38984             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   38985             : static_assert(0 < 1, "There is no slot for us");
   38986             : 
   38987             : static bool
   38988           0 : get_textDecorationColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   38989             : {
   38990           0 :   binding_detail::FastErrorResult rv;
   38991           0 :   DOMString result;
   38992           0 :   self->GetTextDecorationColor(result, rv);
   38993           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   38994           0 :     return false;
   38995             :   }
   38996           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   38997           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   38998           0 :     return false;
   38999             :   }
   39000           0 :   return true;
   39001             : }
   39002             : 
   39003             : static bool
   39004           0 : set_textDecorationColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39005             : {
   39006           0 :   binding_detail::FakeString arg0;
   39007           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39008           0 :     return false;
   39009             :   }
   39010           0 :   binding_detail::FastErrorResult rv;
   39011           0 :   self->SetTextDecorationColor(NonNullHelper(Constify(arg0)), rv);
   39012           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39013           0 :     return false;
   39014             :   }
   39015           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39016             : 
   39017           0 :   return true;
   39018             : }
   39019             : 
   39020             : static const JSJitInfo textDecorationColor_getterinfo = {
   39021             :   { (JSJitGetterOp)get_textDecorationColor },
   39022             :   { prototypes::id::CSS2Properties },
   39023             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39024             :   JSJitInfo::Getter,
   39025             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39026             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39027             :   false,  /* isInfallible. False in setters. */
   39028             :   false,  /* isMovable.  Not relevant for setters. */
   39029             :   false, /* isEliminatable.  Not relevant for setters. */
   39030             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39031             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39032             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39033             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39034             : };
   39035             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39036             : static_assert(0 < 1, "There is no slot for us");
   39037             : static const JSJitInfo textDecorationColor_setterinfo = {
   39038             :   { (JSJitGetterOp)set_textDecorationColor },
   39039             :   { prototypes::id::CSS2Properties },
   39040             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39041             :   JSJitInfo::Setter,
   39042             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39043             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39044             :   false,  /* isInfallible. False in setters. */
   39045             :   false,  /* isMovable.  Not relevant for setters. */
   39046             :   false, /* isEliminatable.  Not relevant for setters. */
   39047             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39048             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39049             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39050             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39051             : };
   39052             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39053             : static_assert(0 < 1, "There is no slot for us");
   39054             : 
   39055             : static bool
   39056           0 : get_text_decoration_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39057             : {
   39058           0 :   binding_detail::FastErrorResult rv;
   39059           0 :   DOMString result;
   39060           0 :   self->GetTextDecorationColor(result, rv);
   39061           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39062           0 :     return false;
   39063             :   }
   39064           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39065           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39066           0 :     return false;
   39067             :   }
   39068           0 :   return true;
   39069             : }
   39070             : 
   39071             : static bool
   39072           0 : set_text_decoration_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39073             : {
   39074           0 :   binding_detail::FakeString arg0;
   39075           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39076           0 :     return false;
   39077             :   }
   39078           0 :   binding_detail::FastErrorResult rv;
   39079           0 :   self->SetTextDecorationColor(NonNullHelper(Constify(arg0)), rv);
   39080           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39081           0 :     return false;
   39082             :   }
   39083           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39084             : 
   39085           0 :   return true;
   39086             : }
   39087             : 
   39088             : static const JSJitInfo text_decoration_color_getterinfo = {
   39089             :   { (JSJitGetterOp)get_text_decoration_color },
   39090             :   { prototypes::id::CSS2Properties },
   39091             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39092             :   JSJitInfo::Getter,
   39093             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39094             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39095             :   false,  /* isInfallible. False in setters. */
   39096             :   false,  /* isMovable.  Not relevant for setters. */
   39097             :   false, /* isEliminatable.  Not relevant for setters. */
   39098             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39099             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39100             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39101             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39102             : };
   39103             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39104             : static_assert(0 < 1, "There is no slot for us");
   39105             : static const JSJitInfo text_decoration_color_setterinfo = {
   39106             :   { (JSJitGetterOp)set_text_decoration_color },
   39107             :   { prototypes::id::CSS2Properties },
   39108             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39109             :   JSJitInfo::Setter,
   39110             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39111             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39112             :   false,  /* isInfallible. False in setters. */
   39113             :   false,  /* isMovable.  Not relevant for setters. */
   39114             :   false, /* isEliminatable.  Not relevant for setters. */
   39115             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39116             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39117             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39118             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39119             : };
   39120             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39121             : static_assert(0 < 1, "There is no slot for us");
   39122             : 
   39123             : static bool
   39124           0 : get_textDecorationLine(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39125             : {
   39126           0 :   binding_detail::FastErrorResult rv;
   39127           0 :   DOMString result;
   39128           0 :   self->GetTextDecorationLine(result, rv);
   39129           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39130           0 :     return false;
   39131             :   }
   39132           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39133           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39134           0 :     return false;
   39135             :   }
   39136           0 :   return true;
   39137             : }
   39138             : 
   39139             : static bool
   39140           0 : set_textDecorationLine(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39141             : {
   39142           0 :   binding_detail::FakeString arg0;
   39143           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39144           0 :     return false;
   39145             :   }
   39146           0 :   binding_detail::FastErrorResult rv;
   39147           0 :   self->SetTextDecorationLine(NonNullHelper(Constify(arg0)), rv);
   39148           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39149           0 :     return false;
   39150             :   }
   39151           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39152             : 
   39153           0 :   return true;
   39154             : }
   39155             : 
   39156             : static const JSJitInfo textDecorationLine_getterinfo = {
   39157             :   { (JSJitGetterOp)get_textDecorationLine },
   39158             :   { prototypes::id::CSS2Properties },
   39159             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39160             :   JSJitInfo::Getter,
   39161             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39162             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39163             :   false,  /* isInfallible. False in setters. */
   39164             :   false,  /* isMovable.  Not relevant for setters. */
   39165             :   false, /* isEliminatable.  Not relevant for setters. */
   39166             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39167             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39168             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39169             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39170             : };
   39171             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39172             : static_assert(0 < 1, "There is no slot for us");
   39173             : static const JSJitInfo textDecorationLine_setterinfo = {
   39174             :   { (JSJitGetterOp)set_textDecorationLine },
   39175             :   { prototypes::id::CSS2Properties },
   39176             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39177             :   JSJitInfo::Setter,
   39178             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39179             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39180             :   false,  /* isInfallible. False in setters. */
   39181             :   false,  /* isMovable.  Not relevant for setters. */
   39182             :   false, /* isEliminatable.  Not relevant for setters. */
   39183             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39184             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39185             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39186             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39187             : };
   39188             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39189             : static_assert(0 < 1, "There is no slot for us");
   39190             : 
   39191             : static bool
   39192           0 : get_text_decoration_line(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39193             : {
   39194           0 :   binding_detail::FastErrorResult rv;
   39195           0 :   DOMString result;
   39196           0 :   self->GetTextDecorationLine(result, rv);
   39197           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39198           0 :     return false;
   39199             :   }
   39200           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39201           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39202           0 :     return false;
   39203             :   }
   39204           0 :   return true;
   39205             : }
   39206             : 
   39207             : static bool
   39208           0 : set_text_decoration_line(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39209             : {
   39210           0 :   binding_detail::FakeString arg0;
   39211           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39212           0 :     return false;
   39213             :   }
   39214           0 :   binding_detail::FastErrorResult rv;
   39215           0 :   self->SetTextDecorationLine(NonNullHelper(Constify(arg0)), rv);
   39216           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39217           0 :     return false;
   39218             :   }
   39219           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39220             : 
   39221           0 :   return true;
   39222             : }
   39223             : 
   39224             : static const JSJitInfo text_decoration_line_getterinfo = {
   39225             :   { (JSJitGetterOp)get_text_decoration_line },
   39226             :   { prototypes::id::CSS2Properties },
   39227             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39228             :   JSJitInfo::Getter,
   39229             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39230             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39231             :   false,  /* isInfallible. False in setters. */
   39232             :   false,  /* isMovable.  Not relevant for setters. */
   39233             :   false, /* isEliminatable.  Not relevant for setters. */
   39234             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39235             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39236             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39237             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39238             : };
   39239             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39240             : static_assert(0 < 1, "There is no slot for us");
   39241             : static const JSJitInfo text_decoration_line_setterinfo = {
   39242             :   { (JSJitGetterOp)set_text_decoration_line },
   39243             :   { prototypes::id::CSS2Properties },
   39244             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39245             :   JSJitInfo::Setter,
   39246             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39247             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39248             :   false,  /* isInfallible. False in setters. */
   39249             :   false,  /* isMovable.  Not relevant for setters. */
   39250             :   false, /* isEliminatable.  Not relevant for setters. */
   39251             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39252             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39253             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39254             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39255             : };
   39256             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39257             : static_assert(0 < 1, "There is no slot for us");
   39258             : 
   39259             : static bool
   39260           0 : get_textDecorationStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39261             : {
   39262           0 :   binding_detail::FastErrorResult rv;
   39263           0 :   DOMString result;
   39264           0 :   self->GetTextDecorationStyle(result, rv);
   39265           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39266           0 :     return false;
   39267             :   }
   39268           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39269           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39270           0 :     return false;
   39271             :   }
   39272           0 :   return true;
   39273             : }
   39274             : 
   39275             : static bool
   39276           0 : set_textDecorationStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39277             : {
   39278           0 :   binding_detail::FakeString arg0;
   39279           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39280           0 :     return false;
   39281             :   }
   39282           0 :   binding_detail::FastErrorResult rv;
   39283           0 :   self->SetTextDecorationStyle(NonNullHelper(Constify(arg0)), rv);
   39284           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39285           0 :     return false;
   39286             :   }
   39287           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39288             : 
   39289           0 :   return true;
   39290             : }
   39291             : 
   39292             : static const JSJitInfo textDecorationStyle_getterinfo = {
   39293             :   { (JSJitGetterOp)get_textDecorationStyle },
   39294             :   { prototypes::id::CSS2Properties },
   39295             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39296             :   JSJitInfo::Getter,
   39297             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39298             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39299             :   false,  /* isInfallible. False in setters. */
   39300             :   false,  /* isMovable.  Not relevant for setters. */
   39301             :   false, /* isEliminatable.  Not relevant for setters. */
   39302             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39303             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39304             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39305             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39306             : };
   39307             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39308             : static_assert(0 < 1, "There is no slot for us");
   39309             : static const JSJitInfo textDecorationStyle_setterinfo = {
   39310             :   { (JSJitGetterOp)set_textDecorationStyle },
   39311             :   { prototypes::id::CSS2Properties },
   39312             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39313             :   JSJitInfo::Setter,
   39314             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39315             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39316             :   false,  /* isInfallible. False in setters. */
   39317             :   false,  /* isMovable.  Not relevant for setters. */
   39318             :   false, /* isEliminatable.  Not relevant for setters. */
   39319             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39320             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39321             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39322             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39323             : };
   39324             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39325             : static_assert(0 < 1, "There is no slot for us");
   39326             : 
   39327             : static bool
   39328           0 : get_text_decoration_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39329             : {
   39330           0 :   binding_detail::FastErrorResult rv;
   39331           0 :   DOMString result;
   39332           0 :   self->GetTextDecorationStyle(result, rv);
   39333           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39334           0 :     return false;
   39335             :   }
   39336           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39337           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39338           0 :     return false;
   39339             :   }
   39340           0 :   return true;
   39341             : }
   39342             : 
   39343             : static bool
   39344           0 : set_text_decoration_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39345             : {
   39346           0 :   binding_detail::FakeString arg0;
   39347           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39348           0 :     return false;
   39349             :   }
   39350           0 :   binding_detail::FastErrorResult rv;
   39351           0 :   self->SetTextDecorationStyle(NonNullHelper(Constify(arg0)), rv);
   39352           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39353           0 :     return false;
   39354             :   }
   39355           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39356             : 
   39357           0 :   return true;
   39358             : }
   39359             : 
   39360             : static const JSJitInfo text_decoration_style_getterinfo = {
   39361             :   { (JSJitGetterOp)get_text_decoration_style },
   39362             :   { prototypes::id::CSS2Properties },
   39363             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39364             :   JSJitInfo::Getter,
   39365             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39366             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39367             :   false,  /* isInfallible. False in setters. */
   39368             :   false,  /* isMovable.  Not relevant for setters. */
   39369             :   false, /* isEliminatable.  Not relevant for setters. */
   39370             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39371             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39372             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39373             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39374             : };
   39375             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39376             : static_assert(0 < 1, "There is no slot for us");
   39377             : static const JSJitInfo text_decoration_style_setterinfo = {
   39378             :   { (JSJitGetterOp)set_text_decoration_style },
   39379             :   { prototypes::id::CSS2Properties },
   39380             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39381             :   JSJitInfo::Setter,
   39382             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39383             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39384             :   false,  /* isInfallible. False in setters. */
   39385             :   false,  /* isMovable.  Not relevant for setters. */
   39386             :   false, /* isEliminatable.  Not relevant for setters. */
   39387             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39388             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39389             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39390             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39391             : };
   39392             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39393             : static_assert(0 < 1, "There is no slot for us");
   39394             : 
   39395             : static bool
   39396           0 : get_textEmphasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39397             : {
   39398           0 :   binding_detail::FastErrorResult rv;
   39399           0 :   DOMString result;
   39400           0 :   self->GetTextEmphasis(result, rv);
   39401           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39402           0 :     return false;
   39403             :   }
   39404           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39405           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39406           0 :     return false;
   39407             :   }
   39408           0 :   return true;
   39409             : }
   39410             : 
   39411             : static bool
   39412           0 : set_textEmphasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39413             : {
   39414           0 :   binding_detail::FakeString arg0;
   39415           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39416           0 :     return false;
   39417             :   }
   39418           0 :   binding_detail::FastErrorResult rv;
   39419           0 :   self->SetTextEmphasis(NonNullHelper(Constify(arg0)), rv);
   39420           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39421           0 :     return false;
   39422             :   }
   39423           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39424             : 
   39425           0 :   return true;
   39426             : }
   39427             : 
   39428             : static const JSJitInfo textEmphasis_getterinfo = {
   39429             :   { (JSJitGetterOp)get_textEmphasis },
   39430             :   { prototypes::id::CSS2Properties },
   39431             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39432             :   JSJitInfo::Getter,
   39433             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39434             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39435             :   false,  /* isInfallible. False in setters. */
   39436             :   false,  /* isMovable.  Not relevant for setters. */
   39437             :   false, /* isEliminatable.  Not relevant for setters. */
   39438             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39439             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39440             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39441             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39442             : };
   39443             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39444             : static_assert(0 < 1, "There is no slot for us");
   39445             : static const JSJitInfo textEmphasis_setterinfo = {
   39446             :   { (JSJitGetterOp)set_textEmphasis },
   39447             :   { prototypes::id::CSS2Properties },
   39448             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39449             :   JSJitInfo::Setter,
   39450             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39451             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39452             :   false,  /* isInfallible. False in setters. */
   39453             :   false,  /* isMovable.  Not relevant for setters. */
   39454             :   false, /* isEliminatable.  Not relevant for setters. */
   39455             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39456             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39457             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39458             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39459             : };
   39460             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39461             : static_assert(0 < 1, "There is no slot for us");
   39462             : 
   39463             : static bool
   39464           0 : get_text_emphasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39465             : {
   39466           0 :   binding_detail::FastErrorResult rv;
   39467           0 :   DOMString result;
   39468           0 :   self->GetTextEmphasis(result, rv);
   39469           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39470           0 :     return false;
   39471             :   }
   39472           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39473           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39474           0 :     return false;
   39475             :   }
   39476           0 :   return true;
   39477             : }
   39478             : 
   39479             : static bool
   39480           0 : set_text_emphasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39481             : {
   39482           0 :   binding_detail::FakeString arg0;
   39483           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39484           0 :     return false;
   39485             :   }
   39486           0 :   binding_detail::FastErrorResult rv;
   39487           0 :   self->SetTextEmphasis(NonNullHelper(Constify(arg0)), rv);
   39488           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39489           0 :     return false;
   39490             :   }
   39491           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39492             : 
   39493           0 :   return true;
   39494             : }
   39495             : 
   39496             : static const JSJitInfo text_emphasis_getterinfo = {
   39497             :   { (JSJitGetterOp)get_text_emphasis },
   39498             :   { prototypes::id::CSS2Properties },
   39499             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39500             :   JSJitInfo::Getter,
   39501             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39502             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39503             :   false,  /* isInfallible. False in setters. */
   39504             :   false,  /* isMovable.  Not relevant for setters. */
   39505             :   false, /* isEliminatable.  Not relevant for setters. */
   39506             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39507             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39508             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39509             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39510             : };
   39511             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39512             : static_assert(0 < 1, "There is no slot for us");
   39513             : static const JSJitInfo text_emphasis_setterinfo = {
   39514             :   { (JSJitGetterOp)set_text_emphasis },
   39515             :   { prototypes::id::CSS2Properties },
   39516             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39517             :   JSJitInfo::Setter,
   39518             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39519             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39520             :   false,  /* isInfallible. False in setters. */
   39521             :   false,  /* isMovable.  Not relevant for setters. */
   39522             :   false, /* isEliminatable.  Not relevant for setters. */
   39523             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39524             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39525             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39526             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39527             : };
   39528             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39529             : static_assert(0 < 1, "There is no slot for us");
   39530             : 
   39531             : static bool
   39532           0 : get_textEmphasisColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39533             : {
   39534           0 :   binding_detail::FastErrorResult rv;
   39535           0 :   DOMString result;
   39536           0 :   self->GetTextEmphasisColor(result, rv);
   39537           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39538           0 :     return false;
   39539             :   }
   39540           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39541           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39542           0 :     return false;
   39543             :   }
   39544           0 :   return true;
   39545             : }
   39546             : 
   39547             : static bool
   39548           0 : set_textEmphasisColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39549             : {
   39550           0 :   binding_detail::FakeString arg0;
   39551           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39552           0 :     return false;
   39553             :   }
   39554           0 :   binding_detail::FastErrorResult rv;
   39555           0 :   self->SetTextEmphasisColor(NonNullHelper(Constify(arg0)), rv);
   39556           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39557           0 :     return false;
   39558             :   }
   39559           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39560             : 
   39561           0 :   return true;
   39562             : }
   39563             : 
   39564             : static const JSJitInfo textEmphasisColor_getterinfo = {
   39565             :   { (JSJitGetterOp)get_textEmphasisColor },
   39566             :   { prototypes::id::CSS2Properties },
   39567             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39568             :   JSJitInfo::Getter,
   39569             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39570             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39571             :   false,  /* isInfallible. False in setters. */
   39572             :   false,  /* isMovable.  Not relevant for setters. */
   39573             :   false, /* isEliminatable.  Not relevant for setters. */
   39574             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39575             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39576             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39577             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39578             : };
   39579             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39580             : static_assert(0 < 1, "There is no slot for us");
   39581             : static const JSJitInfo textEmphasisColor_setterinfo = {
   39582             :   { (JSJitGetterOp)set_textEmphasisColor },
   39583             :   { prototypes::id::CSS2Properties },
   39584             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39585             :   JSJitInfo::Setter,
   39586             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39587             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39588             :   false,  /* isInfallible. False in setters. */
   39589             :   false,  /* isMovable.  Not relevant for setters. */
   39590             :   false, /* isEliminatable.  Not relevant for setters. */
   39591             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39592             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39593             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39594             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39595             : };
   39596             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39597             : static_assert(0 < 1, "There is no slot for us");
   39598             : 
   39599             : static bool
   39600           0 : get_text_emphasis_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39601             : {
   39602           0 :   binding_detail::FastErrorResult rv;
   39603           0 :   DOMString result;
   39604           0 :   self->GetTextEmphasisColor(result, rv);
   39605           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39606           0 :     return false;
   39607             :   }
   39608           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39609           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39610           0 :     return false;
   39611             :   }
   39612           0 :   return true;
   39613             : }
   39614             : 
   39615             : static bool
   39616           0 : set_text_emphasis_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39617             : {
   39618           0 :   binding_detail::FakeString arg0;
   39619           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39620           0 :     return false;
   39621             :   }
   39622           0 :   binding_detail::FastErrorResult rv;
   39623           0 :   self->SetTextEmphasisColor(NonNullHelper(Constify(arg0)), rv);
   39624           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39625           0 :     return false;
   39626             :   }
   39627           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39628             : 
   39629           0 :   return true;
   39630             : }
   39631             : 
   39632             : static const JSJitInfo text_emphasis_color_getterinfo = {
   39633             :   { (JSJitGetterOp)get_text_emphasis_color },
   39634             :   { prototypes::id::CSS2Properties },
   39635             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39636             :   JSJitInfo::Getter,
   39637             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39638             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39639             :   false,  /* isInfallible. False in setters. */
   39640             :   false,  /* isMovable.  Not relevant for setters. */
   39641             :   false, /* isEliminatable.  Not relevant for setters. */
   39642             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39643             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39644             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39645             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39646             : };
   39647             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39648             : static_assert(0 < 1, "There is no slot for us");
   39649             : static const JSJitInfo text_emphasis_color_setterinfo = {
   39650             :   { (JSJitGetterOp)set_text_emphasis_color },
   39651             :   { prototypes::id::CSS2Properties },
   39652             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39653             :   JSJitInfo::Setter,
   39654             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39655             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39656             :   false,  /* isInfallible. False in setters. */
   39657             :   false,  /* isMovable.  Not relevant for setters. */
   39658             :   false, /* isEliminatable.  Not relevant for setters. */
   39659             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39660             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39661             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39662             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39663             : };
   39664             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39665             : static_assert(0 < 1, "There is no slot for us");
   39666             : 
   39667             : static bool
   39668           0 : get_textEmphasisPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39669             : {
   39670           0 :   binding_detail::FastErrorResult rv;
   39671           0 :   DOMString result;
   39672           0 :   self->GetTextEmphasisPosition(result, rv);
   39673           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39674           0 :     return false;
   39675             :   }
   39676           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39677           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39678           0 :     return false;
   39679             :   }
   39680           0 :   return true;
   39681             : }
   39682             : 
   39683             : static bool
   39684           0 : set_textEmphasisPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39685             : {
   39686           0 :   binding_detail::FakeString arg0;
   39687           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39688           0 :     return false;
   39689             :   }
   39690           0 :   binding_detail::FastErrorResult rv;
   39691           0 :   self->SetTextEmphasisPosition(NonNullHelper(Constify(arg0)), rv);
   39692           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39693           0 :     return false;
   39694             :   }
   39695           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39696             : 
   39697           0 :   return true;
   39698             : }
   39699             : 
   39700             : static const JSJitInfo textEmphasisPosition_getterinfo = {
   39701             :   { (JSJitGetterOp)get_textEmphasisPosition },
   39702             :   { prototypes::id::CSS2Properties },
   39703             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39704             :   JSJitInfo::Getter,
   39705             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39706             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39707             :   false,  /* isInfallible. False in setters. */
   39708             :   false,  /* isMovable.  Not relevant for setters. */
   39709             :   false, /* isEliminatable.  Not relevant for setters. */
   39710             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39711             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39712             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39713             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39714             : };
   39715             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39716             : static_assert(0 < 1, "There is no slot for us");
   39717             : static const JSJitInfo textEmphasisPosition_setterinfo = {
   39718             :   { (JSJitGetterOp)set_textEmphasisPosition },
   39719             :   { prototypes::id::CSS2Properties },
   39720             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39721             :   JSJitInfo::Setter,
   39722             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39723             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39724             :   false,  /* isInfallible. False in setters. */
   39725             :   false,  /* isMovable.  Not relevant for setters. */
   39726             :   false, /* isEliminatable.  Not relevant for setters. */
   39727             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39728             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39729             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39730             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39731             : };
   39732             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39733             : static_assert(0 < 1, "There is no slot for us");
   39734             : 
   39735             : static bool
   39736           0 : get_text_emphasis_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39737             : {
   39738           0 :   binding_detail::FastErrorResult rv;
   39739           0 :   DOMString result;
   39740           0 :   self->GetTextEmphasisPosition(result, rv);
   39741           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39742           0 :     return false;
   39743             :   }
   39744           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39745           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39746           0 :     return false;
   39747             :   }
   39748           0 :   return true;
   39749             : }
   39750             : 
   39751             : static bool
   39752           0 : set_text_emphasis_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39753             : {
   39754           0 :   binding_detail::FakeString arg0;
   39755           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39756           0 :     return false;
   39757             :   }
   39758           0 :   binding_detail::FastErrorResult rv;
   39759           0 :   self->SetTextEmphasisPosition(NonNullHelper(Constify(arg0)), rv);
   39760           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39761           0 :     return false;
   39762             :   }
   39763           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39764             : 
   39765           0 :   return true;
   39766             : }
   39767             : 
   39768             : static const JSJitInfo text_emphasis_position_getterinfo = {
   39769             :   { (JSJitGetterOp)get_text_emphasis_position },
   39770             :   { prototypes::id::CSS2Properties },
   39771             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39772             :   JSJitInfo::Getter,
   39773             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39774             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39775             :   false,  /* isInfallible. False in setters. */
   39776             :   false,  /* isMovable.  Not relevant for setters. */
   39777             :   false, /* isEliminatable.  Not relevant for setters. */
   39778             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39779             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39780             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39781             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39782             : };
   39783             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39784             : static_assert(0 < 1, "There is no slot for us");
   39785             : static const JSJitInfo text_emphasis_position_setterinfo = {
   39786             :   { (JSJitGetterOp)set_text_emphasis_position },
   39787             :   { prototypes::id::CSS2Properties },
   39788             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39789             :   JSJitInfo::Setter,
   39790             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39791             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39792             :   false,  /* isInfallible. False in setters. */
   39793             :   false,  /* isMovable.  Not relevant for setters. */
   39794             :   false, /* isEliminatable.  Not relevant for setters. */
   39795             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39796             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39797             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39798             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39799             : };
   39800             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39801             : static_assert(0 < 1, "There is no slot for us");
   39802             : 
   39803             : static bool
   39804           0 : get_textEmphasisStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39805             : {
   39806           0 :   binding_detail::FastErrorResult rv;
   39807           0 :   DOMString result;
   39808           0 :   self->GetTextEmphasisStyle(result, rv);
   39809           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39810           0 :     return false;
   39811             :   }
   39812           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39813           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39814           0 :     return false;
   39815             :   }
   39816           0 :   return true;
   39817             : }
   39818             : 
   39819             : static bool
   39820           0 : set_textEmphasisStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39821             : {
   39822           0 :   binding_detail::FakeString arg0;
   39823           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39824           0 :     return false;
   39825             :   }
   39826           0 :   binding_detail::FastErrorResult rv;
   39827           0 :   self->SetTextEmphasisStyle(NonNullHelper(Constify(arg0)), rv);
   39828           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39829           0 :     return false;
   39830             :   }
   39831           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39832             : 
   39833           0 :   return true;
   39834             : }
   39835             : 
   39836             : static const JSJitInfo textEmphasisStyle_getterinfo = {
   39837             :   { (JSJitGetterOp)get_textEmphasisStyle },
   39838             :   { prototypes::id::CSS2Properties },
   39839             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39840             :   JSJitInfo::Getter,
   39841             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39842             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39843             :   false,  /* isInfallible. False in setters. */
   39844             :   false,  /* isMovable.  Not relevant for setters. */
   39845             :   false, /* isEliminatable.  Not relevant for setters. */
   39846             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39847             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39848             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39849             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39850             : };
   39851             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39852             : static_assert(0 < 1, "There is no slot for us");
   39853             : static const JSJitInfo textEmphasisStyle_setterinfo = {
   39854             :   { (JSJitGetterOp)set_textEmphasisStyle },
   39855             :   { prototypes::id::CSS2Properties },
   39856             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39857             :   JSJitInfo::Setter,
   39858             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39859             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39860             :   false,  /* isInfallible. False in setters. */
   39861             :   false,  /* isMovable.  Not relevant for setters. */
   39862             :   false, /* isEliminatable.  Not relevant for setters. */
   39863             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39864             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39865             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39866             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39867             : };
   39868             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39869             : static_assert(0 < 1, "There is no slot for us");
   39870             : 
   39871             : static bool
   39872           0 : get_text_emphasis_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39873             : {
   39874           0 :   binding_detail::FastErrorResult rv;
   39875           0 :   DOMString result;
   39876           0 :   self->GetTextEmphasisStyle(result, rv);
   39877           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39878           0 :     return false;
   39879             :   }
   39880           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39881           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39882           0 :     return false;
   39883             :   }
   39884           0 :   return true;
   39885             : }
   39886             : 
   39887             : static bool
   39888           0 : set_text_emphasis_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39889             : {
   39890           0 :   binding_detail::FakeString arg0;
   39891           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39892           0 :     return false;
   39893             :   }
   39894           0 :   binding_detail::FastErrorResult rv;
   39895           0 :   self->SetTextEmphasisStyle(NonNullHelper(Constify(arg0)), rv);
   39896           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39897           0 :     return false;
   39898             :   }
   39899           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39900             : 
   39901           0 :   return true;
   39902             : }
   39903             : 
   39904             : static const JSJitInfo text_emphasis_style_getterinfo = {
   39905             :   { (JSJitGetterOp)get_text_emphasis_style },
   39906             :   { prototypes::id::CSS2Properties },
   39907             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39908             :   JSJitInfo::Getter,
   39909             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39910             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39911             :   false,  /* isInfallible. False in setters. */
   39912             :   false,  /* isMovable.  Not relevant for setters. */
   39913             :   false, /* isEliminatable.  Not relevant for setters. */
   39914             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39915             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39916             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39917             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39918             : };
   39919             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39920             : static_assert(0 < 1, "There is no slot for us");
   39921             : static const JSJitInfo text_emphasis_style_setterinfo = {
   39922             :   { (JSJitGetterOp)set_text_emphasis_style },
   39923             :   { prototypes::id::CSS2Properties },
   39924             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39925             :   JSJitInfo::Setter,
   39926             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39927             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39928             :   false,  /* isInfallible. False in setters. */
   39929             :   false,  /* isMovable.  Not relevant for setters. */
   39930             :   false, /* isEliminatable.  Not relevant for setters. */
   39931             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39932             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39933             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39934             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39935             : };
   39936             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39937             : static_assert(0 < 1, "There is no slot for us");
   39938             : 
   39939             : static bool
   39940           0 : get_WebkitTextFillColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   39941             : {
   39942           0 :   binding_detail::FastErrorResult rv;
   39943           0 :   DOMString result;
   39944           0 :   self->GetWebkitTextFillColor(result, rv);
   39945           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39946           0 :     return false;
   39947             :   }
   39948           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39949           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   39950           0 :     return false;
   39951             :   }
   39952           0 :   return true;
   39953             : }
   39954             : 
   39955             : static bool
   39956           0 : set_WebkitTextFillColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   39957             : {
   39958           0 :   binding_detail::FakeString arg0;
   39959           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   39960           0 :     return false;
   39961             :   }
   39962           0 :   binding_detail::FastErrorResult rv;
   39963           0 :   self->SetWebkitTextFillColor(NonNullHelper(Constify(arg0)), rv);
   39964           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   39965           0 :     return false;
   39966             :   }
   39967           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   39968             : 
   39969           0 :   return true;
   39970             : }
   39971             : 
   39972             : static const JSJitInfo WebkitTextFillColor_getterinfo = {
   39973             :   { (JSJitGetterOp)get_WebkitTextFillColor },
   39974             :   { prototypes::id::CSS2Properties },
   39975             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39976             :   JSJitInfo::Getter,
   39977             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39978             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   39979             :   false,  /* isInfallible. False in setters. */
   39980             :   false,  /* isMovable.  Not relevant for setters. */
   39981             :   false, /* isEliminatable.  Not relevant for setters. */
   39982             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   39983             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   39984             :   false,  /* isTypedMethod.  Only relevant for methods. */
   39985             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   39986             : };
   39987             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   39988             : static_assert(0 < 1, "There is no slot for us");
   39989             : static const JSJitInfo WebkitTextFillColor_setterinfo = {
   39990             :   { (JSJitGetterOp)set_WebkitTextFillColor },
   39991             :   { prototypes::id::CSS2Properties },
   39992             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   39993             :   JSJitInfo::Setter,
   39994             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   39995             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   39996             :   false,  /* isInfallible. False in setters. */
   39997             :   false,  /* isMovable.  Not relevant for setters. */
   39998             :   false, /* isEliminatable.  Not relevant for setters. */
   39999             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40000             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40001             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40002             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40003             : };
   40004             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40005             : static_assert(0 < 1, "There is no slot for us");
   40006             : 
   40007             : static bool
   40008           0 : get_webkitTextFillColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40009             : {
   40010           0 :   binding_detail::FastErrorResult rv;
   40011           0 :   DOMString result;
   40012           0 :   self->GetWebkitTextFillColor(result, rv);
   40013           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40014           0 :     return false;
   40015             :   }
   40016           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40017           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40018           0 :     return false;
   40019             :   }
   40020           0 :   return true;
   40021             : }
   40022             : 
   40023             : static bool
   40024           0 : set_webkitTextFillColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40025             : {
   40026           0 :   binding_detail::FakeString arg0;
   40027           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40028           0 :     return false;
   40029             :   }
   40030           0 :   binding_detail::FastErrorResult rv;
   40031           0 :   self->SetWebkitTextFillColor(NonNullHelper(Constify(arg0)), rv);
   40032           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40033           0 :     return false;
   40034             :   }
   40035           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40036             : 
   40037           0 :   return true;
   40038             : }
   40039             : 
   40040             : static const JSJitInfo webkitTextFillColor_getterinfo = {
   40041             :   { (JSJitGetterOp)get_webkitTextFillColor },
   40042             :   { prototypes::id::CSS2Properties },
   40043             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40044             :   JSJitInfo::Getter,
   40045             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40046             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40047             :   false,  /* isInfallible. False in setters. */
   40048             :   false,  /* isMovable.  Not relevant for setters. */
   40049             :   false, /* isEliminatable.  Not relevant for setters. */
   40050             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40051             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40052             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40053             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40054             : };
   40055             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40056             : static_assert(0 < 1, "There is no slot for us");
   40057             : static const JSJitInfo webkitTextFillColor_setterinfo = {
   40058             :   { (JSJitGetterOp)set_webkitTextFillColor },
   40059             :   { prototypes::id::CSS2Properties },
   40060             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40061             :   JSJitInfo::Setter,
   40062             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40063             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40064             :   false,  /* isInfallible. False in setters. */
   40065             :   false,  /* isMovable.  Not relevant for setters. */
   40066             :   false, /* isEliminatable.  Not relevant for setters. */
   40067             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40068             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40069             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40070             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40071             : };
   40072             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40073             : static_assert(0 < 1, "There is no slot for us");
   40074             : 
   40075             : static bool
   40076           0 : get__webkit_text_fill_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40077             : {
   40078           0 :   binding_detail::FastErrorResult rv;
   40079           0 :   DOMString result;
   40080           0 :   self->GetWebkitTextFillColor(result, rv);
   40081           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40082           0 :     return false;
   40083             :   }
   40084           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40085           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40086           0 :     return false;
   40087             :   }
   40088           0 :   return true;
   40089             : }
   40090             : 
   40091             : static bool
   40092           0 : set__webkit_text_fill_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40093             : {
   40094           0 :   binding_detail::FakeString arg0;
   40095           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40096           0 :     return false;
   40097             :   }
   40098           0 :   binding_detail::FastErrorResult rv;
   40099           0 :   self->SetWebkitTextFillColor(NonNullHelper(Constify(arg0)), rv);
   40100           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40101           0 :     return false;
   40102             :   }
   40103           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40104             : 
   40105           0 :   return true;
   40106             : }
   40107             : 
   40108             : static const JSJitInfo _webkit_text_fill_color_getterinfo = {
   40109             :   { (JSJitGetterOp)get__webkit_text_fill_color },
   40110             :   { prototypes::id::CSS2Properties },
   40111             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40112             :   JSJitInfo::Getter,
   40113             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40114             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40115             :   false,  /* isInfallible. False in setters. */
   40116             :   false,  /* isMovable.  Not relevant for setters. */
   40117             :   false, /* isEliminatable.  Not relevant for setters. */
   40118             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40119             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40120             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40121             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40122             : };
   40123             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40124             : static_assert(0 < 1, "There is no slot for us");
   40125             : static const JSJitInfo _webkit_text_fill_color_setterinfo = {
   40126             :   { (JSJitGetterOp)set__webkit_text_fill_color },
   40127             :   { prototypes::id::CSS2Properties },
   40128             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40129             :   JSJitInfo::Setter,
   40130             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40131             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40132             :   false,  /* isInfallible. False in setters. */
   40133             :   false,  /* isMovable.  Not relevant for setters. */
   40134             :   false, /* isEliminatable.  Not relevant for setters. */
   40135             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40136             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40137             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40138             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40139             : };
   40140             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40141             : static_assert(0 < 1, "There is no slot for us");
   40142             : 
   40143             : static bool
   40144           0 : get_textIndent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40145             : {
   40146           0 :   binding_detail::FastErrorResult rv;
   40147           0 :   DOMString result;
   40148           0 :   self->GetTextIndent(result, rv);
   40149           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40150           0 :     return false;
   40151             :   }
   40152           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40153           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40154           0 :     return false;
   40155             :   }
   40156           0 :   return true;
   40157             : }
   40158             : 
   40159             : static bool
   40160           0 : set_textIndent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40161             : {
   40162           0 :   binding_detail::FakeString arg0;
   40163           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40164           0 :     return false;
   40165             :   }
   40166           0 :   binding_detail::FastErrorResult rv;
   40167           0 :   self->SetTextIndent(NonNullHelper(Constify(arg0)), rv);
   40168           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40169           0 :     return false;
   40170             :   }
   40171           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40172             : 
   40173           0 :   return true;
   40174             : }
   40175             : 
   40176             : static const JSJitInfo textIndent_getterinfo = {
   40177             :   { (JSJitGetterOp)get_textIndent },
   40178             :   { prototypes::id::CSS2Properties },
   40179             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40180             :   JSJitInfo::Getter,
   40181             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40182             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40183             :   false,  /* isInfallible. False in setters. */
   40184             :   false,  /* isMovable.  Not relevant for setters. */
   40185             :   false, /* isEliminatable.  Not relevant for setters. */
   40186             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40187             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40188             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40189             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40190             : };
   40191             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40192             : static_assert(0 < 1, "There is no slot for us");
   40193             : static const JSJitInfo textIndent_setterinfo = {
   40194             :   { (JSJitGetterOp)set_textIndent },
   40195             :   { prototypes::id::CSS2Properties },
   40196             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40197             :   JSJitInfo::Setter,
   40198             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40199             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40200             :   false,  /* isInfallible. False in setters. */
   40201             :   false,  /* isMovable.  Not relevant for setters. */
   40202             :   false, /* isEliminatable.  Not relevant for setters. */
   40203             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40204             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40205             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40206             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40207             : };
   40208             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40209             : static_assert(0 < 1, "There is no slot for us");
   40210             : 
   40211             : static bool
   40212           0 : get_text_indent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40213             : {
   40214           0 :   binding_detail::FastErrorResult rv;
   40215           0 :   DOMString result;
   40216           0 :   self->GetTextIndent(result, rv);
   40217           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40218           0 :     return false;
   40219             :   }
   40220           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40221           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40222           0 :     return false;
   40223             :   }
   40224           0 :   return true;
   40225             : }
   40226             : 
   40227             : static bool
   40228           0 : set_text_indent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40229             : {
   40230           0 :   binding_detail::FakeString arg0;
   40231           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40232           0 :     return false;
   40233             :   }
   40234           0 :   binding_detail::FastErrorResult rv;
   40235           0 :   self->SetTextIndent(NonNullHelper(Constify(arg0)), rv);
   40236           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40237           0 :     return false;
   40238             :   }
   40239           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40240             : 
   40241           0 :   return true;
   40242             : }
   40243             : 
   40244             : static const JSJitInfo text_indent_getterinfo = {
   40245             :   { (JSJitGetterOp)get_text_indent },
   40246             :   { prototypes::id::CSS2Properties },
   40247             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40248             :   JSJitInfo::Getter,
   40249             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40250             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40251             :   false,  /* isInfallible. False in setters. */
   40252             :   false,  /* isMovable.  Not relevant for setters. */
   40253             :   false, /* isEliminatable.  Not relevant for setters. */
   40254             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40255             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40256             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40257             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40258             : };
   40259             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40260             : static_assert(0 < 1, "There is no slot for us");
   40261             : static const JSJitInfo text_indent_setterinfo = {
   40262             :   { (JSJitGetterOp)set_text_indent },
   40263             :   { prototypes::id::CSS2Properties },
   40264             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40265             :   JSJitInfo::Setter,
   40266             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40267             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40268             :   false,  /* isInfallible. False in setters. */
   40269             :   false,  /* isMovable.  Not relevant for setters. */
   40270             :   false, /* isEliminatable.  Not relevant for setters. */
   40271             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40272             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40273             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40274             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40275             : };
   40276             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40277             : static_assert(0 < 1, "There is no slot for us");
   40278             : 
   40279             : static bool
   40280           0 : get_textJustify(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40281             : {
   40282           0 :   binding_detail::FastErrorResult rv;
   40283           0 :   DOMString result;
   40284           0 :   self->GetTextJustify(result, rv);
   40285           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40286           0 :     return false;
   40287             :   }
   40288           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40289           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40290           0 :     return false;
   40291             :   }
   40292           0 :   return true;
   40293             : }
   40294             : 
   40295             : static bool
   40296           0 : set_textJustify(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40297             : {
   40298           0 :   binding_detail::FakeString arg0;
   40299           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40300           0 :     return false;
   40301             :   }
   40302           0 :   binding_detail::FastErrorResult rv;
   40303           0 :   self->SetTextJustify(NonNullHelper(Constify(arg0)), rv);
   40304           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40305           0 :     return false;
   40306             :   }
   40307           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40308             : 
   40309           0 :   return true;
   40310             : }
   40311             : 
   40312             : static const JSJitInfo textJustify_getterinfo = {
   40313             :   { (JSJitGetterOp)get_textJustify },
   40314             :   { prototypes::id::CSS2Properties },
   40315             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40316             :   JSJitInfo::Getter,
   40317             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40318             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40319             :   false,  /* isInfallible. False in setters. */
   40320             :   false,  /* isMovable.  Not relevant for setters. */
   40321             :   false, /* isEliminatable.  Not relevant for setters. */
   40322             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40323             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40324             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40325             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40326             : };
   40327             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40328             : static_assert(0 < 1, "There is no slot for us");
   40329             : static const JSJitInfo textJustify_setterinfo = {
   40330             :   { (JSJitGetterOp)set_textJustify },
   40331             :   { prototypes::id::CSS2Properties },
   40332             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40333             :   JSJitInfo::Setter,
   40334             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40335             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40336             :   false,  /* isInfallible. False in setters. */
   40337             :   false,  /* isMovable.  Not relevant for setters. */
   40338             :   false, /* isEliminatable.  Not relevant for setters. */
   40339             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40340             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40341             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40342             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40343             : };
   40344             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40345             : static_assert(0 < 1, "There is no slot for us");
   40346             : 
   40347             : static bool
   40348           0 : get_text_justify(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40349             : {
   40350           0 :   binding_detail::FastErrorResult rv;
   40351           0 :   DOMString result;
   40352           0 :   self->GetTextJustify(result, rv);
   40353           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40354           0 :     return false;
   40355             :   }
   40356           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40357           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40358           0 :     return false;
   40359             :   }
   40360           0 :   return true;
   40361             : }
   40362             : 
   40363             : static bool
   40364           0 : set_text_justify(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40365             : {
   40366           0 :   binding_detail::FakeString arg0;
   40367           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40368           0 :     return false;
   40369             :   }
   40370           0 :   binding_detail::FastErrorResult rv;
   40371           0 :   self->SetTextJustify(NonNullHelper(Constify(arg0)), rv);
   40372           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40373           0 :     return false;
   40374             :   }
   40375           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40376             : 
   40377           0 :   return true;
   40378             : }
   40379             : 
   40380             : static const JSJitInfo text_justify_getterinfo = {
   40381             :   { (JSJitGetterOp)get_text_justify },
   40382             :   { prototypes::id::CSS2Properties },
   40383             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40384             :   JSJitInfo::Getter,
   40385             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40386             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40387             :   false,  /* isInfallible. False in setters. */
   40388             :   false,  /* isMovable.  Not relevant for setters. */
   40389             :   false, /* isEliminatable.  Not relevant for setters. */
   40390             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40391             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40392             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40393             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40394             : };
   40395             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40396             : static_assert(0 < 1, "There is no slot for us");
   40397             : static const JSJitInfo text_justify_setterinfo = {
   40398             :   { (JSJitGetterOp)set_text_justify },
   40399             :   { prototypes::id::CSS2Properties },
   40400             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40401             :   JSJitInfo::Setter,
   40402             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40403             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40404             :   false,  /* isInfallible. False in setters. */
   40405             :   false,  /* isMovable.  Not relevant for setters. */
   40406             :   false, /* isEliminatable.  Not relevant for setters. */
   40407             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40408             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40409             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40410             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40411             : };
   40412             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40413             : static_assert(0 < 1, "There is no slot for us");
   40414             : 
   40415             : static bool
   40416           0 : get_textOrientation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40417             : {
   40418           0 :   binding_detail::FastErrorResult rv;
   40419           0 :   DOMString result;
   40420           0 :   self->GetTextOrientation(result, rv);
   40421           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40422           0 :     return false;
   40423             :   }
   40424           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40425           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40426           0 :     return false;
   40427             :   }
   40428           0 :   return true;
   40429             : }
   40430             : 
   40431             : static bool
   40432           0 : set_textOrientation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40433             : {
   40434           0 :   binding_detail::FakeString arg0;
   40435           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40436           0 :     return false;
   40437             :   }
   40438           0 :   binding_detail::FastErrorResult rv;
   40439           0 :   self->SetTextOrientation(NonNullHelper(Constify(arg0)), rv);
   40440           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40441           0 :     return false;
   40442             :   }
   40443           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40444             : 
   40445           0 :   return true;
   40446             : }
   40447             : 
   40448             : static const JSJitInfo textOrientation_getterinfo = {
   40449             :   { (JSJitGetterOp)get_textOrientation },
   40450             :   { prototypes::id::CSS2Properties },
   40451             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40452             :   JSJitInfo::Getter,
   40453             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40454             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40455             :   false,  /* isInfallible. False in setters. */
   40456             :   false,  /* isMovable.  Not relevant for setters. */
   40457             :   false, /* isEliminatable.  Not relevant for setters. */
   40458             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40459             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40460             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40461             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40462             : };
   40463             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40464             : static_assert(0 < 1, "There is no slot for us");
   40465             : static const JSJitInfo textOrientation_setterinfo = {
   40466             :   { (JSJitGetterOp)set_textOrientation },
   40467             :   { prototypes::id::CSS2Properties },
   40468             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40469             :   JSJitInfo::Setter,
   40470             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40471             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40472             :   false,  /* isInfallible. False in setters. */
   40473             :   false,  /* isMovable.  Not relevant for setters. */
   40474             :   false, /* isEliminatable.  Not relevant for setters. */
   40475             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40476             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40477             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40478             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40479             : };
   40480             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40481             : static_assert(0 < 1, "There is no slot for us");
   40482             : 
   40483             : static bool
   40484           0 : get_text_orientation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40485             : {
   40486           0 :   binding_detail::FastErrorResult rv;
   40487           0 :   DOMString result;
   40488           0 :   self->GetTextOrientation(result, rv);
   40489           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40490           0 :     return false;
   40491             :   }
   40492           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40493           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40494           0 :     return false;
   40495             :   }
   40496           0 :   return true;
   40497             : }
   40498             : 
   40499             : static bool
   40500           0 : set_text_orientation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40501             : {
   40502           0 :   binding_detail::FakeString arg0;
   40503           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40504           0 :     return false;
   40505             :   }
   40506           0 :   binding_detail::FastErrorResult rv;
   40507           0 :   self->SetTextOrientation(NonNullHelper(Constify(arg0)), rv);
   40508           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40509           0 :     return false;
   40510             :   }
   40511           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40512             : 
   40513           0 :   return true;
   40514             : }
   40515             : 
   40516             : static const JSJitInfo text_orientation_getterinfo = {
   40517             :   { (JSJitGetterOp)get_text_orientation },
   40518             :   { prototypes::id::CSS2Properties },
   40519             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40520             :   JSJitInfo::Getter,
   40521             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40522             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40523             :   false,  /* isInfallible. False in setters. */
   40524             :   false,  /* isMovable.  Not relevant for setters. */
   40525             :   false, /* isEliminatable.  Not relevant for setters. */
   40526             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40527             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40528             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40529             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40530             : };
   40531             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40532             : static_assert(0 < 1, "There is no slot for us");
   40533             : static const JSJitInfo text_orientation_setterinfo = {
   40534             :   { (JSJitGetterOp)set_text_orientation },
   40535             :   { prototypes::id::CSS2Properties },
   40536             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40537             :   JSJitInfo::Setter,
   40538             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40539             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40540             :   false,  /* isInfallible. False in setters. */
   40541             :   false,  /* isMovable.  Not relevant for setters. */
   40542             :   false, /* isEliminatable.  Not relevant for setters. */
   40543             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40544             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40545             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40546             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40547             : };
   40548             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40549             : static_assert(0 < 1, "There is no slot for us");
   40550             : 
   40551             : static bool
   40552           0 : get_textOverflow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40553             : {
   40554           0 :   binding_detail::FastErrorResult rv;
   40555           0 :   DOMString result;
   40556           0 :   self->GetTextOverflow(result, rv);
   40557           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40558           0 :     return false;
   40559             :   }
   40560           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40561           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40562           0 :     return false;
   40563             :   }
   40564           0 :   return true;
   40565             : }
   40566             : 
   40567             : static bool
   40568           0 : set_textOverflow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40569             : {
   40570           0 :   binding_detail::FakeString arg0;
   40571           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40572           0 :     return false;
   40573             :   }
   40574           0 :   binding_detail::FastErrorResult rv;
   40575           0 :   self->SetTextOverflow(NonNullHelper(Constify(arg0)), rv);
   40576           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40577           0 :     return false;
   40578             :   }
   40579           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40580             : 
   40581           0 :   return true;
   40582             : }
   40583             : 
   40584             : static const JSJitInfo textOverflow_getterinfo = {
   40585             :   { (JSJitGetterOp)get_textOverflow },
   40586             :   { prototypes::id::CSS2Properties },
   40587             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40588             :   JSJitInfo::Getter,
   40589             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40590             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40591             :   false,  /* isInfallible. False in setters. */
   40592             :   false,  /* isMovable.  Not relevant for setters. */
   40593             :   false, /* isEliminatable.  Not relevant for setters. */
   40594             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40595             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40596             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40597             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40598             : };
   40599             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40600             : static_assert(0 < 1, "There is no slot for us");
   40601             : static const JSJitInfo textOverflow_setterinfo = {
   40602             :   { (JSJitGetterOp)set_textOverflow },
   40603             :   { prototypes::id::CSS2Properties },
   40604             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40605             :   JSJitInfo::Setter,
   40606             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40607             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40608             :   false,  /* isInfallible. False in setters. */
   40609             :   false,  /* isMovable.  Not relevant for setters. */
   40610             :   false, /* isEliminatable.  Not relevant for setters. */
   40611             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40612             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40613             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40614             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40615             : };
   40616             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40617             : static_assert(0 < 1, "There is no slot for us");
   40618             : 
   40619             : static bool
   40620           0 : get_text_overflow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40621             : {
   40622           0 :   binding_detail::FastErrorResult rv;
   40623           0 :   DOMString result;
   40624           0 :   self->GetTextOverflow(result, rv);
   40625           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40626           0 :     return false;
   40627             :   }
   40628           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40629           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40630           0 :     return false;
   40631             :   }
   40632           0 :   return true;
   40633             : }
   40634             : 
   40635             : static bool
   40636           0 : set_text_overflow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40637             : {
   40638           0 :   binding_detail::FakeString arg0;
   40639           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40640           0 :     return false;
   40641             :   }
   40642           0 :   binding_detail::FastErrorResult rv;
   40643           0 :   self->SetTextOverflow(NonNullHelper(Constify(arg0)), rv);
   40644           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40645           0 :     return false;
   40646             :   }
   40647           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40648             : 
   40649           0 :   return true;
   40650             : }
   40651             : 
   40652             : static const JSJitInfo text_overflow_getterinfo = {
   40653             :   { (JSJitGetterOp)get_text_overflow },
   40654             :   { prototypes::id::CSS2Properties },
   40655             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40656             :   JSJitInfo::Getter,
   40657             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40658             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40659             :   false,  /* isInfallible. False in setters. */
   40660             :   false,  /* isMovable.  Not relevant for setters. */
   40661             :   false, /* isEliminatable.  Not relevant for setters. */
   40662             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40663             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40664             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40665             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40666             : };
   40667             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40668             : static_assert(0 < 1, "There is no slot for us");
   40669             : static const JSJitInfo text_overflow_setterinfo = {
   40670             :   { (JSJitGetterOp)set_text_overflow },
   40671             :   { prototypes::id::CSS2Properties },
   40672             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40673             :   JSJitInfo::Setter,
   40674             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40675             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40676             :   false,  /* isInfallible. False in setters. */
   40677             :   false,  /* isMovable.  Not relevant for setters. */
   40678             :   false, /* isEliminatable.  Not relevant for setters. */
   40679             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40680             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40681             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40682             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40683             : };
   40684             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40685             : static_assert(0 < 1, "There is no slot for us");
   40686             : 
   40687             : static bool
   40688           0 : get_textRendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40689             : {
   40690           0 :   binding_detail::FastErrorResult rv;
   40691           0 :   DOMString result;
   40692           0 :   self->GetTextRendering(result, rv);
   40693           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40694           0 :     return false;
   40695             :   }
   40696           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40697           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40698           0 :     return false;
   40699             :   }
   40700           0 :   return true;
   40701             : }
   40702             : 
   40703             : static bool
   40704           0 : set_textRendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40705             : {
   40706           0 :   binding_detail::FakeString arg0;
   40707           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40708           0 :     return false;
   40709             :   }
   40710           0 :   binding_detail::FastErrorResult rv;
   40711           0 :   self->SetTextRendering(NonNullHelper(Constify(arg0)), rv);
   40712           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40713           0 :     return false;
   40714             :   }
   40715           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40716             : 
   40717           0 :   return true;
   40718             : }
   40719             : 
   40720             : static const JSJitInfo textRendering_getterinfo = {
   40721             :   { (JSJitGetterOp)get_textRendering },
   40722             :   { prototypes::id::CSS2Properties },
   40723             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40724             :   JSJitInfo::Getter,
   40725             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40726             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40727             :   false,  /* isInfallible. False in setters. */
   40728             :   false,  /* isMovable.  Not relevant for setters. */
   40729             :   false, /* isEliminatable.  Not relevant for setters. */
   40730             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40731             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40732             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40733             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40734             : };
   40735             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40736             : static_assert(0 < 1, "There is no slot for us");
   40737             : static const JSJitInfo textRendering_setterinfo = {
   40738             :   { (JSJitGetterOp)set_textRendering },
   40739             :   { prototypes::id::CSS2Properties },
   40740             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40741             :   JSJitInfo::Setter,
   40742             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40743             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40744             :   false,  /* isInfallible. False in setters. */
   40745             :   false,  /* isMovable.  Not relevant for setters. */
   40746             :   false, /* isEliminatable.  Not relevant for setters. */
   40747             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40748             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40749             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40750             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40751             : };
   40752             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40753             : static_assert(0 < 1, "There is no slot for us");
   40754             : 
   40755             : static bool
   40756           0 : get_text_rendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40757             : {
   40758           0 :   binding_detail::FastErrorResult rv;
   40759           0 :   DOMString result;
   40760           0 :   self->GetTextRendering(result, rv);
   40761           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40762           0 :     return false;
   40763             :   }
   40764           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40765           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40766           0 :     return false;
   40767             :   }
   40768           0 :   return true;
   40769             : }
   40770             : 
   40771             : static bool
   40772           0 : set_text_rendering(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40773             : {
   40774           0 :   binding_detail::FakeString arg0;
   40775           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40776           0 :     return false;
   40777             :   }
   40778           0 :   binding_detail::FastErrorResult rv;
   40779           0 :   self->SetTextRendering(NonNullHelper(Constify(arg0)), rv);
   40780           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40781           0 :     return false;
   40782             :   }
   40783           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40784             : 
   40785           0 :   return true;
   40786             : }
   40787             : 
   40788             : static const JSJitInfo text_rendering_getterinfo = {
   40789             :   { (JSJitGetterOp)get_text_rendering },
   40790             :   { prototypes::id::CSS2Properties },
   40791             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40792             :   JSJitInfo::Getter,
   40793             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40794             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40795             :   false,  /* isInfallible. False in setters. */
   40796             :   false,  /* isMovable.  Not relevant for setters. */
   40797             :   false, /* isEliminatable.  Not relevant for setters. */
   40798             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40799             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40800             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40801             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40802             : };
   40803             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40804             : static_assert(0 < 1, "There is no slot for us");
   40805             : static const JSJitInfo text_rendering_setterinfo = {
   40806             :   { (JSJitGetterOp)set_text_rendering },
   40807             :   { prototypes::id::CSS2Properties },
   40808             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40809             :   JSJitInfo::Setter,
   40810             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40811             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40812             :   false,  /* isInfallible. False in setters. */
   40813             :   false,  /* isMovable.  Not relevant for setters. */
   40814             :   false, /* isEliminatable.  Not relevant for setters. */
   40815             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40816             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40817             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40818             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40819             : };
   40820             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40821             : static_assert(0 < 1, "There is no slot for us");
   40822             : 
   40823             : static bool
   40824           0 : get_textShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40825             : {
   40826           0 :   binding_detail::FastErrorResult rv;
   40827           0 :   DOMString result;
   40828           0 :   self->GetTextShadow(result, rv);
   40829           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40830           0 :     return false;
   40831             :   }
   40832           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40833           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40834           0 :     return false;
   40835             :   }
   40836           0 :   return true;
   40837             : }
   40838             : 
   40839             : static bool
   40840           0 : set_textShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40841             : {
   40842           0 :   binding_detail::FakeString arg0;
   40843           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40844           0 :     return false;
   40845             :   }
   40846           0 :   binding_detail::FastErrorResult rv;
   40847           0 :   self->SetTextShadow(NonNullHelper(Constify(arg0)), rv);
   40848           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40849           0 :     return false;
   40850             :   }
   40851           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40852             : 
   40853           0 :   return true;
   40854             : }
   40855             : 
   40856             : static const JSJitInfo textShadow_getterinfo = {
   40857             :   { (JSJitGetterOp)get_textShadow },
   40858             :   { prototypes::id::CSS2Properties },
   40859             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40860             :   JSJitInfo::Getter,
   40861             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40862             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40863             :   false,  /* isInfallible. False in setters. */
   40864             :   false,  /* isMovable.  Not relevant for setters. */
   40865             :   false, /* isEliminatable.  Not relevant for setters. */
   40866             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40867             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40868             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40869             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40870             : };
   40871             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40872             : static_assert(0 < 1, "There is no slot for us");
   40873             : static const JSJitInfo textShadow_setterinfo = {
   40874             :   { (JSJitGetterOp)set_textShadow },
   40875             :   { prototypes::id::CSS2Properties },
   40876             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40877             :   JSJitInfo::Setter,
   40878             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40879             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40880             :   false,  /* isInfallible. False in setters. */
   40881             :   false,  /* isMovable.  Not relevant for setters. */
   40882             :   false, /* isEliminatable.  Not relevant for setters. */
   40883             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40884             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40885             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40886             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40887             : };
   40888             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40889             : static_assert(0 < 1, "There is no slot for us");
   40890             : 
   40891             : static bool
   40892           0 : get_text_shadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40893             : {
   40894           0 :   binding_detail::FastErrorResult rv;
   40895           0 :   DOMString result;
   40896           0 :   self->GetTextShadow(result, rv);
   40897           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40898           0 :     return false;
   40899             :   }
   40900           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40901           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40902           0 :     return false;
   40903             :   }
   40904           0 :   return true;
   40905             : }
   40906             : 
   40907             : static bool
   40908           0 : set_text_shadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40909             : {
   40910           0 :   binding_detail::FakeString arg0;
   40911           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40912           0 :     return false;
   40913             :   }
   40914           0 :   binding_detail::FastErrorResult rv;
   40915           0 :   self->SetTextShadow(NonNullHelper(Constify(arg0)), rv);
   40916           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40917           0 :     return false;
   40918             :   }
   40919           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40920             : 
   40921           0 :   return true;
   40922             : }
   40923             : 
   40924             : static const JSJitInfo text_shadow_getterinfo = {
   40925             :   { (JSJitGetterOp)get_text_shadow },
   40926             :   { prototypes::id::CSS2Properties },
   40927             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40928             :   JSJitInfo::Getter,
   40929             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40930             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40931             :   false,  /* isInfallible. False in setters. */
   40932             :   false,  /* isMovable.  Not relevant for setters. */
   40933             :   false, /* isEliminatable.  Not relevant for setters. */
   40934             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40935             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40936             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40937             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40938             : };
   40939             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40940             : static_assert(0 < 1, "There is no slot for us");
   40941             : static const JSJitInfo text_shadow_setterinfo = {
   40942             :   { (JSJitGetterOp)set_text_shadow },
   40943             :   { prototypes::id::CSS2Properties },
   40944             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40945             :   JSJitInfo::Setter,
   40946             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40947             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   40948             :   false,  /* isInfallible. False in setters. */
   40949             :   false,  /* isMovable.  Not relevant for setters. */
   40950             :   false, /* isEliminatable.  Not relevant for setters. */
   40951             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   40952             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   40953             :   false,  /* isTypedMethod.  Only relevant for methods. */
   40954             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   40955             : };
   40956             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   40957             : static_assert(0 < 1, "There is no slot for us");
   40958             : 
   40959             : static bool
   40960           0 : get_MozTextSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   40961             : {
   40962           0 :   binding_detail::FastErrorResult rv;
   40963           0 :   DOMString result;
   40964           0 :   self->GetMozTextSizeAdjust(result, rv);
   40965           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40966           0 :     return false;
   40967             :   }
   40968           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40969           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   40970           0 :     return false;
   40971             :   }
   40972           0 :   return true;
   40973             : }
   40974             : 
   40975             : static bool
   40976           0 : set_MozTextSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   40977             : {
   40978           0 :   binding_detail::FakeString arg0;
   40979           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   40980           0 :     return false;
   40981             :   }
   40982           0 :   binding_detail::FastErrorResult rv;
   40983           0 :   self->SetMozTextSizeAdjust(NonNullHelper(Constify(arg0)), rv);
   40984           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   40985           0 :     return false;
   40986             :   }
   40987           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   40988             : 
   40989           0 :   return true;
   40990             : }
   40991             : 
   40992             : static const JSJitInfo MozTextSizeAdjust_getterinfo = {
   40993             :   { (JSJitGetterOp)get_MozTextSizeAdjust },
   40994             :   { prototypes::id::CSS2Properties },
   40995             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   40996             :   JSJitInfo::Getter,
   40997             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   40998             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   40999             :   false,  /* isInfallible. False in setters. */
   41000             :   false,  /* isMovable.  Not relevant for setters. */
   41001             :   false, /* isEliminatable.  Not relevant for setters. */
   41002             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41003             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41004             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41005             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41006             : };
   41007             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41008             : static_assert(0 < 1, "There is no slot for us");
   41009             : static const JSJitInfo MozTextSizeAdjust_setterinfo = {
   41010             :   { (JSJitGetterOp)set_MozTextSizeAdjust },
   41011             :   { prototypes::id::CSS2Properties },
   41012             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41013             :   JSJitInfo::Setter,
   41014             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41015             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41016             :   false,  /* isInfallible. False in setters. */
   41017             :   false,  /* isMovable.  Not relevant for setters. */
   41018             :   false, /* isEliminatable.  Not relevant for setters. */
   41019             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41020             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41021             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41022             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41023             : };
   41024             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41025             : static_assert(0 < 1, "There is no slot for us");
   41026             : 
   41027             : static bool
   41028           0 : get__moz_text_size_adjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41029             : {
   41030           0 :   binding_detail::FastErrorResult rv;
   41031           0 :   DOMString result;
   41032           0 :   self->GetMozTextSizeAdjust(result, rv);
   41033           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41034           0 :     return false;
   41035             :   }
   41036           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41037           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41038           0 :     return false;
   41039             :   }
   41040           0 :   return true;
   41041             : }
   41042             : 
   41043             : static bool
   41044           0 : set__moz_text_size_adjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41045             : {
   41046           0 :   binding_detail::FakeString arg0;
   41047           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41048           0 :     return false;
   41049             :   }
   41050           0 :   binding_detail::FastErrorResult rv;
   41051           0 :   self->SetMozTextSizeAdjust(NonNullHelper(Constify(arg0)), rv);
   41052           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41053           0 :     return false;
   41054             :   }
   41055           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41056             : 
   41057           0 :   return true;
   41058             : }
   41059             : 
   41060             : static const JSJitInfo _moz_text_size_adjust_getterinfo = {
   41061             :   { (JSJitGetterOp)get__moz_text_size_adjust },
   41062             :   { prototypes::id::CSS2Properties },
   41063             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41064             :   JSJitInfo::Getter,
   41065             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41066             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41067             :   false,  /* isInfallible. False in setters. */
   41068             :   false,  /* isMovable.  Not relevant for setters. */
   41069             :   false, /* isEliminatable.  Not relevant for setters. */
   41070             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41071             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41072             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41073             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41074             : };
   41075             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41076             : static_assert(0 < 1, "There is no slot for us");
   41077             : static const JSJitInfo _moz_text_size_adjust_setterinfo = {
   41078             :   { (JSJitGetterOp)set__moz_text_size_adjust },
   41079             :   { prototypes::id::CSS2Properties },
   41080             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41081             :   JSJitInfo::Setter,
   41082             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41083             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41084             :   false,  /* isInfallible. False in setters. */
   41085             :   false,  /* isMovable.  Not relevant for setters. */
   41086             :   false, /* isEliminatable.  Not relevant for setters. */
   41087             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41088             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41089             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41090             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41091             : };
   41092             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41093             : static_assert(0 < 1, "There is no slot for us");
   41094             : 
   41095             : static bool
   41096           0 : get_WebkitTextStroke(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41097             : {
   41098           0 :   binding_detail::FastErrorResult rv;
   41099           0 :   DOMString result;
   41100           0 :   self->GetWebkitTextStroke(result, rv);
   41101           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41102           0 :     return false;
   41103             :   }
   41104           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41105           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41106           0 :     return false;
   41107             :   }
   41108           0 :   return true;
   41109             : }
   41110             : 
   41111             : static bool
   41112           0 : set_WebkitTextStroke(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41113             : {
   41114           0 :   binding_detail::FakeString arg0;
   41115           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41116           0 :     return false;
   41117             :   }
   41118           0 :   binding_detail::FastErrorResult rv;
   41119           0 :   self->SetWebkitTextStroke(NonNullHelper(Constify(arg0)), rv);
   41120           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41121           0 :     return false;
   41122             :   }
   41123           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41124             : 
   41125           0 :   return true;
   41126             : }
   41127             : 
   41128             : static const JSJitInfo WebkitTextStroke_getterinfo = {
   41129             :   { (JSJitGetterOp)get_WebkitTextStroke },
   41130             :   { prototypes::id::CSS2Properties },
   41131             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41132             :   JSJitInfo::Getter,
   41133             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41134             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41135             :   false,  /* isInfallible. False in setters. */
   41136             :   false,  /* isMovable.  Not relevant for setters. */
   41137             :   false, /* isEliminatable.  Not relevant for setters. */
   41138             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41139             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41140             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41141             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41142             : };
   41143             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41144             : static_assert(0 < 1, "There is no slot for us");
   41145             : static const JSJitInfo WebkitTextStroke_setterinfo = {
   41146             :   { (JSJitGetterOp)set_WebkitTextStroke },
   41147             :   { prototypes::id::CSS2Properties },
   41148             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41149             :   JSJitInfo::Setter,
   41150             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41151             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41152             :   false,  /* isInfallible. False in setters. */
   41153             :   false,  /* isMovable.  Not relevant for setters. */
   41154             :   false, /* isEliminatable.  Not relevant for setters. */
   41155             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41156             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41157             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41158             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41159             : };
   41160             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41161             : static_assert(0 < 1, "There is no slot for us");
   41162             : 
   41163             : static bool
   41164           0 : get_webkitTextStroke(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41165             : {
   41166           0 :   binding_detail::FastErrorResult rv;
   41167           0 :   DOMString result;
   41168           0 :   self->GetWebkitTextStroke(result, rv);
   41169           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41170           0 :     return false;
   41171             :   }
   41172           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41173           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41174           0 :     return false;
   41175             :   }
   41176           0 :   return true;
   41177             : }
   41178             : 
   41179             : static bool
   41180           0 : set_webkitTextStroke(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41181             : {
   41182           0 :   binding_detail::FakeString arg0;
   41183           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41184           0 :     return false;
   41185             :   }
   41186           0 :   binding_detail::FastErrorResult rv;
   41187           0 :   self->SetWebkitTextStroke(NonNullHelper(Constify(arg0)), rv);
   41188           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41189           0 :     return false;
   41190             :   }
   41191           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41192             : 
   41193           0 :   return true;
   41194             : }
   41195             : 
   41196             : static const JSJitInfo webkitTextStroke_getterinfo = {
   41197             :   { (JSJitGetterOp)get_webkitTextStroke },
   41198             :   { prototypes::id::CSS2Properties },
   41199             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41200             :   JSJitInfo::Getter,
   41201             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41202             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41203             :   false,  /* isInfallible. False in setters. */
   41204             :   false,  /* isMovable.  Not relevant for setters. */
   41205             :   false, /* isEliminatable.  Not relevant for setters. */
   41206             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41207             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41208             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41209             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41210             : };
   41211             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41212             : static_assert(0 < 1, "There is no slot for us");
   41213             : static const JSJitInfo webkitTextStroke_setterinfo = {
   41214             :   { (JSJitGetterOp)set_webkitTextStroke },
   41215             :   { prototypes::id::CSS2Properties },
   41216             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41217             :   JSJitInfo::Setter,
   41218             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41219             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41220             :   false,  /* isInfallible. False in setters. */
   41221             :   false,  /* isMovable.  Not relevant for setters. */
   41222             :   false, /* isEliminatable.  Not relevant for setters. */
   41223             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41224             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41225             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41226             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41227             : };
   41228             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41229             : static_assert(0 < 1, "There is no slot for us");
   41230             : 
   41231             : static bool
   41232           0 : get__webkit_text_stroke(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41233             : {
   41234           0 :   binding_detail::FastErrorResult rv;
   41235           0 :   DOMString result;
   41236           0 :   self->GetWebkitTextStroke(result, rv);
   41237           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41238           0 :     return false;
   41239             :   }
   41240           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41241           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41242           0 :     return false;
   41243             :   }
   41244           0 :   return true;
   41245             : }
   41246             : 
   41247             : static bool
   41248           0 : set__webkit_text_stroke(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41249             : {
   41250           0 :   binding_detail::FakeString arg0;
   41251           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41252           0 :     return false;
   41253             :   }
   41254           0 :   binding_detail::FastErrorResult rv;
   41255           0 :   self->SetWebkitTextStroke(NonNullHelper(Constify(arg0)), rv);
   41256           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41257           0 :     return false;
   41258             :   }
   41259           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41260             : 
   41261           0 :   return true;
   41262             : }
   41263             : 
   41264             : static const JSJitInfo _webkit_text_stroke_getterinfo = {
   41265             :   { (JSJitGetterOp)get__webkit_text_stroke },
   41266             :   { prototypes::id::CSS2Properties },
   41267             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41268             :   JSJitInfo::Getter,
   41269             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41270             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41271             :   false,  /* isInfallible. False in setters. */
   41272             :   false,  /* isMovable.  Not relevant for setters. */
   41273             :   false, /* isEliminatable.  Not relevant for setters. */
   41274             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41275             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41276             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41277             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41278             : };
   41279             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41280             : static_assert(0 < 1, "There is no slot for us");
   41281             : static const JSJitInfo _webkit_text_stroke_setterinfo = {
   41282             :   { (JSJitGetterOp)set__webkit_text_stroke },
   41283             :   { prototypes::id::CSS2Properties },
   41284             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41285             :   JSJitInfo::Setter,
   41286             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41287             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41288             :   false,  /* isInfallible. False in setters. */
   41289             :   false,  /* isMovable.  Not relevant for setters. */
   41290             :   false, /* isEliminatable.  Not relevant for setters. */
   41291             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41292             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41293             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41294             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41295             : };
   41296             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41297             : static_assert(0 < 1, "There is no slot for us");
   41298             : 
   41299             : static bool
   41300           0 : get_WebkitTextStrokeColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41301             : {
   41302           0 :   binding_detail::FastErrorResult rv;
   41303           0 :   DOMString result;
   41304           0 :   self->GetWebkitTextStrokeColor(result, rv);
   41305           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41306           0 :     return false;
   41307             :   }
   41308           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41309           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41310           0 :     return false;
   41311             :   }
   41312           0 :   return true;
   41313             : }
   41314             : 
   41315             : static bool
   41316           0 : set_WebkitTextStrokeColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41317             : {
   41318           0 :   binding_detail::FakeString arg0;
   41319           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41320           0 :     return false;
   41321             :   }
   41322           0 :   binding_detail::FastErrorResult rv;
   41323           0 :   self->SetWebkitTextStrokeColor(NonNullHelper(Constify(arg0)), rv);
   41324           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41325           0 :     return false;
   41326             :   }
   41327           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41328             : 
   41329           0 :   return true;
   41330             : }
   41331             : 
   41332             : static const JSJitInfo WebkitTextStrokeColor_getterinfo = {
   41333             :   { (JSJitGetterOp)get_WebkitTextStrokeColor },
   41334             :   { prototypes::id::CSS2Properties },
   41335             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41336             :   JSJitInfo::Getter,
   41337             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41338             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41339             :   false,  /* isInfallible. False in setters. */
   41340             :   false,  /* isMovable.  Not relevant for setters. */
   41341             :   false, /* isEliminatable.  Not relevant for setters. */
   41342             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41343             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41344             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41345             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41346             : };
   41347             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41348             : static_assert(0 < 1, "There is no slot for us");
   41349             : static const JSJitInfo WebkitTextStrokeColor_setterinfo = {
   41350             :   { (JSJitGetterOp)set_WebkitTextStrokeColor },
   41351             :   { prototypes::id::CSS2Properties },
   41352             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41353             :   JSJitInfo::Setter,
   41354             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41355             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41356             :   false,  /* isInfallible. False in setters. */
   41357             :   false,  /* isMovable.  Not relevant for setters. */
   41358             :   false, /* isEliminatable.  Not relevant for setters. */
   41359             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41360             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41361             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41362             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41363             : };
   41364             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41365             : static_assert(0 < 1, "There is no slot for us");
   41366             : 
   41367             : static bool
   41368           0 : get_webkitTextStrokeColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41369             : {
   41370           0 :   binding_detail::FastErrorResult rv;
   41371           0 :   DOMString result;
   41372           0 :   self->GetWebkitTextStrokeColor(result, rv);
   41373           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41374           0 :     return false;
   41375             :   }
   41376           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41377           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41378           0 :     return false;
   41379             :   }
   41380           0 :   return true;
   41381             : }
   41382             : 
   41383             : static bool
   41384           0 : set_webkitTextStrokeColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41385             : {
   41386           0 :   binding_detail::FakeString arg0;
   41387           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41388           0 :     return false;
   41389             :   }
   41390           0 :   binding_detail::FastErrorResult rv;
   41391           0 :   self->SetWebkitTextStrokeColor(NonNullHelper(Constify(arg0)), rv);
   41392           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41393           0 :     return false;
   41394             :   }
   41395           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41396             : 
   41397           0 :   return true;
   41398             : }
   41399             : 
   41400             : static const JSJitInfo webkitTextStrokeColor_getterinfo = {
   41401             :   { (JSJitGetterOp)get_webkitTextStrokeColor },
   41402             :   { prototypes::id::CSS2Properties },
   41403             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41404             :   JSJitInfo::Getter,
   41405             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41406             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41407             :   false,  /* isInfallible. False in setters. */
   41408             :   false,  /* isMovable.  Not relevant for setters. */
   41409             :   false, /* isEliminatable.  Not relevant for setters. */
   41410             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41411             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41412             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41413             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41414             : };
   41415             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41416             : static_assert(0 < 1, "There is no slot for us");
   41417             : static const JSJitInfo webkitTextStrokeColor_setterinfo = {
   41418             :   { (JSJitGetterOp)set_webkitTextStrokeColor },
   41419             :   { prototypes::id::CSS2Properties },
   41420             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41421             :   JSJitInfo::Setter,
   41422             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41423             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41424             :   false,  /* isInfallible. False in setters. */
   41425             :   false,  /* isMovable.  Not relevant for setters. */
   41426             :   false, /* isEliminatable.  Not relevant for setters. */
   41427             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41428             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41429             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41430             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41431             : };
   41432             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41433             : static_assert(0 < 1, "There is no slot for us");
   41434             : 
   41435             : static bool
   41436           0 : get__webkit_text_stroke_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41437             : {
   41438           0 :   binding_detail::FastErrorResult rv;
   41439           0 :   DOMString result;
   41440           0 :   self->GetWebkitTextStrokeColor(result, rv);
   41441           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41442           0 :     return false;
   41443             :   }
   41444           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41445           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41446           0 :     return false;
   41447             :   }
   41448           0 :   return true;
   41449             : }
   41450             : 
   41451             : static bool
   41452           0 : set__webkit_text_stroke_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41453             : {
   41454           0 :   binding_detail::FakeString arg0;
   41455           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41456           0 :     return false;
   41457             :   }
   41458           0 :   binding_detail::FastErrorResult rv;
   41459           0 :   self->SetWebkitTextStrokeColor(NonNullHelper(Constify(arg0)), rv);
   41460           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41461           0 :     return false;
   41462             :   }
   41463           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41464             : 
   41465           0 :   return true;
   41466             : }
   41467             : 
   41468             : static const JSJitInfo _webkit_text_stroke_color_getterinfo = {
   41469             :   { (JSJitGetterOp)get__webkit_text_stroke_color },
   41470             :   { prototypes::id::CSS2Properties },
   41471             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41472             :   JSJitInfo::Getter,
   41473             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41474             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41475             :   false,  /* isInfallible. False in setters. */
   41476             :   false,  /* isMovable.  Not relevant for setters. */
   41477             :   false, /* isEliminatable.  Not relevant for setters. */
   41478             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41479             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41480             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41481             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41482             : };
   41483             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41484             : static_assert(0 < 1, "There is no slot for us");
   41485             : static const JSJitInfo _webkit_text_stroke_color_setterinfo = {
   41486             :   { (JSJitGetterOp)set__webkit_text_stroke_color },
   41487             :   { prototypes::id::CSS2Properties },
   41488             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41489             :   JSJitInfo::Setter,
   41490             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41491             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41492             :   false,  /* isInfallible. False in setters. */
   41493             :   false,  /* isMovable.  Not relevant for setters. */
   41494             :   false, /* isEliminatable.  Not relevant for setters. */
   41495             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41496             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41497             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41498             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41499             : };
   41500             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41501             : static_assert(0 < 1, "There is no slot for us");
   41502             : 
   41503             : static bool
   41504           0 : get_WebkitTextStrokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41505             : {
   41506           0 :   binding_detail::FastErrorResult rv;
   41507           0 :   DOMString result;
   41508           0 :   self->GetWebkitTextStrokeWidth(result, rv);
   41509           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41510           0 :     return false;
   41511             :   }
   41512           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41513           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41514           0 :     return false;
   41515             :   }
   41516           0 :   return true;
   41517             : }
   41518             : 
   41519             : static bool
   41520           0 : set_WebkitTextStrokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41521             : {
   41522           0 :   binding_detail::FakeString arg0;
   41523           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41524           0 :     return false;
   41525             :   }
   41526           0 :   binding_detail::FastErrorResult rv;
   41527           0 :   self->SetWebkitTextStrokeWidth(NonNullHelper(Constify(arg0)), rv);
   41528           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41529           0 :     return false;
   41530             :   }
   41531           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41532             : 
   41533           0 :   return true;
   41534             : }
   41535             : 
   41536             : static const JSJitInfo WebkitTextStrokeWidth_getterinfo = {
   41537             :   { (JSJitGetterOp)get_WebkitTextStrokeWidth },
   41538             :   { prototypes::id::CSS2Properties },
   41539             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41540             :   JSJitInfo::Getter,
   41541             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41542             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41543             :   false,  /* isInfallible. False in setters. */
   41544             :   false,  /* isMovable.  Not relevant for setters. */
   41545             :   false, /* isEliminatable.  Not relevant for setters. */
   41546             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41547             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41548             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41549             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41550             : };
   41551             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41552             : static_assert(0 < 1, "There is no slot for us");
   41553             : static const JSJitInfo WebkitTextStrokeWidth_setterinfo = {
   41554             :   { (JSJitGetterOp)set_WebkitTextStrokeWidth },
   41555             :   { prototypes::id::CSS2Properties },
   41556             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41557             :   JSJitInfo::Setter,
   41558             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41559             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41560             :   false,  /* isInfallible. False in setters. */
   41561             :   false,  /* isMovable.  Not relevant for setters. */
   41562             :   false, /* isEliminatable.  Not relevant for setters. */
   41563             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41564             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41565             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41566             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41567             : };
   41568             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41569             : static_assert(0 < 1, "There is no slot for us");
   41570             : 
   41571             : static bool
   41572           0 : get_webkitTextStrokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41573             : {
   41574           0 :   binding_detail::FastErrorResult rv;
   41575           0 :   DOMString result;
   41576           0 :   self->GetWebkitTextStrokeWidth(result, rv);
   41577           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41578           0 :     return false;
   41579             :   }
   41580           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41581           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41582           0 :     return false;
   41583             :   }
   41584           0 :   return true;
   41585             : }
   41586             : 
   41587             : static bool
   41588           0 : set_webkitTextStrokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41589             : {
   41590           0 :   binding_detail::FakeString arg0;
   41591           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41592           0 :     return false;
   41593             :   }
   41594           0 :   binding_detail::FastErrorResult rv;
   41595           0 :   self->SetWebkitTextStrokeWidth(NonNullHelper(Constify(arg0)), rv);
   41596           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41597           0 :     return false;
   41598             :   }
   41599           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41600             : 
   41601           0 :   return true;
   41602             : }
   41603             : 
   41604             : static const JSJitInfo webkitTextStrokeWidth_getterinfo = {
   41605             :   { (JSJitGetterOp)get_webkitTextStrokeWidth },
   41606             :   { prototypes::id::CSS2Properties },
   41607             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41608             :   JSJitInfo::Getter,
   41609             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41610             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41611             :   false,  /* isInfallible. False in setters. */
   41612             :   false,  /* isMovable.  Not relevant for setters. */
   41613             :   false, /* isEliminatable.  Not relevant for setters. */
   41614             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41615             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41616             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41617             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41618             : };
   41619             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41620             : static_assert(0 < 1, "There is no slot for us");
   41621             : static const JSJitInfo webkitTextStrokeWidth_setterinfo = {
   41622             :   { (JSJitGetterOp)set_webkitTextStrokeWidth },
   41623             :   { prototypes::id::CSS2Properties },
   41624             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41625             :   JSJitInfo::Setter,
   41626             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41627             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41628             :   false,  /* isInfallible. False in setters. */
   41629             :   false,  /* isMovable.  Not relevant for setters. */
   41630             :   false, /* isEliminatable.  Not relevant for setters. */
   41631             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41632             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41633             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41634             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41635             : };
   41636             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41637             : static_assert(0 < 1, "There is no slot for us");
   41638             : 
   41639             : static bool
   41640           0 : get__webkit_text_stroke_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41641             : {
   41642           0 :   binding_detail::FastErrorResult rv;
   41643           0 :   DOMString result;
   41644           0 :   self->GetWebkitTextStrokeWidth(result, rv);
   41645           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41646           0 :     return false;
   41647             :   }
   41648           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41649           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41650           0 :     return false;
   41651             :   }
   41652           0 :   return true;
   41653             : }
   41654             : 
   41655             : static bool
   41656           0 : set__webkit_text_stroke_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41657             : {
   41658           0 :   binding_detail::FakeString arg0;
   41659           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41660           0 :     return false;
   41661             :   }
   41662           0 :   binding_detail::FastErrorResult rv;
   41663           0 :   self->SetWebkitTextStrokeWidth(NonNullHelper(Constify(arg0)), rv);
   41664           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41665           0 :     return false;
   41666             :   }
   41667           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41668             : 
   41669           0 :   return true;
   41670             : }
   41671             : 
   41672             : static const JSJitInfo _webkit_text_stroke_width_getterinfo = {
   41673             :   { (JSJitGetterOp)get__webkit_text_stroke_width },
   41674             :   { prototypes::id::CSS2Properties },
   41675             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41676             :   JSJitInfo::Getter,
   41677             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41678             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41679             :   false,  /* isInfallible. False in setters. */
   41680             :   false,  /* isMovable.  Not relevant for setters. */
   41681             :   false, /* isEliminatable.  Not relevant for setters. */
   41682             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41683             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41684             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41685             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41686             : };
   41687             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41688             : static_assert(0 < 1, "There is no slot for us");
   41689             : static const JSJitInfo _webkit_text_stroke_width_setterinfo = {
   41690             :   { (JSJitGetterOp)set__webkit_text_stroke_width },
   41691             :   { prototypes::id::CSS2Properties },
   41692             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41693             :   JSJitInfo::Setter,
   41694             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41695             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41696             :   false,  /* isInfallible. False in setters. */
   41697             :   false,  /* isMovable.  Not relevant for setters. */
   41698             :   false, /* isEliminatable.  Not relevant for setters. */
   41699             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41700             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41701             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41702             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41703             : };
   41704             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41705             : static_assert(0 < 1, "There is no slot for us");
   41706             : 
   41707             : static bool
   41708           0 : get_textTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41709             : {
   41710           0 :   binding_detail::FastErrorResult rv;
   41711           0 :   DOMString result;
   41712           0 :   self->GetTextTransform(result, rv);
   41713           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41714           0 :     return false;
   41715             :   }
   41716           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41717           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41718           0 :     return false;
   41719             :   }
   41720           0 :   return true;
   41721             : }
   41722             : 
   41723             : static bool
   41724           0 : set_textTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41725             : {
   41726           0 :   binding_detail::FakeString arg0;
   41727           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41728           0 :     return false;
   41729             :   }
   41730           0 :   binding_detail::FastErrorResult rv;
   41731           0 :   self->SetTextTransform(NonNullHelper(Constify(arg0)), rv);
   41732           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41733           0 :     return false;
   41734             :   }
   41735           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41736             : 
   41737           0 :   return true;
   41738             : }
   41739             : 
   41740             : static const JSJitInfo textTransform_getterinfo = {
   41741             :   { (JSJitGetterOp)get_textTransform },
   41742             :   { prototypes::id::CSS2Properties },
   41743             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41744             :   JSJitInfo::Getter,
   41745             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41746             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41747             :   false,  /* isInfallible. False in setters. */
   41748             :   false,  /* isMovable.  Not relevant for setters. */
   41749             :   false, /* isEliminatable.  Not relevant for setters. */
   41750             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41751             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41752             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41753             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41754             : };
   41755             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41756             : static_assert(0 < 1, "There is no slot for us");
   41757             : static const JSJitInfo textTransform_setterinfo = {
   41758             :   { (JSJitGetterOp)set_textTransform },
   41759             :   { prototypes::id::CSS2Properties },
   41760             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41761             :   JSJitInfo::Setter,
   41762             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41763             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41764             :   false,  /* isInfallible. False in setters. */
   41765             :   false,  /* isMovable.  Not relevant for setters. */
   41766             :   false, /* isEliminatable.  Not relevant for setters. */
   41767             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41768             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41769             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41770             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41771             : };
   41772             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41773             : static_assert(0 < 1, "There is no slot for us");
   41774             : 
   41775             : static bool
   41776           0 : get_text_transform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41777             : {
   41778           0 :   binding_detail::FastErrorResult rv;
   41779           0 :   DOMString result;
   41780           0 :   self->GetTextTransform(result, rv);
   41781           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41782           0 :     return false;
   41783             :   }
   41784           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41785           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41786           0 :     return false;
   41787             :   }
   41788           0 :   return true;
   41789             : }
   41790             : 
   41791             : static bool
   41792           0 : set_text_transform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41793             : {
   41794           0 :   binding_detail::FakeString arg0;
   41795           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41796           0 :     return false;
   41797             :   }
   41798           0 :   binding_detail::FastErrorResult rv;
   41799           0 :   self->SetTextTransform(NonNullHelper(Constify(arg0)), rv);
   41800           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41801           0 :     return false;
   41802             :   }
   41803           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41804             : 
   41805           0 :   return true;
   41806             : }
   41807             : 
   41808             : static const JSJitInfo text_transform_getterinfo = {
   41809             :   { (JSJitGetterOp)get_text_transform },
   41810             :   { prototypes::id::CSS2Properties },
   41811             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41812             :   JSJitInfo::Getter,
   41813             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41814             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41815             :   false,  /* isInfallible. False in setters. */
   41816             :   false,  /* isMovable.  Not relevant for setters. */
   41817             :   false, /* isEliminatable.  Not relevant for setters. */
   41818             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41819             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41820             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41821             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41822             : };
   41823             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41824             : static_assert(0 < 1, "There is no slot for us");
   41825             : static const JSJitInfo text_transform_setterinfo = {
   41826             :   { (JSJitGetterOp)set_text_transform },
   41827             :   { prototypes::id::CSS2Properties },
   41828             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41829             :   JSJitInfo::Setter,
   41830             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41831             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41832             :   false,  /* isInfallible. False in setters. */
   41833             :   false,  /* isMovable.  Not relevant for setters. */
   41834             :   false, /* isEliminatable.  Not relevant for setters. */
   41835             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41836             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41837             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41838             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41839             : };
   41840             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41841             : static_assert(0 < 1, "There is no slot for us");
   41842             : 
   41843             : static bool
   41844           0 : get_top(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41845             : {
   41846           0 :   binding_detail::FastErrorResult rv;
   41847           0 :   DOMString result;
   41848           0 :   self->GetTop(result, rv);
   41849           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41850           0 :     return false;
   41851             :   }
   41852           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41853           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41854           0 :     return false;
   41855             :   }
   41856           0 :   return true;
   41857             : }
   41858             : 
   41859             : static bool
   41860           0 : set_top(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41861             : {
   41862           0 :   binding_detail::FakeString arg0;
   41863           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41864           0 :     return false;
   41865             :   }
   41866           0 :   binding_detail::FastErrorResult rv;
   41867           0 :   self->SetTop(NonNullHelper(Constify(arg0)), rv);
   41868           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41869           0 :     return false;
   41870             :   }
   41871           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41872             : 
   41873           0 :   return true;
   41874             : }
   41875             : 
   41876             : static const JSJitInfo top_getterinfo = {
   41877             :   { (JSJitGetterOp)get_top },
   41878             :   { prototypes::id::CSS2Properties },
   41879             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41880             :   JSJitInfo::Getter,
   41881             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41882             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41883             :   false,  /* isInfallible. False in setters. */
   41884             :   false,  /* isMovable.  Not relevant for setters. */
   41885             :   false, /* isEliminatable.  Not relevant for setters. */
   41886             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41887             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41888             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41889             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41890             : };
   41891             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41892             : static_assert(0 < 1, "There is no slot for us");
   41893             : static const JSJitInfo top_setterinfo = {
   41894             :   { (JSJitGetterOp)set_top },
   41895             :   { prototypes::id::CSS2Properties },
   41896             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41897             :   JSJitInfo::Setter,
   41898             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41899             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41900             :   false,  /* isInfallible. False in setters. */
   41901             :   false,  /* isMovable.  Not relevant for setters. */
   41902             :   false, /* isEliminatable.  Not relevant for setters. */
   41903             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41904             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41905             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41906             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41907             : };
   41908             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41909             : static_assert(0 < 1, "There is no slot for us");
   41910             : 
   41911             : static bool
   41912           0 : get_touchAction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41913             : {
   41914           0 :   binding_detail::FastErrorResult rv;
   41915           0 :   DOMString result;
   41916           0 :   self->GetTouchAction(result, rv);
   41917           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41918           0 :     return false;
   41919             :   }
   41920           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41921           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41922           0 :     return false;
   41923             :   }
   41924           0 :   return true;
   41925             : }
   41926             : 
   41927             : static bool
   41928           0 : set_touchAction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41929             : {
   41930           0 :   binding_detail::FakeString arg0;
   41931           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   41932           0 :     return false;
   41933             :   }
   41934           0 :   binding_detail::FastErrorResult rv;
   41935           0 :   self->SetTouchAction(NonNullHelper(Constify(arg0)), rv);
   41936           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41937           0 :     return false;
   41938             :   }
   41939           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41940             : 
   41941           0 :   return true;
   41942             : }
   41943             : 
   41944             : static const JSJitInfo touchAction_getterinfo = {
   41945             :   { (JSJitGetterOp)get_touchAction },
   41946             :   { prototypes::id::CSS2Properties },
   41947             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41948             :   JSJitInfo::Getter,
   41949             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41950             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   41951             :   false,  /* isInfallible. False in setters. */
   41952             :   false,  /* isMovable.  Not relevant for setters. */
   41953             :   false, /* isEliminatable.  Not relevant for setters. */
   41954             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41955             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41956             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41957             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41958             : };
   41959             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41960             : static_assert(0 < 1, "There is no slot for us");
   41961             : static const JSJitInfo touchAction_setterinfo = {
   41962             :   { (JSJitGetterOp)set_touchAction },
   41963             :   { prototypes::id::CSS2Properties },
   41964             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   41965             :   JSJitInfo::Setter,
   41966             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   41967             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   41968             :   false,  /* isInfallible. False in setters. */
   41969             :   false,  /* isMovable.  Not relevant for setters. */
   41970             :   false, /* isEliminatable.  Not relevant for setters. */
   41971             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   41972             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   41973             :   false,  /* isTypedMethod.  Only relevant for methods. */
   41974             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   41975             : };
   41976             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   41977             : static_assert(0 < 1, "There is no slot for us");
   41978             : 
   41979             : static bool
   41980           0 : get_touch_action(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   41981             : {
   41982           0 :   binding_detail::FastErrorResult rv;
   41983           0 :   DOMString result;
   41984           0 :   self->GetTouchAction(result, rv);
   41985           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   41986           0 :     return false;
   41987             :   }
   41988           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   41989           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   41990           0 :     return false;
   41991             :   }
   41992           0 :   return true;
   41993             : }
   41994             : 
   41995             : static bool
   41996           0 : set_touch_action(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   41997             : {
   41998           0 :   binding_detail::FakeString arg0;
   41999           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42000           0 :     return false;
   42001             :   }
   42002           0 :   binding_detail::FastErrorResult rv;
   42003           0 :   self->SetTouchAction(NonNullHelper(Constify(arg0)), rv);
   42004           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42005           0 :     return false;
   42006             :   }
   42007           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42008             : 
   42009           0 :   return true;
   42010             : }
   42011             : 
   42012             : static const JSJitInfo touch_action_getterinfo = {
   42013             :   { (JSJitGetterOp)get_touch_action },
   42014             :   { prototypes::id::CSS2Properties },
   42015             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42016             :   JSJitInfo::Getter,
   42017             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42018             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42019             :   false,  /* isInfallible. False in setters. */
   42020             :   false,  /* isMovable.  Not relevant for setters. */
   42021             :   false, /* isEliminatable.  Not relevant for setters. */
   42022             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42023             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42024             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42025             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42026             : };
   42027             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42028             : static_assert(0 < 1, "There is no slot for us");
   42029             : static const JSJitInfo touch_action_setterinfo = {
   42030             :   { (JSJitGetterOp)set_touch_action },
   42031             :   { prototypes::id::CSS2Properties },
   42032             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42033             :   JSJitInfo::Setter,
   42034             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42035             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42036             :   false,  /* isInfallible. False in setters. */
   42037             :   false,  /* isMovable.  Not relevant for setters. */
   42038             :   false, /* isEliminatable.  Not relevant for setters. */
   42039             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42040             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42041             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42042             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42043             : };
   42044             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42045             : static_assert(0 < 1, "There is no slot for us");
   42046             : 
   42047             : static bool
   42048           0 : get_transform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42049             : {
   42050           0 :   binding_detail::FastErrorResult rv;
   42051           0 :   DOMString result;
   42052           0 :   self->GetTransform(result, rv);
   42053           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42054           0 :     return false;
   42055             :   }
   42056           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42057           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42058           0 :     return false;
   42059             :   }
   42060           0 :   return true;
   42061             : }
   42062             : 
   42063             : static bool
   42064           0 : set_transform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42065             : {
   42066           0 :   binding_detail::FakeString arg0;
   42067           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42068           0 :     return false;
   42069             :   }
   42070           0 :   binding_detail::FastErrorResult rv;
   42071           0 :   self->SetTransform(NonNullHelper(Constify(arg0)), rv);
   42072           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42073           0 :     return false;
   42074             :   }
   42075           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42076             : 
   42077           0 :   return true;
   42078             : }
   42079             : 
   42080             : static const JSJitInfo transform_getterinfo = {
   42081             :   { (JSJitGetterOp)get_transform },
   42082             :   { prototypes::id::CSS2Properties },
   42083             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42084             :   JSJitInfo::Getter,
   42085             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42086             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42087             :   false,  /* isInfallible. False in setters. */
   42088             :   false,  /* isMovable.  Not relevant for setters. */
   42089             :   false, /* isEliminatable.  Not relevant for setters. */
   42090             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42091             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42092             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42093             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42094             : };
   42095             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42096             : static_assert(0 < 1, "There is no slot for us");
   42097             : static const JSJitInfo transform_setterinfo = {
   42098             :   { (JSJitGetterOp)set_transform },
   42099             :   { prototypes::id::CSS2Properties },
   42100             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42101             :   JSJitInfo::Setter,
   42102             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42103             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42104             :   false,  /* isInfallible. False in setters. */
   42105             :   false,  /* isMovable.  Not relevant for setters. */
   42106             :   false, /* isEliminatable.  Not relevant for setters. */
   42107             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42108             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42109             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42110             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42111             : };
   42112             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42113             : static_assert(0 < 1, "There is no slot for us");
   42114             : 
   42115             : static bool
   42116           0 : get_MozTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42117             : {
   42118           0 :   binding_detail::FastErrorResult rv;
   42119           0 :   DOMString result;
   42120           0 :   self->GetMozTransform(result, rv);
   42121           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42122           0 :     return false;
   42123             :   }
   42124           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42125           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42126           0 :     return false;
   42127             :   }
   42128           0 :   return true;
   42129             : }
   42130             : 
   42131             : static bool
   42132           0 : set_MozTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42133             : {
   42134           0 :   binding_detail::FakeString arg0;
   42135           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42136           0 :     return false;
   42137             :   }
   42138           0 :   binding_detail::FastErrorResult rv;
   42139           0 :   self->SetMozTransform(NonNullHelper(Constify(arg0)), rv);
   42140           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42141           0 :     return false;
   42142             :   }
   42143           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42144             : 
   42145           0 :   return true;
   42146             : }
   42147             : 
   42148             : static const JSJitInfo MozTransform_getterinfo = {
   42149             :   { (JSJitGetterOp)get_MozTransform },
   42150             :   { prototypes::id::CSS2Properties },
   42151             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42152             :   JSJitInfo::Getter,
   42153             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42154             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42155             :   false,  /* isInfallible. False in setters. */
   42156             :   false,  /* isMovable.  Not relevant for setters. */
   42157             :   false, /* isEliminatable.  Not relevant for setters. */
   42158             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42159             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42160             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42161             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42162             : };
   42163             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42164             : static_assert(0 < 1, "There is no slot for us");
   42165             : static const JSJitInfo MozTransform_setterinfo = {
   42166             :   { (JSJitGetterOp)set_MozTransform },
   42167             :   { prototypes::id::CSS2Properties },
   42168             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42169             :   JSJitInfo::Setter,
   42170             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42171             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42172             :   false,  /* isInfallible. False in setters. */
   42173             :   false,  /* isMovable.  Not relevant for setters. */
   42174             :   false, /* isEliminatable.  Not relevant for setters. */
   42175             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42176             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42177             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42178             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42179             : };
   42180             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42181             : static_assert(0 < 1, "There is no slot for us");
   42182             : 
   42183             : static bool
   42184           0 : get__moz_transform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42185             : {
   42186           0 :   binding_detail::FastErrorResult rv;
   42187           0 :   DOMString result;
   42188           0 :   self->GetMozTransform(result, rv);
   42189           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42190           0 :     return false;
   42191             :   }
   42192           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42193           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42194           0 :     return false;
   42195             :   }
   42196           0 :   return true;
   42197             : }
   42198             : 
   42199             : static bool
   42200           0 : set__moz_transform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42201             : {
   42202           0 :   binding_detail::FakeString arg0;
   42203           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42204           0 :     return false;
   42205             :   }
   42206           0 :   binding_detail::FastErrorResult rv;
   42207           0 :   self->SetMozTransform(NonNullHelper(Constify(arg0)), rv);
   42208           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42209           0 :     return false;
   42210             :   }
   42211           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42212             : 
   42213           0 :   return true;
   42214             : }
   42215             : 
   42216             : static const JSJitInfo _moz_transform_getterinfo = {
   42217             :   { (JSJitGetterOp)get__moz_transform },
   42218             :   { prototypes::id::CSS2Properties },
   42219             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42220             :   JSJitInfo::Getter,
   42221             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42222             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42223             :   false,  /* isInfallible. False in setters. */
   42224             :   false,  /* isMovable.  Not relevant for setters. */
   42225             :   false, /* isEliminatable.  Not relevant for setters. */
   42226             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42227             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42228             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42229             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42230             : };
   42231             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42232             : static_assert(0 < 1, "There is no slot for us");
   42233             : static const JSJitInfo _moz_transform_setterinfo = {
   42234             :   { (JSJitGetterOp)set__moz_transform },
   42235             :   { prototypes::id::CSS2Properties },
   42236             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42237             :   JSJitInfo::Setter,
   42238             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42239             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42240             :   false,  /* isInfallible. False in setters. */
   42241             :   false,  /* isMovable.  Not relevant for setters. */
   42242             :   false, /* isEliminatable.  Not relevant for setters. */
   42243             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42244             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42245             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42246             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42247             : };
   42248             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42249             : static_assert(0 < 1, "There is no slot for us");
   42250             : 
   42251             : static bool
   42252           0 : get_transformBox(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42253             : {
   42254           0 :   binding_detail::FastErrorResult rv;
   42255           0 :   DOMString result;
   42256           0 :   self->GetTransformBox(result, rv);
   42257           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42258           0 :     return false;
   42259             :   }
   42260           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42261           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42262           0 :     return false;
   42263             :   }
   42264           0 :   return true;
   42265             : }
   42266             : 
   42267             : static bool
   42268           0 : set_transformBox(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42269             : {
   42270           0 :   binding_detail::FakeString arg0;
   42271           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42272           0 :     return false;
   42273             :   }
   42274           0 :   binding_detail::FastErrorResult rv;
   42275           0 :   self->SetTransformBox(NonNullHelper(Constify(arg0)), rv);
   42276           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42277           0 :     return false;
   42278             :   }
   42279           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42280             : 
   42281           0 :   return true;
   42282             : }
   42283             : 
   42284             : static const JSJitInfo transformBox_getterinfo = {
   42285             :   { (JSJitGetterOp)get_transformBox },
   42286             :   { prototypes::id::CSS2Properties },
   42287             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42288             :   JSJitInfo::Getter,
   42289             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42290             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42291             :   false,  /* isInfallible. False in setters. */
   42292             :   false,  /* isMovable.  Not relevant for setters. */
   42293             :   false, /* isEliminatable.  Not relevant for setters. */
   42294             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42295             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42296             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42297             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42298             : };
   42299             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42300             : static_assert(0 < 1, "There is no slot for us");
   42301             : static const JSJitInfo transformBox_setterinfo = {
   42302             :   { (JSJitGetterOp)set_transformBox },
   42303             :   { prototypes::id::CSS2Properties },
   42304             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42305             :   JSJitInfo::Setter,
   42306             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42307             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42308             :   false,  /* isInfallible. False in setters. */
   42309             :   false,  /* isMovable.  Not relevant for setters. */
   42310             :   false, /* isEliminatable.  Not relevant for setters. */
   42311             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42312             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42313             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42314             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42315             : };
   42316             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42317             : static_assert(0 < 1, "There is no slot for us");
   42318             : 
   42319             : static bool
   42320           0 : get_transform_box(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42321             : {
   42322           0 :   binding_detail::FastErrorResult rv;
   42323           0 :   DOMString result;
   42324           0 :   self->GetTransformBox(result, rv);
   42325           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42326           0 :     return false;
   42327             :   }
   42328           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42329           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42330           0 :     return false;
   42331             :   }
   42332           0 :   return true;
   42333             : }
   42334             : 
   42335             : static bool
   42336           0 : set_transform_box(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42337             : {
   42338           0 :   binding_detail::FakeString arg0;
   42339           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42340           0 :     return false;
   42341             :   }
   42342           0 :   binding_detail::FastErrorResult rv;
   42343           0 :   self->SetTransformBox(NonNullHelper(Constify(arg0)), rv);
   42344           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42345           0 :     return false;
   42346             :   }
   42347           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42348             : 
   42349           0 :   return true;
   42350             : }
   42351             : 
   42352             : static const JSJitInfo transform_box_getterinfo = {
   42353             :   { (JSJitGetterOp)get_transform_box },
   42354             :   { prototypes::id::CSS2Properties },
   42355             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42356             :   JSJitInfo::Getter,
   42357             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42358             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42359             :   false,  /* isInfallible. False in setters. */
   42360             :   false,  /* isMovable.  Not relevant for setters. */
   42361             :   false, /* isEliminatable.  Not relevant for setters. */
   42362             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42363             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42364             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42365             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42366             : };
   42367             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42368             : static_assert(0 < 1, "There is no slot for us");
   42369             : static const JSJitInfo transform_box_setterinfo = {
   42370             :   { (JSJitGetterOp)set_transform_box },
   42371             :   { prototypes::id::CSS2Properties },
   42372             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42373             :   JSJitInfo::Setter,
   42374             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42375             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42376             :   false,  /* isInfallible. False in setters. */
   42377             :   false,  /* isMovable.  Not relevant for setters. */
   42378             :   false, /* isEliminatable.  Not relevant for setters. */
   42379             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42380             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42381             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42382             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42383             : };
   42384             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42385             : static_assert(0 < 1, "There is no slot for us");
   42386             : 
   42387             : static bool
   42388           0 : get_transformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42389             : {
   42390           0 :   binding_detail::FastErrorResult rv;
   42391           0 :   DOMString result;
   42392           0 :   self->GetTransformOrigin(result, rv);
   42393           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42394           0 :     return false;
   42395             :   }
   42396           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42397           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42398           0 :     return false;
   42399             :   }
   42400           0 :   return true;
   42401             : }
   42402             : 
   42403             : static bool
   42404           0 : set_transformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42405             : {
   42406           0 :   binding_detail::FakeString arg0;
   42407           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42408           0 :     return false;
   42409             :   }
   42410           0 :   binding_detail::FastErrorResult rv;
   42411           0 :   self->SetTransformOrigin(NonNullHelper(Constify(arg0)), rv);
   42412           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42413           0 :     return false;
   42414             :   }
   42415           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42416             : 
   42417           0 :   return true;
   42418             : }
   42419             : 
   42420             : static const JSJitInfo transformOrigin_getterinfo = {
   42421             :   { (JSJitGetterOp)get_transformOrigin },
   42422             :   { prototypes::id::CSS2Properties },
   42423             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42424             :   JSJitInfo::Getter,
   42425             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42426             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42427             :   false,  /* isInfallible. False in setters. */
   42428             :   false,  /* isMovable.  Not relevant for setters. */
   42429             :   false, /* isEliminatable.  Not relevant for setters. */
   42430             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42431             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42432             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42433             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42434             : };
   42435             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42436             : static_assert(0 < 1, "There is no slot for us");
   42437             : static const JSJitInfo transformOrigin_setterinfo = {
   42438             :   { (JSJitGetterOp)set_transformOrigin },
   42439             :   { prototypes::id::CSS2Properties },
   42440             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42441             :   JSJitInfo::Setter,
   42442             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42443             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42444             :   false,  /* isInfallible. False in setters. */
   42445             :   false,  /* isMovable.  Not relevant for setters. */
   42446             :   false, /* isEliminatable.  Not relevant for setters. */
   42447             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42448             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42449             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42450             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42451             : };
   42452             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42453             : static_assert(0 < 1, "There is no slot for us");
   42454             : 
   42455             : static bool
   42456           0 : get_transform_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42457             : {
   42458           0 :   binding_detail::FastErrorResult rv;
   42459           0 :   DOMString result;
   42460           0 :   self->GetTransformOrigin(result, rv);
   42461           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42462           0 :     return false;
   42463             :   }
   42464           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42465           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42466           0 :     return false;
   42467             :   }
   42468           0 :   return true;
   42469             : }
   42470             : 
   42471             : static bool
   42472           0 : set_transform_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42473             : {
   42474           0 :   binding_detail::FakeString arg0;
   42475           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42476           0 :     return false;
   42477             :   }
   42478           0 :   binding_detail::FastErrorResult rv;
   42479           0 :   self->SetTransformOrigin(NonNullHelper(Constify(arg0)), rv);
   42480           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42481           0 :     return false;
   42482             :   }
   42483           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42484             : 
   42485           0 :   return true;
   42486             : }
   42487             : 
   42488             : static const JSJitInfo transform_origin_getterinfo = {
   42489             :   { (JSJitGetterOp)get_transform_origin },
   42490             :   { prototypes::id::CSS2Properties },
   42491             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42492             :   JSJitInfo::Getter,
   42493             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42494             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42495             :   false,  /* isInfallible. False in setters. */
   42496             :   false,  /* isMovable.  Not relevant for setters. */
   42497             :   false, /* isEliminatable.  Not relevant for setters. */
   42498             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42499             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42500             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42501             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42502             : };
   42503             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42504             : static_assert(0 < 1, "There is no slot for us");
   42505             : static const JSJitInfo transform_origin_setterinfo = {
   42506             :   { (JSJitGetterOp)set_transform_origin },
   42507             :   { prototypes::id::CSS2Properties },
   42508             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42509             :   JSJitInfo::Setter,
   42510             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42511             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42512             :   false,  /* isInfallible. False in setters. */
   42513             :   false,  /* isMovable.  Not relevant for setters. */
   42514             :   false, /* isEliminatable.  Not relevant for setters. */
   42515             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42516             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42517             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42518             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42519             : };
   42520             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42521             : static_assert(0 < 1, "There is no slot for us");
   42522             : 
   42523             : static bool
   42524           0 : get_transformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42525             : {
   42526           0 :   binding_detail::FastErrorResult rv;
   42527           0 :   DOMString result;
   42528           0 :   self->GetTransformStyle(result, rv);
   42529           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42530           0 :     return false;
   42531             :   }
   42532           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42533           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42534           0 :     return false;
   42535             :   }
   42536           0 :   return true;
   42537             : }
   42538             : 
   42539             : static bool
   42540           0 : set_transformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42541             : {
   42542           0 :   binding_detail::FakeString arg0;
   42543           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42544           0 :     return false;
   42545             :   }
   42546           0 :   binding_detail::FastErrorResult rv;
   42547           0 :   self->SetTransformStyle(NonNullHelper(Constify(arg0)), rv);
   42548           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42549           0 :     return false;
   42550             :   }
   42551           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42552             : 
   42553           0 :   return true;
   42554             : }
   42555             : 
   42556             : static const JSJitInfo transformStyle_getterinfo = {
   42557             :   { (JSJitGetterOp)get_transformStyle },
   42558             :   { prototypes::id::CSS2Properties },
   42559             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42560             :   JSJitInfo::Getter,
   42561             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42562             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42563             :   false,  /* isInfallible. False in setters. */
   42564             :   false,  /* isMovable.  Not relevant for setters. */
   42565             :   false, /* isEliminatable.  Not relevant for setters. */
   42566             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42567             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42568             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42569             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42570             : };
   42571             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42572             : static_assert(0 < 1, "There is no slot for us");
   42573             : static const JSJitInfo transformStyle_setterinfo = {
   42574             :   { (JSJitGetterOp)set_transformStyle },
   42575             :   { prototypes::id::CSS2Properties },
   42576             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42577             :   JSJitInfo::Setter,
   42578             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42579             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42580             :   false,  /* isInfallible. False in setters. */
   42581             :   false,  /* isMovable.  Not relevant for setters. */
   42582             :   false, /* isEliminatable.  Not relevant for setters. */
   42583             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42584             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42585             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42586             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42587             : };
   42588             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42589             : static_assert(0 < 1, "There is no slot for us");
   42590             : 
   42591             : static bool
   42592           0 : get_transform_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42593             : {
   42594           0 :   binding_detail::FastErrorResult rv;
   42595           0 :   DOMString result;
   42596           0 :   self->GetTransformStyle(result, rv);
   42597           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42598           0 :     return false;
   42599             :   }
   42600           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42601           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42602           0 :     return false;
   42603             :   }
   42604           0 :   return true;
   42605             : }
   42606             : 
   42607             : static bool
   42608           0 : set_transform_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42609             : {
   42610           0 :   binding_detail::FakeString arg0;
   42611           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42612           0 :     return false;
   42613             :   }
   42614           0 :   binding_detail::FastErrorResult rv;
   42615           0 :   self->SetTransformStyle(NonNullHelper(Constify(arg0)), rv);
   42616           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42617           0 :     return false;
   42618             :   }
   42619           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42620             : 
   42621           0 :   return true;
   42622             : }
   42623             : 
   42624             : static const JSJitInfo transform_style_getterinfo = {
   42625             :   { (JSJitGetterOp)get_transform_style },
   42626             :   { prototypes::id::CSS2Properties },
   42627             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42628             :   JSJitInfo::Getter,
   42629             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42630             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42631             :   false,  /* isInfallible. False in setters. */
   42632             :   false,  /* isMovable.  Not relevant for setters. */
   42633             :   false, /* isEliminatable.  Not relevant for setters. */
   42634             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42635             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42636             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42637             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42638             : };
   42639             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42640             : static_assert(0 < 1, "There is no slot for us");
   42641             : static const JSJitInfo transform_style_setterinfo = {
   42642             :   { (JSJitGetterOp)set_transform_style },
   42643             :   { prototypes::id::CSS2Properties },
   42644             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42645             :   JSJitInfo::Setter,
   42646             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42647             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42648             :   false,  /* isInfallible. False in setters. */
   42649             :   false,  /* isMovable.  Not relevant for setters. */
   42650             :   false, /* isEliminatable.  Not relevant for setters. */
   42651             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42652             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42653             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42654             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42655             : };
   42656             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42657             : static_assert(0 < 1, "There is no slot for us");
   42658             : 
   42659             : static bool
   42660           0 : get_transition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42661             : {
   42662           0 :   binding_detail::FastErrorResult rv;
   42663           0 :   DOMString result;
   42664           0 :   self->GetTransition(result, rv);
   42665           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42666           0 :     return false;
   42667             :   }
   42668           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42669           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42670           0 :     return false;
   42671             :   }
   42672           0 :   return true;
   42673             : }
   42674             : 
   42675             : static bool
   42676           0 : set_transition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42677             : {
   42678           0 :   binding_detail::FakeString arg0;
   42679           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42680           0 :     return false;
   42681             :   }
   42682           0 :   binding_detail::FastErrorResult rv;
   42683           0 :   self->SetTransition(NonNullHelper(Constify(arg0)), rv);
   42684           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42685           0 :     return false;
   42686             :   }
   42687           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42688             : 
   42689           0 :   return true;
   42690             : }
   42691             : 
   42692             : static const JSJitInfo transition_getterinfo = {
   42693             :   { (JSJitGetterOp)get_transition },
   42694             :   { prototypes::id::CSS2Properties },
   42695             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42696             :   JSJitInfo::Getter,
   42697             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42698             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42699             :   false,  /* isInfallible. False in setters. */
   42700             :   false,  /* isMovable.  Not relevant for setters. */
   42701             :   false, /* isEliminatable.  Not relevant for setters. */
   42702             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42703             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42704             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42705             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42706             : };
   42707             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42708             : static_assert(0 < 1, "There is no slot for us");
   42709             : static const JSJitInfo transition_setterinfo = {
   42710             :   { (JSJitGetterOp)set_transition },
   42711             :   { prototypes::id::CSS2Properties },
   42712             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42713             :   JSJitInfo::Setter,
   42714             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42715             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42716             :   false,  /* isInfallible. False in setters. */
   42717             :   false,  /* isMovable.  Not relevant for setters. */
   42718             :   false, /* isEliminatable.  Not relevant for setters. */
   42719             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42720             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42721             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42722             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42723             : };
   42724             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42725             : static_assert(0 < 1, "There is no slot for us");
   42726             : 
   42727             : static bool
   42728           0 : get_transitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42729             : {
   42730           0 :   binding_detail::FastErrorResult rv;
   42731           0 :   DOMString result;
   42732           0 :   self->GetTransitionDelay(result, rv);
   42733           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42734           0 :     return false;
   42735             :   }
   42736           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42737           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42738           0 :     return false;
   42739             :   }
   42740           0 :   return true;
   42741             : }
   42742             : 
   42743             : static bool
   42744           0 : set_transitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42745             : {
   42746           0 :   binding_detail::FakeString arg0;
   42747           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42748           0 :     return false;
   42749             :   }
   42750           0 :   binding_detail::FastErrorResult rv;
   42751           0 :   self->SetTransitionDelay(NonNullHelper(Constify(arg0)), rv);
   42752           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42753           0 :     return false;
   42754             :   }
   42755           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42756             : 
   42757           0 :   return true;
   42758             : }
   42759             : 
   42760             : static const JSJitInfo transitionDelay_getterinfo = {
   42761             :   { (JSJitGetterOp)get_transitionDelay },
   42762             :   { prototypes::id::CSS2Properties },
   42763             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42764             :   JSJitInfo::Getter,
   42765             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42766             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42767             :   false,  /* isInfallible. False in setters. */
   42768             :   false,  /* isMovable.  Not relevant for setters. */
   42769             :   false, /* isEliminatable.  Not relevant for setters. */
   42770             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42771             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42772             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42773             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42774             : };
   42775             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42776             : static_assert(0 < 1, "There is no slot for us");
   42777             : static const JSJitInfo transitionDelay_setterinfo = {
   42778             :   { (JSJitGetterOp)set_transitionDelay },
   42779             :   { prototypes::id::CSS2Properties },
   42780             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42781             :   JSJitInfo::Setter,
   42782             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42783             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42784             :   false,  /* isInfallible. False in setters. */
   42785             :   false,  /* isMovable.  Not relevant for setters. */
   42786             :   false, /* isEliminatable.  Not relevant for setters. */
   42787             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42788             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42789             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42790             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42791             : };
   42792             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42793             : static_assert(0 < 1, "There is no slot for us");
   42794             : 
   42795             : static bool
   42796           0 : get_transition_delay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42797             : {
   42798           0 :   binding_detail::FastErrorResult rv;
   42799           0 :   DOMString result;
   42800           0 :   self->GetTransitionDelay(result, rv);
   42801           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42802           0 :     return false;
   42803             :   }
   42804           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42805           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42806           0 :     return false;
   42807             :   }
   42808           0 :   return true;
   42809             : }
   42810             : 
   42811             : static bool
   42812           0 : set_transition_delay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42813             : {
   42814           0 :   binding_detail::FakeString arg0;
   42815           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42816           0 :     return false;
   42817             :   }
   42818           0 :   binding_detail::FastErrorResult rv;
   42819           0 :   self->SetTransitionDelay(NonNullHelper(Constify(arg0)), rv);
   42820           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42821           0 :     return false;
   42822             :   }
   42823           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42824             : 
   42825           0 :   return true;
   42826             : }
   42827             : 
   42828             : static const JSJitInfo transition_delay_getterinfo = {
   42829             :   { (JSJitGetterOp)get_transition_delay },
   42830             :   { prototypes::id::CSS2Properties },
   42831             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42832             :   JSJitInfo::Getter,
   42833             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42834             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42835             :   false,  /* isInfallible. False in setters. */
   42836             :   false,  /* isMovable.  Not relevant for setters. */
   42837             :   false, /* isEliminatable.  Not relevant for setters. */
   42838             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42839             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42840             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42841             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42842             : };
   42843             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42844             : static_assert(0 < 1, "There is no slot for us");
   42845             : static const JSJitInfo transition_delay_setterinfo = {
   42846             :   { (JSJitGetterOp)set_transition_delay },
   42847             :   { prototypes::id::CSS2Properties },
   42848             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42849             :   JSJitInfo::Setter,
   42850             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42851             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42852             :   false,  /* isInfallible. False in setters. */
   42853             :   false,  /* isMovable.  Not relevant for setters. */
   42854             :   false, /* isEliminatable.  Not relevant for setters. */
   42855             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42856             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42857             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42858             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42859             : };
   42860             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42861             : static_assert(0 < 1, "There is no slot for us");
   42862             : 
   42863             : static bool
   42864           0 : get_transitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42865             : {
   42866           0 :   binding_detail::FastErrorResult rv;
   42867           0 :   DOMString result;
   42868           0 :   self->GetTransitionDuration(result, rv);
   42869           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42870           0 :     return false;
   42871             :   }
   42872           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42873           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42874           0 :     return false;
   42875             :   }
   42876           0 :   return true;
   42877             : }
   42878             : 
   42879             : static bool
   42880           0 : set_transitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42881             : {
   42882           0 :   binding_detail::FakeString arg0;
   42883           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42884           0 :     return false;
   42885             :   }
   42886           0 :   binding_detail::FastErrorResult rv;
   42887           0 :   self->SetTransitionDuration(NonNullHelper(Constify(arg0)), rv);
   42888           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42889           0 :     return false;
   42890             :   }
   42891           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42892             : 
   42893           0 :   return true;
   42894             : }
   42895             : 
   42896             : static const JSJitInfo transitionDuration_getterinfo = {
   42897             :   { (JSJitGetterOp)get_transitionDuration },
   42898             :   { prototypes::id::CSS2Properties },
   42899             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42900             :   JSJitInfo::Getter,
   42901             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42902             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42903             :   false,  /* isInfallible. False in setters. */
   42904             :   false,  /* isMovable.  Not relevant for setters. */
   42905             :   false, /* isEliminatable.  Not relevant for setters. */
   42906             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42907             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42908             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42909             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42910             : };
   42911             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42912             : static_assert(0 < 1, "There is no slot for us");
   42913             : static const JSJitInfo transitionDuration_setterinfo = {
   42914             :   { (JSJitGetterOp)set_transitionDuration },
   42915             :   { prototypes::id::CSS2Properties },
   42916             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42917             :   JSJitInfo::Setter,
   42918             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42919             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42920             :   false,  /* isInfallible. False in setters. */
   42921             :   false,  /* isMovable.  Not relevant for setters. */
   42922             :   false, /* isEliminatable.  Not relevant for setters. */
   42923             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42924             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42925             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42926             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42927             : };
   42928             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42929             : static_assert(0 < 1, "There is no slot for us");
   42930             : 
   42931             : static bool
   42932           0 : get_transition_duration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   42933             : {
   42934           0 :   binding_detail::FastErrorResult rv;
   42935           0 :   DOMString result;
   42936           0 :   self->GetTransitionDuration(result, rv);
   42937           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42938           0 :     return false;
   42939             :   }
   42940           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42941           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   42942           0 :     return false;
   42943             :   }
   42944           0 :   return true;
   42945             : }
   42946             : 
   42947             : static bool
   42948           0 : set_transition_duration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   42949             : {
   42950           0 :   binding_detail::FakeString arg0;
   42951           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   42952           0 :     return false;
   42953             :   }
   42954           0 :   binding_detail::FastErrorResult rv;
   42955           0 :   self->SetTransitionDuration(NonNullHelper(Constify(arg0)), rv);
   42956           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   42957           0 :     return false;
   42958             :   }
   42959           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   42960             : 
   42961           0 :   return true;
   42962             : }
   42963             : 
   42964             : static const JSJitInfo transition_duration_getterinfo = {
   42965             :   { (JSJitGetterOp)get_transition_duration },
   42966             :   { prototypes::id::CSS2Properties },
   42967             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42968             :   JSJitInfo::Getter,
   42969             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42970             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   42971             :   false,  /* isInfallible. False in setters. */
   42972             :   false,  /* isMovable.  Not relevant for setters. */
   42973             :   false, /* isEliminatable.  Not relevant for setters. */
   42974             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42975             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42976             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42977             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42978             : };
   42979             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42980             : static_assert(0 < 1, "There is no slot for us");
   42981             : static const JSJitInfo transition_duration_setterinfo = {
   42982             :   { (JSJitGetterOp)set_transition_duration },
   42983             :   { prototypes::id::CSS2Properties },
   42984             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   42985             :   JSJitInfo::Setter,
   42986             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   42987             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   42988             :   false,  /* isInfallible. False in setters. */
   42989             :   false,  /* isMovable.  Not relevant for setters. */
   42990             :   false, /* isEliminatable.  Not relevant for setters. */
   42991             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   42992             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   42993             :   false,  /* isTypedMethod.  Only relevant for methods. */
   42994             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   42995             : };
   42996             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   42997             : static_assert(0 < 1, "There is no slot for us");
   42998             : 
   42999             : static bool
   43000           0 : get_transitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43001             : {
   43002           0 :   binding_detail::FastErrorResult rv;
   43003           0 :   DOMString result;
   43004           0 :   self->GetTransitionProperty(result, rv);
   43005           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43006           0 :     return false;
   43007             :   }
   43008           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43009           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43010           0 :     return false;
   43011             :   }
   43012           0 :   return true;
   43013             : }
   43014             : 
   43015             : static bool
   43016           0 : set_transitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43017             : {
   43018           0 :   binding_detail::FakeString arg0;
   43019           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43020           0 :     return false;
   43021             :   }
   43022           0 :   binding_detail::FastErrorResult rv;
   43023           0 :   self->SetTransitionProperty(NonNullHelper(Constify(arg0)), rv);
   43024           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43025           0 :     return false;
   43026             :   }
   43027           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43028             : 
   43029           0 :   return true;
   43030             : }
   43031             : 
   43032             : static const JSJitInfo transitionProperty_getterinfo = {
   43033             :   { (JSJitGetterOp)get_transitionProperty },
   43034             :   { prototypes::id::CSS2Properties },
   43035             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43036             :   JSJitInfo::Getter,
   43037             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43038             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43039             :   false,  /* isInfallible. False in setters. */
   43040             :   false,  /* isMovable.  Not relevant for setters. */
   43041             :   false, /* isEliminatable.  Not relevant for setters. */
   43042             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43043             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43044             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43045             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43046             : };
   43047             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43048             : static_assert(0 < 1, "There is no slot for us");
   43049             : static const JSJitInfo transitionProperty_setterinfo = {
   43050             :   { (JSJitGetterOp)set_transitionProperty },
   43051             :   { prototypes::id::CSS2Properties },
   43052             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43053             :   JSJitInfo::Setter,
   43054             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43055             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43056             :   false,  /* isInfallible. False in setters. */
   43057             :   false,  /* isMovable.  Not relevant for setters. */
   43058             :   false, /* isEliminatable.  Not relevant for setters. */
   43059             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43060             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43061             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43062             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43063             : };
   43064             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43065             : static_assert(0 < 1, "There is no slot for us");
   43066             : 
   43067             : static bool
   43068           0 : get_transition_property(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43069             : {
   43070           0 :   binding_detail::FastErrorResult rv;
   43071           0 :   DOMString result;
   43072           0 :   self->GetTransitionProperty(result, rv);
   43073           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43074           0 :     return false;
   43075             :   }
   43076           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43077           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43078           0 :     return false;
   43079             :   }
   43080           0 :   return true;
   43081             : }
   43082             : 
   43083             : static bool
   43084           0 : set_transition_property(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43085             : {
   43086           0 :   binding_detail::FakeString arg0;
   43087           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43088           0 :     return false;
   43089             :   }
   43090           0 :   binding_detail::FastErrorResult rv;
   43091           0 :   self->SetTransitionProperty(NonNullHelper(Constify(arg0)), rv);
   43092           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43093           0 :     return false;
   43094             :   }
   43095           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43096             : 
   43097           0 :   return true;
   43098             : }
   43099             : 
   43100             : static const JSJitInfo transition_property_getterinfo = {
   43101             :   { (JSJitGetterOp)get_transition_property },
   43102             :   { prototypes::id::CSS2Properties },
   43103             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43104             :   JSJitInfo::Getter,
   43105             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43106             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43107             :   false,  /* isInfallible. False in setters. */
   43108             :   false,  /* isMovable.  Not relevant for setters. */
   43109             :   false, /* isEliminatable.  Not relevant for setters. */
   43110             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43111             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43112             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43113             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43114             : };
   43115             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43116             : static_assert(0 < 1, "There is no slot for us");
   43117             : static const JSJitInfo transition_property_setterinfo = {
   43118             :   { (JSJitGetterOp)set_transition_property },
   43119             :   { prototypes::id::CSS2Properties },
   43120             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43121             :   JSJitInfo::Setter,
   43122             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43123             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43124             :   false,  /* isInfallible. False in setters. */
   43125             :   false,  /* isMovable.  Not relevant for setters. */
   43126             :   false, /* isEliminatable.  Not relevant for setters. */
   43127             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43128             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43129             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43130             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43131             : };
   43132             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43133             : static_assert(0 < 1, "There is no slot for us");
   43134             : 
   43135             : static bool
   43136           0 : get_transitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43137             : {
   43138           0 :   binding_detail::FastErrorResult rv;
   43139           0 :   DOMString result;
   43140           0 :   self->GetTransitionTimingFunction(result, rv);
   43141           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43142           0 :     return false;
   43143             :   }
   43144           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43145           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43146           0 :     return false;
   43147             :   }
   43148           0 :   return true;
   43149             : }
   43150             : 
   43151             : static bool
   43152           0 : set_transitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43153             : {
   43154           0 :   binding_detail::FakeString arg0;
   43155           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43156           0 :     return false;
   43157             :   }
   43158           0 :   binding_detail::FastErrorResult rv;
   43159           0 :   self->SetTransitionTimingFunction(NonNullHelper(Constify(arg0)), rv);
   43160           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43161           0 :     return false;
   43162             :   }
   43163           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43164             : 
   43165           0 :   return true;
   43166             : }
   43167             : 
   43168             : static const JSJitInfo transitionTimingFunction_getterinfo = {
   43169             :   { (JSJitGetterOp)get_transitionTimingFunction },
   43170             :   { prototypes::id::CSS2Properties },
   43171             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43172             :   JSJitInfo::Getter,
   43173             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43174             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43175             :   false,  /* isInfallible. False in setters. */
   43176             :   false,  /* isMovable.  Not relevant for setters. */
   43177             :   false, /* isEliminatable.  Not relevant for setters. */
   43178             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43179             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43180             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43181             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43182             : };
   43183             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43184             : static_assert(0 < 1, "There is no slot for us");
   43185             : static const JSJitInfo transitionTimingFunction_setterinfo = {
   43186             :   { (JSJitGetterOp)set_transitionTimingFunction },
   43187             :   { prototypes::id::CSS2Properties },
   43188             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43189             :   JSJitInfo::Setter,
   43190             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43191             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43192             :   false,  /* isInfallible. False in setters. */
   43193             :   false,  /* isMovable.  Not relevant for setters. */
   43194             :   false, /* isEliminatable.  Not relevant for setters. */
   43195             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43196             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43197             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43198             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43199             : };
   43200             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43201             : static_assert(0 < 1, "There is no slot for us");
   43202             : 
   43203             : static bool
   43204           0 : get_transition_timing_function(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43205             : {
   43206           0 :   binding_detail::FastErrorResult rv;
   43207           0 :   DOMString result;
   43208           0 :   self->GetTransitionTimingFunction(result, rv);
   43209           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43210           0 :     return false;
   43211             :   }
   43212           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43213           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43214           0 :     return false;
   43215             :   }
   43216           0 :   return true;
   43217             : }
   43218             : 
   43219             : static bool
   43220           0 : set_transition_timing_function(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43221             : {
   43222           0 :   binding_detail::FakeString arg0;
   43223           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43224           0 :     return false;
   43225             :   }
   43226           0 :   binding_detail::FastErrorResult rv;
   43227           0 :   self->SetTransitionTimingFunction(NonNullHelper(Constify(arg0)), rv);
   43228           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43229           0 :     return false;
   43230             :   }
   43231           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43232             : 
   43233           0 :   return true;
   43234             : }
   43235             : 
   43236             : static const JSJitInfo transition_timing_function_getterinfo = {
   43237             :   { (JSJitGetterOp)get_transition_timing_function },
   43238             :   { prototypes::id::CSS2Properties },
   43239             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43240             :   JSJitInfo::Getter,
   43241             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43242             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43243             :   false,  /* isInfallible. False in setters. */
   43244             :   false,  /* isMovable.  Not relevant for setters. */
   43245             :   false, /* isEliminatable.  Not relevant for setters. */
   43246             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43247             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43248             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43249             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43250             : };
   43251             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43252             : static_assert(0 < 1, "There is no slot for us");
   43253             : static const JSJitInfo transition_timing_function_setterinfo = {
   43254             :   { (JSJitGetterOp)set_transition_timing_function },
   43255             :   { prototypes::id::CSS2Properties },
   43256             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43257             :   JSJitInfo::Setter,
   43258             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43259             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43260             :   false,  /* isInfallible. False in setters. */
   43261             :   false,  /* isMovable.  Not relevant for setters. */
   43262             :   false, /* isEliminatable.  Not relevant for setters. */
   43263             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43264             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43265             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43266             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43267             : };
   43268             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43269             : static_assert(0 < 1, "There is no slot for us");
   43270             : 
   43271             : static bool
   43272           0 : get_unicodeBidi(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43273             : {
   43274           0 :   binding_detail::FastErrorResult rv;
   43275           0 :   DOMString result;
   43276           0 :   self->GetUnicodeBidi(result, rv);
   43277           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43278           0 :     return false;
   43279             :   }
   43280           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43281           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43282           0 :     return false;
   43283             :   }
   43284           0 :   return true;
   43285             : }
   43286             : 
   43287             : static bool
   43288           0 : set_unicodeBidi(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43289             : {
   43290           0 :   binding_detail::FakeString arg0;
   43291           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43292           0 :     return false;
   43293             :   }
   43294           0 :   binding_detail::FastErrorResult rv;
   43295           0 :   self->SetUnicodeBidi(NonNullHelper(Constify(arg0)), rv);
   43296           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43297           0 :     return false;
   43298             :   }
   43299           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43300             : 
   43301           0 :   return true;
   43302             : }
   43303             : 
   43304             : static const JSJitInfo unicodeBidi_getterinfo = {
   43305             :   { (JSJitGetterOp)get_unicodeBidi },
   43306             :   { prototypes::id::CSS2Properties },
   43307             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43308             :   JSJitInfo::Getter,
   43309             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43310             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43311             :   false,  /* isInfallible. False in setters. */
   43312             :   false,  /* isMovable.  Not relevant for setters. */
   43313             :   false, /* isEliminatable.  Not relevant for setters. */
   43314             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43315             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43316             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43317             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43318             : };
   43319             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43320             : static_assert(0 < 1, "There is no slot for us");
   43321             : static const JSJitInfo unicodeBidi_setterinfo = {
   43322             :   { (JSJitGetterOp)set_unicodeBidi },
   43323             :   { prototypes::id::CSS2Properties },
   43324             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43325             :   JSJitInfo::Setter,
   43326             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43327             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43328             :   false,  /* isInfallible. False in setters. */
   43329             :   false,  /* isMovable.  Not relevant for setters. */
   43330             :   false, /* isEliminatable.  Not relevant for setters. */
   43331             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43332             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43333             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43334             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43335             : };
   43336             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43337             : static_assert(0 < 1, "There is no slot for us");
   43338             : 
   43339             : static bool
   43340           0 : get_unicode_bidi(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43341             : {
   43342           0 :   binding_detail::FastErrorResult rv;
   43343           0 :   DOMString result;
   43344           0 :   self->GetUnicodeBidi(result, rv);
   43345           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43346           0 :     return false;
   43347             :   }
   43348           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43349           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43350           0 :     return false;
   43351             :   }
   43352           0 :   return true;
   43353             : }
   43354             : 
   43355             : static bool
   43356           0 : set_unicode_bidi(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43357             : {
   43358           0 :   binding_detail::FakeString arg0;
   43359           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43360           0 :     return false;
   43361             :   }
   43362           0 :   binding_detail::FastErrorResult rv;
   43363           0 :   self->SetUnicodeBidi(NonNullHelper(Constify(arg0)), rv);
   43364           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43365           0 :     return false;
   43366             :   }
   43367           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43368             : 
   43369           0 :   return true;
   43370             : }
   43371             : 
   43372             : static const JSJitInfo unicode_bidi_getterinfo = {
   43373             :   { (JSJitGetterOp)get_unicode_bidi },
   43374             :   { prototypes::id::CSS2Properties },
   43375             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43376             :   JSJitInfo::Getter,
   43377             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43378             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43379             :   false,  /* isInfallible. False in setters. */
   43380             :   false,  /* isMovable.  Not relevant for setters. */
   43381             :   false, /* isEliminatable.  Not relevant for setters. */
   43382             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43383             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43384             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43385             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43386             : };
   43387             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43388             : static_assert(0 < 1, "There is no slot for us");
   43389             : static const JSJitInfo unicode_bidi_setterinfo = {
   43390             :   { (JSJitGetterOp)set_unicode_bidi },
   43391             :   { prototypes::id::CSS2Properties },
   43392             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43393             :   JSJitInfo::Setter,
   43394             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43395             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43396             :   false,  /* isInfallible. False in setters. */
   43397             :   false,  /* isMovable.  Not relevant for setters. */
   43398             :   false, /* isEliminatable.  Not relevant for setters. */
   43399             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43400             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43401             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43402             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43403             : };
   43404             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43405             : static_assert(0 < 1, "There is no slot for us");
   43406             : 
   43407             : static bool
   43408           0 : get_MozUserFocus(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43409             : {
   43410           0 :   binding_detail::FastErrorResult rv;
   43411           0 :   DOMString result;
   43412           0 :   self->GetMozUserFocus(result, rv);
   43413           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43414           0 :     return false;
   43415             :   }
   43416           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43417           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43418           0 :     return false;
   43419             :   }
   43420           0 :   return true;
   43421             : }
   43422             : 
   43423             : static bool
   43424           0 : set_MozUserFocus(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43425             : {
   43426           0 :   binding_detail::FakeString arg0;
   43427           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43428           0 :     return false;
   43429             :   }
   43430           0 :   binding_detail::FastErrorResult rv;
   43431           0 :   self->SetMozUserFocus(NonNullHelper(Constify(arg0)), rv);
   43432           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43433           0 :     return false;
   43434             :   }
   43435           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43436             : 
   43437           0 :   return true;
   43438             : }
   43439             : 
   43440             : static const JSJitInfo MozUserFocus_getterinfo = {
   43441             :   { (JSJitGetterOp)get_MozUserFocus },
   43442             :   { prototypes::id::CSS2Properties },
   43443             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43444             :   JSJitInfo::Getter,
   43445             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43446             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43447             :   false,  /* isInfallible. False in setters. */
   43448             :   false,  /* isMovable.  Not relevant for setters. */
   43449             :   false, /* isEliminatable.  Not relevant for setters. */
   43450             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43451             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43452             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43453             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43454             : };
   43455             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43456             : static_assert(0 < 1, "There is no slot for us");
   43457             : static const JSJitInfo MozUserFocus_setterinfo = {
   43458             :   { (JSJitGetterOp)set_MozUserFocus },
   43459             :   { prototypes::id::CSS2Properties },
   43460             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43461             :   JSJitInfo::Setter,
   43462             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43463             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43464             :   false,  /* isInfallible. False in setters. */
   43465             :   false,  /* isMovable.  Not relevant for setters. */
   43466             :   false, /* isEliminatable.  Not relevant for setters. */
   43467             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43468             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43469             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43470             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43471             : };
   43472             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43473             : static_assert(0 < 1, "There is no slot for us");
   43474             : 
   43475             : static bool
   43476           0 : get__moz_user_focus(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43477             : {
   43478           0 :   binding_detail::FastErrorResult rv;
   43479           0 :   DOMString result;
   43480           0 :   self->GetMozUserFocus(result, rv);
   43481           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43482           0 :     return false;
   43483             :   }
   43484           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43485           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43486           0 :     return false;
   43487             :   }
   43488           0 :   return true;
   43489             : }
   43490             : 
   43491             : static bool
   43492           0 : set__moz_user_focus(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43493             : {
   43494           0 :   binding_detail::FakeString arg0;
   43495           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43496           0 :     return false;
   43497             :   }
   43498           0 :   binding_detail::FastErrorResult rv;
   43499           0 :   self->SetMozUserFocus(NonNullHelper(Constify(arg0)), rv);
   43500           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43501           0 :     return false;
   43502             :   }
   43503           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43504             : 
   43505           0 :   return true;
   43506             : }
   43507             : 
   43508             : static const JSJitInfo _moz_user_focus_getterinfo = {
   43509             :   { (JSJitGetterOp)get__moz_user_focus },
   43510             :   { prototypes::id::CSS2Properties },
   43511             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43512             :   JSJitInfo::Getter,
   43513             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43514             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43515             :   false,  /* isInfallible. False in setters. */
   43516             :   false,  /* isMovable.  Not relevant for setters. */
   43517             :   false, /* isEliminatable.  Not relevant for setters. */
   43518             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43519             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43520             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43521             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43522             : };
   43523             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43524             : static_assert(0 < 1, "There is no slot for us");
   43525             : static const JSJitInfo _moz_user_focus_setterinfo = {
   43526             :   { (JSJitGetterOp)set__moz_user_focus },
   43527             :   { prototypes::id::CSS2Properties },
   43528             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43529             :   JSJitInfo::Setter,
   43530             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43531             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43532             :   false,  /* isInfallible. False in setters. */
   43533             :   false,  /* isMovable.  Not relevant for setters. */
   43534             :   false, /* isEliminatable.  Not relevant for setters. */
   43535             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43536             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43537             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43538             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43539             : };
   43540             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43541             : static_assert(0 < 1, "There is no slot for us");
   43542             : 
   43543             : static bool
   43544           0 : get_MozUserInput(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43545             : {
   43546           0 :   binding_detail::FastErrorResult rv;
   43547           0 :   DOMString result;
   43548           0 :   self->GetMozUserInput(result, rv);
   43549           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43550           0 :     return false;
   43551             :   }
   43552           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43553           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43554           0 :     return false;
   43555             :   }
   43556           0 :   return true;
   43557             : }
   43558             : 
   43559             : static bool
   43560           0 : set_MozUserInput(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43561             : {
   43562           0 :   binding_detail::FakeString arg0;
   43563           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43564           0 :     return false;
   43565             :   }
   43566           0 :   binding_detail::FastErrorResult rv;
   43567           0 :   self->SetMozUserInput(NonNullHelper(Constify(arg0)), rv);
   43568           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43569           0 :     return false;
   43570             :   }
   43571           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43572             : 
   43573           0 :   return true;
   43574             : }
   43575             : 
   43576             : static const JSJitInfo MozUserInput_getterinfo = {
   43577             :   { (JSJitGetterOp)get_MozUserInput },
   43578             :   { prototypes::id::CSS2Properties },
   43579             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43580             :   JSJitInfo::Getter,
   43581             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43582             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43583             :   false,  /* isInfallible. False in setters. */
   43584             :   false,  /* isMovable.  Not relevant for setters. */
   43585             :   false, /* isEliminatable.  Not relevant for setters. */
   43586             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43587             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43588             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43589             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43590             : };
   43591             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43592             : static_assert(0 < 1, "There is no slot for us");
   43593             : static const JSJitInfo MozUserInput_setterinfo = {
   43594             :   { (JSJitGetterOp)set_MozUserInput },
   43595             :   { prototypes::id::CSS2Properties },
   43596             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43597             :   JSJitInfo::Setter,
   43598             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43599             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43600             :   false,  /* isInfallible. False in setters. */
   43601             :   false,  /* isMovable.  Not relevant for setters. */
   43602             :   false, /* isEliminatable.  Not relevant for setters. */
   43603             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43604             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43605             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43606             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43607             : };
   43608             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43609             : static_assert(0 < 1, "There is no slot for us");
   43610             : 
   43611             : static bool
   43612           0 : get__moz_user_input(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43613             : {
   43614           0 :   binding_detail::FastErrorResult rv;
   43615           0 :   DOMString result;
   43616           0 :   self->GetMozUserInput(result, rv);
   43617           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43618           0 :     return false;
   43619             :   }
   43620           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43621           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43622           0 :     return false;
   43623             :   }
   43624           0 :   return true;
   43625             : }
   43626             : 
   43627             : static bool
   43628           0 : set__moz_user_input(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43629             : {
   43630           0 :   binding_detail::FakeString arg0;
   43631           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43632           0 :     return false;
   43633             :   }
   43634           0 :   binding_detail::FastErrorResult rv;
   43635           0 :   self->SetMozUserInput(NonNullHelper(Constify(arg0)), rv);
   43636           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43637           0 :     return false;
   43638             :   }
   43639           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43640             : 
   43641           0 :   return true;
   43642             : }
   43643             : 
   43644             : static const JSJitInfo _moz_user_input_getterinfo = {
   43645             :   { (JSJitGetterOp)get__moz_user_input },
   43646             :   { prototypes::id::CSS2Properties },
   43647             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43648             :   JSJitInfo::Getter,
   43649             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43650             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43651             :   false,  /* isInfallible. False in setters. */
   43652             :   false,  /* isMovable.  Not relevant for setters. */
   43653             :   false, /* isEliminatable.  Not relevant for setters. */
   43654             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43655             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43656             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43657             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43658             : };
   43659             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43660             : static_assert(0 < 1, "There is no slot for us");
   43661             : static const JSJitInfo _moz_user_input_setterinfo = {
   43662             :   { (JSJitGetterOp)set__moz_user_input },
   43663             :   { prototypes::id::CSS2Properties },
   43664             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43665             :   JSJitInfo::Setter,
   43666             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43667             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43668             :   false,  /* isInfallible. False in setters. */
   43669             :   false,  /* isMovable.  Not relevant for setters. */
   43670             :   false, /* isEliminatable.  Not relevant for setters. */
   43671             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43672             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43673             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43674             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43675             : };
   43676             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43677             : static_assert(0 < 1, "There is no slot for us");
   43678             : 
   43679             : static bool
   43680           0 : get_MozUserModify(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43681             : {
   43682           0 :   binding_detail::FastErrorResult rv;
   43683           0 :   DOMString result;
   43684           0 :   self->GetMozUserModify(result, rv);
   43685           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43686           0 :     return false;
   43687             :   }
   43688           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43689           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43690           0 :     return false;
   43691             :   }
   43692           0 :   return true;
   43693             : }
   43694             : 
   43695             : static bool
   43696           0 : set_MozUserModify(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43697             : {
   43698           0 :   binding_detail::FakeString arg0;
   43699           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43700           0 :     return false;
   43701             :   }
   43702           0 :   binding_detail::FastErrorResult rv;
   43703           0 :   self->SetMozUserModify(NonNullHelper(Constify(arg0)), rv);
   43704           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43705           0 :     return false;
   43706             :   }
   43707           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43708             : 
   43709           0 :   return true;
   43710             : }
   43711             : 
   43712             : static const JSJitInfo MozUserModify_getterinfo = {
   43713             :   { (JSJitGetterOp)get_MozUserModify },
   43714             :   { prototypes::id::CSS2Properties },
   43715             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43716             :   JSJitInfo::Getter,
   43717             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43718             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43719             :   false,  /* isInfallible. False in setters. */
   43720             :   false,  /* isMovable.  Not relevant for setters. */
   43721             :   false, /* isEliminatable.  Not relevant for setters. */
   43722             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43723             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43724             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43725             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43726             : };
   43727             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43728             : static_assert(0 < 1, "There is no slot for us");
   43729             : static const JSJitInfo MozUserModify_setterinfo = {
   43730             :   { (JSJitGetterOp)set_MozUserModify },
   43731             :   { prototypes::id::CSS2Properties },
   43732             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43733             :   JSJitInfo::Setter,
   43734             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43735             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43736             :   false,  /* isInfallible. False in setters. */
   43737             :   false,  /* isMovable.  Not relevant for setters. */
   43738             :   false, /* isEliminatable.  Not relevant for setters. */
   43739             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43740             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43741             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43742             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43743             : };
   43744             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43745             : static_assert(0 < 1, "There is no slot for us");
   43746             : 
   43747             : static bool
   43748           0 : get__moz_user_modify(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43749             : {
   43750           0 :   binding_detail::FastErrorResult rv;
   43751           0 :   DOMString result;
   43752           0 :   self->GetMozUserModify(result, rv);
   43753           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43754           0 :     return false;
   43755             :   }
   43756           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43757           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43758           0 :     return false;
   43759             :   }
   43760           0 :   return true;
   43761             : }
   43762             : 
   43763             : static bool
   43764           0 : set__moz_user_modify(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43765             : {
   43766           0 :   binding_detail::FakeString arg0;
   43767           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43768           0 :     return false;
   43769             :   }
   43770           0 :   binding_detail::FastErrorResult rv;
   43771           0 :   self->SetMozUserModify(NonNullHelper(Constify(arg0)), rv);
   43772           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43773           0 :     return false;
   43774             :   }
   43775           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43776             : 
   43777           0 :   return true;
   43778             : }
   43779             : 
   43780             : static const JSJitInfo _moz_user_modify_getterinfo = {
   43781             :   { (JSJitGetterOp)get__moz_user_modify },
   43782             :   { prototypes::id::CSS2Properties },
   43783             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43784             :   JSJitInfo::Getter,
   43785             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43786             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43787             :   false,  /* isInfallible. False in setters. */
   43788             :   false,  /* isMovable.  Not relevant for setters. */
   43789             :   false, /* isEliminatable.  Not relevant for setters. */
   43790             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43791             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43792             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43793             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43794             : };
   43795             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43796             : static_assert(0 < 1, "There is no slot for us");
   43797             : static const JSJitInfo _moz_user_modify_setterinfo = {
   43798             :   { (JSJitGetterOp)set__moz_user_modify },
   43799             :   { prototypes::id::CSS2Properties },
   43800             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43801             :   JSJitInfo::Setter,
   43802             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43803             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43804             :   false,  /* isInfallible. False in setters. */
   43805             :   false,  /* isMovable.  Not relevant for setters. */
   43806             :   false, /* isEliminatable.  Not relevant for setters. */
   43807             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43808             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43809             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43810             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43811             : };
   43812             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43813             : static_assert(0 < 1, "There is no slot for us");
   43814             : 
   43815             : static bool
   43816           0 : get_MozUserSelect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43817             : {
   43818           0 :   binding_detail::FastErrorResult rv;
   43819           0 :   DOMString result;
   43820           0 :   self->GetMozUserSelect(result, rv);
   43821           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43822           0 :     return false;
   43823             :   }
   43824           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43825           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43826           0 :     return false;
   43827             :   }
   43828           0 :   return true;
   43829             : }
   43830             : 
   43831             : static bool
   43832           0 : set_MozUserSelect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43833             : {
   43834           0 :   binding_detail::FakeString arg0;
   43835           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43836           0 :     return false;
   43837             :   }
   43838           0 :   binding_detail::FastErrorResult rv;
   43839           0 :   self->SetMozUserSelect(NonNullHelper(Constify(arg0)), rv);
   43840           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43841           0 :     return false;
   43842             :   }
   43843           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43844             : 
   43845           0 :   return true;
   43846             : }
   43847             : 
   43848             : static const JSJitInfo MozUserSelect_getterinfo = {
   43849             :   { (JSJitGetterOp)get_MozUserSelect },
   43850             :   { prototypes::id::CSS2Properties },
   43851             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43852             :   JSJitInfo::Getter,
   43853             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43854             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43855             :   false,  /* isInfallible. False in setters. */
   43856             :   false,  /* isMovable.  Not relevant for setters. */
   43857             :   false, /* isEliminatable.  Not relevant for setters. */
   43858             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43859             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43860             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43861             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43862             : };
   43863             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43864             : static_assert(0 < 1, "There is no slot for us");
   43865             : static const JSJitInfo MozUserSelect_setterinfo = {
   43866             :   { (JSJitGetterOp)set_MozUserSelect },
   43867             :   { prototypes::id::CSS2Properties },
   43868             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43869             :   JSJitInfo::Setter,
   43870             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43871             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43872             :   false,  /* isInfallible. False in setters. */
   43873             :   false,  /* isMovable.  Not relevant for setters. */
   43874             :   false, /* isEliminatable.  Not relevant for setters. */
   43875             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43876             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43877             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43878             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43879             : };
   43880             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43881             : static_assert(0 < 1, "There is no slot for us");
   43882             : 
   43883             : static bool
   43884           0 : get__moz_user_select(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43885             : {
   43886           0 :   binding_detail::FastErrorResult rv;
   43887           0 :   DOMString result;
   43888           0 :   self->GetMozUserSelect(result, rv);
   43889           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43890           0 :     return false;
   43891             :   }
   43892           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43893           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43894           0 :     return false;
   43895             :   }
   43896           0 :   return true;
   43897             : }
   43898             : 
   43899             : static bool
   43900           0 : set__moz_user_select(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43901             : {
   43902           0 :   binding_detail::FakeString arg0;
   43903           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43904           0 :     return false;
   43905             :   }
   43906           0 :   binding_detail::FastErrorResult rv;
   43907           0 :   self->SetMozUserSelect(NonNullHelper(Constify(arg0)), rv);
   43908           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43909           0 :     return false;
   43910             :   }
   43911           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43912             : 
   43913           0 :   return true;
   43914             : }
   43915             : 
   43916             : static const JSJitInfo _moz_user_select_getterinfo = {
   43917             :   { (JSJitGetterOp)get__moz_user_select },
   43918             :   { prototypes::id::CSS2Properties },
   43919             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43920             :   JSJitInfo::Getter,
   43921             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43922             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43923             :   false,  /* isInfallible. False in setters. */
   43924             :   false,  /* isMovable.  Not relevant for setters. */
   43925             :   false, /* isEliminatable.  Not relevant for setters. */
   43926             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43927             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43928             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43929             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43930             : };
   43931             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43932             : static_assert(0 < 1, "There is no slot for us");
   43933             : static const JSJitInfo _moz_user_select_setterinfo = {
   43934             :   { (JSJitGetterOp)set__moz_user_select },
   43935             :   { prototypes::id::CSS2Properties },
   43936             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43937             :   JSJitInfo::Setter,
   43938             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43939             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   43940             :   false,  /* isInfallible. False in setters. */
   43941             :   false,  /* isMovable.  Not relevant for setters. */
   43942             :   false, /* isEliminatable.  Not relevant for setters. */
   43943             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43944             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43945             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43946             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43947             : };
   43948             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   43949             : static_assert(0 < 1, "There is no slot for us");
   43950             : 
   43951             : static bool
   43952           0 : get_vectorEffect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   43953             : {
   43954           0 :   binding_detail::FastErrorResult rv;
   43955           0 :   DOMString result;
   43956           0 :   self->GetVectorEffect(result, rv);
   43957           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43958           0 :     return false;
   43959             :   }
   43960           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43961           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   43962           0 :     return false;
   43963             :   }
   43964           0 :   return true;
   43965             : }
   43966             : 
   43967             : static bool
   43968           0 : set_vectorEffect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   43969             : {
   43970           0 :   binding_detail::FakeString arg0;
   43971           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   43972           0 :     return false;
   43973             :   }
   43974           0 :   binding_detail::FastErrorResult rv;
   43975           0 :   self->SetVectorEffect(NonNullHelper(Constify(arg0)), rv);
   43976           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   43977           0 :     return false;
   43978             :   }
   43979           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   43980             : 
   43981           0 :   return true;
   43982             : }
   43983             : 
   43984             : static const JSJitInfo vectorEffect_getterinfo = {
   43985             :   { (JSJitGetterOp)get_vectorEffect },
   43986             :   { prototypes::id::CSS2Properties },
   43987             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   43988             :   JSJitInfo::Getter,
   43989             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   43990             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   43991             :   false,  /* isInfallible. False in setters. */
   43992             :   false,  /* isMovable.  Not relevant for setters. */
   43993             :   false, /* isEliminatable.  Not relevant for setters. */
   43994             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   43995             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   43996             :   false,  /* isTypedMethod.  Only relevant for methods. */
   43997             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   43998             : };
   43999             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44000             : static_assert(0 < 1, "There is no slot for us");
   44001             : static const JSJitInfo vectorEffect_setterinfo = {
   44002             :   { (JSJitGetterOp)set_vectorEffect },
   44003             :   { prototypes::id::CSS2Properties },
   44004             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44005             :   JSJitInfo::Setter,
   44006             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44007             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44008             :   false,  /* isInfallible. False in setters. */
   44009             :   false,  /* isMovable.  Not relevant for setters. */
   44010             :   false, /* isEliminatable.  Not relevant for setters. */
   44011             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44012             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44013             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44014             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44015             : };
   44016             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44017             : static_assert(0 < 1, "There is no slot for us");
   44018             : 
   44019             : static bool
   44020           0 : get_vector_effect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44021             : {
   44022           0 :   binding_detail::FastErrorResult rv;
   44023           0 :   DOMString result;
   44024           0 :   self->GetVectorEffect(result, rv);
   44025           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44026           0 :     return false;
   44027             :   }
   44028           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44029           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44030           0 :     return false;
   44031             :   }
   44032           0 :   return true;
   44033             : }
   44034             : 
   44035             : static bool
   44036           0 : set_vector_effect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44037             : {
   44038           0 :   binding_detail::FakeString arg0;
   44039           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44040           0 :     return false;
   44041             :   }
   44042           0 :   binding_detail::FastErrorResult rv;
   44043           0 :   self->SetVectorEffect(NonNullHelper(Constify(arg0)), rv);
   44044           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44045           0 :     return false;
   44046             :   }
   44047           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44048             : 
   44049           0 :   return true;
   44050             : }
   44051             : 
   44052             : static const JSJitInfo vector_effect_getterinfo = {
   44053             :   { (JSJitGetterOp)get_vector_effect },
   44054             :   { prototypes::id::CSS2Properties },
   44055             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44056             :   JSJitInfo::Getter,
   44057             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44058             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44059             :   false,  /* isInfallible. False in setters. */
   44060             :   false,  /* isMovable.  Not relevant for setters. */
   44061             :   false, /* isEliminatable.  Not relevant for setters. */
   44062             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44063             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44064             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44065             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44066             : };
   44067             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44068             : static_assert(0 < 1, "There is no slot for us");
   44069             : static const JSJitInfo vector_effect_setterinfo = {
   44070             :   { (JSJitGetterOp)set_vector_effect },
   44071             :   { prototypes::id::CSS2Properties },
   44072             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44073             :   JSJitInfo::Setter,
   44074             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44075             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44076             :   false,  /* isInfallible. False in setters. */
   44077             :   false,  /* isMovable.  Not relevant for setters. */
   44078             :   false, /* isEliminatable.  Not relevant for setters. */
   44079             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44080             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44081             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44082             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44083             : };
   44084             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44085             : static_assert(0 < 1, "There is no slot for us");
   44086             : 
   44087             : static bool
   44088           0 : get_verticalAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44089             : {
   44090           0 :   binding_detail::FastErrorResult rv;
   44091           0 :   DOMString result;
   44092           0 :   self->GetVerticalAlign(result, rv);
   44093           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44094           0 :     return false;
   44095             :   }
   44096           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44097           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44098           0 :     return false;
   44099             :   }
   44100           0 :   return true;
   44101             : }
   44102             : 
   44103             : static bool
   44104           0 : set_verticalAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44105             : {
   44106           0 :   binding_detail::FakeString arg0;
   44107           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44108           0 :     return false;
   44109             :   }
   44110           0 :   binding_detail::FastErrorResult rv;
   44111           0 :   self->SetVerticalAlign(NonNullHelper(Constify(arg0)), rv);
   44112           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44113           0 :     return false;
   44114             :   }
   44115           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44116             : 
   44117           0 :   return true;
   44118             : }
   44119             : 
   44120             : static const JSJitInfo verticalAlign_getterinfo = {
   44121             :   { (JSJitGetterOp)get_verticalAlign },
   44122             :   { prototypes::id::CSS2Properties },
   44123             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44124             :   JSJitInfo::Getter,
   44125             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44126             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44127             :   false,  /* isInfallible. False in setters. */
   44128             :   false,  /* isMovable.  Not relevant for setters. */
   44129             :   false, /* isEliminatable.  Not relevant for setters. */
   44130             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44131             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44132             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44133             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44134             : };
   44135             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44136             : static_assert(0 < 1, "There is no slot for us");
   44137             : static const JSJitInfo verticalAlign_setterinfo = {
   44138             :   { (JSJitGetterOp)set_verticalAlign },
   44139             :   { prototypes::id::CSS2Properties },
   44140             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44141             :   JSJitInfo::Setter,
   44142             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44143             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44144             :   false,  /* isInfallible. False in setters. */
   44145             :   false,  /* isMovable.  Not relevant for setters. */
   44146             :   false, /* isEliminatable.  Not relevant for setters. */
   44147             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44148             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44149             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44150             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44151             : };
   44152             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44153             : static_assert(0 < 1, "There is no slot for us");
   44154             : 
   44155             : static bool
   44156           0 : get_vertical_align(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44157             : {
   44158           0 :   binding_detail::FastErrorResult rv;
   44159           0 :   DOMString result;
   44160           0 :   self->GetVerticalAlign(result, rv);
   44161           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44162           0 :     return false;
   44163             :   }
   44164           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44165           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44166           0 :     return false;
   44167             :   }
   44168           0 :   return true;
   44169             : }
   44170             : 
   44171             : static bool
   44172           0 : set_vertical_align(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44173             : {
   44174           0 :   binding_detail::FakeString arg0;
   44175           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44176           0 :     return false;
   44177             :   }
   44178           0 :   binding_detail::FastErrorResult rv;
   44179           0 :   self->SetVerticalAlign(NonNullHelper(Constify(arg0)), rv);
   44180           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44181           0 :     return false;
   44182             :   }
   44183           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44184             : 
   44185           0 :   return true;
   44186             : }
   44187             : 
   44188             : static const JSJitInfo vertical_align_getterinfo = {
   44189             :   { (JSJitGetterOp)get_vertical_align },
   44190             :   { prototypes::id::CSS2Properties },
   44191             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44192             :   JSJitInfo::Getter,
   44193             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44194             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44195             :   false,  /* isInfallible. False in setters. */
   44196             :   false,  /* isMovable.  Not relevant for setters. */
   44197             :   false, /* isEliminatable.  Not relevant for setters. */
   44198             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44199             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44200             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44201             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44202             : };
   44203             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44204             : static_assert(0 < 1, "There is no slot for us");
   44205             : static const JSJitInfo vertical_align_setterinfo = {
   44206             :   { (JSJitGetterOp)set_vertical_align },
   44207             :   { prototypes::id::CSS2Properties },
   44208             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44209             :   JSJitInfo::Setter,
   44210             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44211             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44212             :   false,  /* isInfallible. False in setters. */
   44213             :   false,  /* isMovable.  Not relevant for setters. */
   44214             :   false, /* isEliminatable.  Not relevant for setters. */
   44215             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44216             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44217             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44218             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44219             : };
   44220             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44221             : static_assert(0 < 1, "There is no slot for us");
   44222             : 
   44223             : static bool
   44224           0 : get_visibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44225             : {
   44226           0 :   binding_detail::FastErrorResult rv;
   44227           0 :   DOMString result;
   44228           0 :   self->GetVisibility(result, rv);
   44229           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44230           0 :     return false;
   44231             :   }
   44232           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44233           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44234           0 :     return false;
   44235             :   }
   44236           0 :   return true;
   44237             : }
   44238             : 
   44239             : static bool
   44240           0 : set_visibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44241             : {
   44242           0 :   binding_detail::FakeString arg0;
   44243           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44244           0 :     return false;
   44245             :   }
   44246           0 :   binding_detail::FastErrorResult rv;
   44247           0 :   self->SetVisibility(NonNullHelper(Constify(arg0)), rv);
   44248           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44249           0 :     return false;
   44250             :   }
   44251           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44252             : 
   44253           0 :   return true;
   44254             : }
   44255             : 
   44256             : static const JSJitInfo visibility_getterinfo = {
   44257             :   { (JSJitGetterOp)get_visibility },
   44258             :   { prototypes::id::CSS2Properties },
   44259             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44260             :   JSJitInfo::Getter,
   44261             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44262             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44263             :   false,  /* isInfallible. False in setters. */
   44264             :   false,  /* isMovable.  Not relevant for setters. */
   44265             :   false, /* isEliminatable.  Not relevant for setters. */
   44266             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44267             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44268             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44269             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44270             : };
   44271             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44272             : static_assert(0 < 1, "There is no slot for us");
   44273             : static const JSJitInfo visibility_setterinfo = {
   44274             :   { (JSJitGetterOp)set_visibility },
   44275             :   { prototypes::id::CSS2Properties },
   44276             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44277             :   JSJitInfo::Setter,
   44278             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44279             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44280             :   false,  /* isInfallible. False in setters. */
   44281             :   false,  /* isMovable.  Not relevant for setters. */
   44282             :   false, /* isEliminatable.  Not relevant for setters. */
   44283             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44284             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44285             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44286             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44287             : };
   44288             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44289             : static_assert(0 < 1, "There is no slot for us");
   44290             : 
   44291             : static bool
   44292           0 : get_whiteSpace(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44293             : {
   44294           0 :   binding_detail::FastErrorResult rv;
   44295           0 :   DOMString result;
   44296           0 :   self->GetWhiteSpace(result, rv);
   44297           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44298           0 :     return false;
   44299             :   }
   44300           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44301           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44302           0 :     return false;
   44303             :   }
   44304           0 :   return true;
   44305             : }
   44306             : 
   44307             : static bool
   44308           0 : set_whiteSpace(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44309             : {
   44310           0 :   binding_detail::FakeString arg0;
   44311           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44312           0 :     return false;
   44313             :   }
   44314           0 :   binding_detail::FastErrorResult rv;
   44315           0 :   self->SetWhiteSpace(NonNullHelper(Constify(arg0)), rv);
   44316           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44317           0 :     return false;
   44318             :   }
   44319           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44320             : 
   44321           0 :   return true;
   44322             : }
   44323             : 
   44324             : static const JSJitInfo whiteSpace_getterinfo = {
   44325             :   { (JSJitGetterOp)get_whiteSpace },
   44326             :   { prototypes::id::CSS2Properties },
   44327             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44328             :   JSJitInfo::Getter,
   44329             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44330             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44331             :   false,  /* isInfallible. False in setters. */
   44332             :   false,  /* isMovable.  Not relevant for setters. */
   44333             :   false, /* isEliminatable.  Not relevant for setters. */
   44334             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44335             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44336             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44337             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44338             : };
   44339             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44340             : static_assert(0 < 1, "There is no slot for us");
   44341             : static const JSJitInfo whiteSpace_setterinfo = {
   44342             :   { (JSJitGetterOp)set_whiteSpace },
   44343             :   { prototypes::id::CSS2Properties },
   44344             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44345             :   JSJitInfo::Setter,
   44346             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44347             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44348             :   false,  /* isInfallible. False in setters. */
   44349             :   false,  /* isMovable.  Not relevant for setters. */
   44350             :   false, /* isEliminatable.  Not relevant for setters. */
   44351             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44352             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44353             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44354             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44355             : };
   44356             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44357             : static_assert(0 < 1, "There is no slot for us");
   44358             : 
   44359             : static bool
   44360           0 : get_white_space(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44361             : {
   44362           0 :   binding_detail::FastErrorResult rv;
   44363           0 :   DOMString result;
   44364           0 :   self->GetWhiteSpace(result, rv);
   44365           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44366           0 :     return false;
   44367             :   }
   44368           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44369           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44370           0 :     return false;
   44371             :   }
   44372           0 :   return true;
   44373             : }
   44374             : 
   44375             : static bool
   44376           0 : set_white_space(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44377             : {
   44378           0 :   binding_detail::FakeString arg0;
   44379           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44380           0 :     return false;
   44381             :   }
   44382           0 :   binding_detail::FastErrorResult rv;
   44383           0 :   self->SetWhiteSpace(NonNullHelper(Constify(arg0)), rv);
   44384           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44385           0 :     return false;
   44386             :   }
   44387           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44388             : 
   44389           0 :   return true;
   44390             : }
   44391             : 
   44392             : static const JSJitInfo white_space_getterinfo = {
   44393             :   { (JSJitGetterOp)get_white_space },
   44394             :   { prototypes::id::CSS2Properties },
   44395             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44396             :   JSJitInfo::Getter,
   44397             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44398             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44399             :   false,  /* isInfallible. False in setters. */
   44400             :   false,  /* isMovable.  Not relevant for setters. */
   44401             :   false, /* isEliminatable.  Not relevant for setters. */
   44402             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44403             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44404             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44405             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44406             : };
   44407             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44408             : static_assert(0 < 1, "There is no slot for us");
   44409             : static const JSJitInfo white_space_setterinfo = {
   44410             :   { (JSJitGetterOp)set_white_space },
   44411             :   { prototypes::id::CSS2Properties },
   44412             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44413             :   JSJitInfo::Setter,
   44414             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44415             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44416             :   false,  /* isInfallible. False in setters. */
   44417             :   false,  /* isMovable.  Not relevant for setters. */
   44418             :   false, /* isEliminatable.  Not relevant for setters. */
   44419             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44420             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44421             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44422             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44423             : };
   44424             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44425             : static_assert(0 < 1, "There is no slot for us");
   44426             : 
   44427             : static bool
   44428           0 : get_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44429             : {
   44430           0 :   binding_detail::FastErrorResult rv;
   44431           0 :   DOMString result;
   44432           0 :   self->GetWidth(result, rv);
   44433           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44434           0 :     return false;
   44435             :   }
   44436           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44437           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44438           0 :     return false;
   44439             :   }
   44440           0 :   return true;
   44441             : }
   44442             : 
   44443             : static bool
   44444           0 : set_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44445             : {
   44446           0 :   binding_detail::FakeString arg0;
   44447           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44448           0 :     return false;
   44449             :   }
   44450           0 :   binding_detail::FastErrorResult rv;
   44451           0 :   self->SetWidth(NonNullHelper(Constify(arg0)), rv);
   44452           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44453           0 :     return false;
   44454             :   }
   44455           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44456             : 
   44457           0 :   return true;
   44458             : }
   44459             : 
   44460             : static const JSJitInfo width_getterinfo = {
   44461             :   { (JSJitGetterOp)get_width },
   44462             :   { prototypes::id::CSS2Properties },
   44463             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44464             :   JSJitInfo::Getter,
   44465             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44466             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44467             :   false,  /* isInfallible. False in setters. */
   44468             :   false,  /* isMovable.  Not relevant for setters. */
   44469             :   false, /* isEliminatable.  Not relevant for setters. */
   44470             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44471             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44472             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44473             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44474             : };
   44475             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44476             : static_assert(0 < 1, "There is no slot for us");
   44477             : static const JSJitInfo width_setterinfo = {
   44478             :   { (JSJitGetterOp)set_width },
   44479             :   { prototypes::id::CSS2Properties },
   44480             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44481             :   JSJitInfo::Setter,
   44482             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44483             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44484             :   false,  /* isInfallible. False in setters. */
   44485             :   false,  /* isMovable.  Not relevant for setters. */
   44486             :   false, /* isEliminatable.  Not relevant for setters. */
   44487             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44488             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44489             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44490             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44491             : };
   44492             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44493             : static_assert(0 < 1, "There is no slot for us");
   44494             : 
   44495             : static bool
   44496           0 : get_willChange(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44497             : {
   44498           0 :   binding_detail::FastErrorResult rv;
   44499           0 :   DOMString result;
   44500           0 :   self->GetWillChange(result, rv);
   44501           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44502           0 :     return false;
   44503             :   }
   44504           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44505           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44506           0 :     return false;
   44507             :   }
   44508           0 :   return true;
   44509             : }
   44510             : 
   44511             : static bool
   44512           0 : set_willChange(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44513             : {
   44514           0 :   binding_detail::FakeString arg0;
   44515           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44516           0 :     return false;
   44517             :   }
   44518           0 :   binding_detail::FastErrorResult rv;
   44519           0 :   self->SetWillChange(NonNullHelper(Constify(arg0)), rv);
   44520           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44521           0 :     return false;
   44522             :   }
   44523           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44524             : 
   44525           0 :   return true;
   44526             : }
   44527             : 
   44528             : static const JSJitInfo willChange_getterinfo = {
   44529             :   { (JSJitGetterOp)get_willChange },
   44530             :   { prototypes::id::CSS2Properties },
   44531             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44532             :   JSJitInfo::Getter,
   44533             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44534             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44535             :   false,  /* isInfallible. False in setters. */
   44536             :   false,  /* isMovable.  Not relevant for setters. */
   44537             :   false, /* isEliminatable.  Not relevant for setters. */
   44538             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44539             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44540             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44541             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44542             : };
   44543             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44544             : static_assert(0 < 1, "There is no slot for us");
   44545             : static const JSJitInfo willChange_setterinfo = {
   44546             :   { (JSJitGetterOp)set_willChange },
   44547             :   { prototypes::id::CSS2Properties },
   44548             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44549             :   JSJitInfo::Setter,
   44550             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44551             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44552             :   false,  /* isInfallible. False in setters. */
   44553             :   false,  /* isMovable.  Not relevant for setters. */
   44554             :   false, /* isEliminatable.  Not relevant for setters. */
   44555             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44556             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44557             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44558             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44559             : };
   44560             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44561             : static_assert(0 < 1, "There is no slot for us");
   44562             : 
   44563             : static bool
   44564           0 : get_will_change(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44565             : {
   44566           0 :   binding_detail::FastErrorResult rv;
   44567           0 :   DOMString result;
   44568           0 :   self->GetWillChange(result, rv);
   44569           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44570           0 :     return false;
   44571             :   }
   44572           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44573           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44574           0 :     return false;
   44575             :   }
   44576           0 :   return true;
   44577             : }
   44578             : 
   44579             : static bool
   44580           0 : set_will_change(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44581             : {
   44582           0 :   binding_detail::FakeString arg0;
   44583           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44584           0 :     return false;
   44585             :   }
   44586           0 :   binding_detail::FastErrorResult rv;
   44587           0 :   self->SetWillChange(NonNullHelper(Constify(arg0)), rv);
   44588           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44589           0 :     return false;
   44590             :   }
   44591           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44592             : 
   44593           0 :   return true;
   44594             : }
   44595             : 
   44596             : static const JSJitInfo will_change_getterinfo = {
   44597             :   { (JSJitGetterOp)get_will_change },
   44598             :   { prototypes::id::CSS2Properties },
   44599             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44600             :   JSJitInfo::Getter,
   44601             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44602             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44603             :   false,  /* isInfallible. False in setters. */
   44604             :   false,  /* isMovable.  Not relevant for setters. */
   44605             :   false, /* isEliminatable.  Not relevant for setters. */
   44606             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44607             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44608             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44609             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44610             : };
   44611             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44612             : static_assert(0 < 1, "There is no slot for us");
   44613             : static const JSJitInfo will_change_setterinfo = {
   44614             :   { (JSJitGetterOp)set_will_change },
   44615             :   { prototypes::id::CSS2Properties },
   44616             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44617             :   JSJitInfo::Setter,
   44618             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44619             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44620             :   false,  /* isInfallible. False in setters. */
   44621             :   false,  /* isMovable.  Not relevant for setters. */
   44622             :   false, /* isEliminatable.  Not relevant for setters. */
   44623             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44624             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44625             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44626             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44627             : };
   44628             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44629             : static_assert(0 < 1, "There is no slot for us");
   44630             : 
   44631             : static bool
   44632           0 : get_MozWindowDragging(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44633             : {
   44634           0 :   binding_detail::FastErrorResult rv;
   44635           0 :   DOMString result;
   44636           0 :   self->GetMozWindowDragging(result, rv);
   44637           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44638           0 :     return false;
   44639             :   }
   44640           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44641           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44642           0 :     return false;
   44643             :   }
   44644           0 :   return true;
   44645             : }
   44646             : 
   44647             : static bool
   44648           0 : set_MozWindowDragging(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44649             : {
   44650           0 :   binding_detail::FakeString arg0;
   44651           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44652           0 :     return false;
   44653             :   }
   44654           0 :   binding_detail::FastErrorResult rv;
   44655           0 :   self->SetMozWindowDragging(NonNullHelper(Constify(arg0)), rv);
   44656           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44657           0 :     return false;
   44658             :   }
   44659           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44660             : 
   44661           0 :   return true;
   44662             : }
   44663             : 
   44664             : static const JSJitInfo MozWindowDragging_getterinfo = {
   44665             :   { (JSJitGetterOp)get_MozWindowDragging },
   44666             :   { prototypes::id::CSS2Properties },
   44667             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44668             :   JSJitInfo::Getter,
   44669             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44670             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44671             :   false,  /* isInfallible. False in setters. */
   44672             :   false,  /* isMovable.  Not relevant for setters. */
   44673             :   false, /* isEliminatable.  Not relevant for setters. */
   44674             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44675             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44676             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44677             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44678             : };
   44679             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44680             : static_assert(0 < 1, "There is no slot for us");
   44681             : static const JSJitInfo MozWindowDragging_setterinfo = {
   44682             :   { (JSJitGetterOp)set_MozWindowDragging },
   44683             :   { prototypes::id::CSS2Properties },
   44684             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44685             :   JSJitInfo::Setter,
   44686             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44687             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44688             :   false,  /* isInfallible. False in setters. */
   44689             :   false,  /* isMovable.  Not relevant for setters. */
   44690             :   false, /* isEliminatable.  Not relevant for setters. */
   44691             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44692             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44693             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44694             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44695             : };
   44696             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44697             : static_assert(0 < 1, "There is no slot for us");
   44698             : 
   44699             : static bool
   44700           0 : get__moz_window_dragging(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44701             : {
   44702           0 :   binding_detail::FastErrorResult rv;
   44703           0 :   DOMString result;
   44704           0 :   self->GetMozWindowDragging(result, rv);
   44705           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44706           0 :     return false;
   44707             :   }
   44708           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44709           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44710           0 :     return false;
   44711             :   }
   44712           0 :   return true;
   44713             : }
   44714             : 
   44715             : static bool
   44716           0 : set__moz_window_dragging(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44717             : {
   44718           0 :   binding_detail::FakeString arg0;
   44719           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44720           0 :     return false;
   44721             :   }
   44722           0 :   binding_detail::FastErrorResult rv;
   44723           0 :   self->SetMozWindowDragging(NonNullHelper(Constify(arg0)), rv);
   44724           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44725           0 :     return false;
   44726             :   }
   44727           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44728             : 
   44729           0 :   return true;
   44730             : }
   44731             : 
   44732             : static const JSJitInfo _moz_window_dragging_getterinfo = {
   44733             :   { (JSJitGetterOp)get__moz_window_dragging },
   44734             :   { prototypes::id::CSS2Properties },
   44735             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44736             :   JSJitInfo::Getter,
   44737             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44738             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44739             :   false,  /* isInfallible. False in setters. */
   44740             :   false,  /* isMovable.  Not relevant for setters. */
   44741             :   false, /* isEliminatable.  Not relevant for setters. */
   44742             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44743             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44744             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44745             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44746             : };
   44747             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44748             : static_assert(0 < 1, "There is no slot for us");
   44749             : static const JSJitInfo _moz_window_dragging_setterinfo = {
   44750             :   { (JSJitGetterOp)set__moz_window_dragging },
   44751             :   { prototypes::id::CSS2Properties },
   44752             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44753             :   JSJitInfo::Setter,
   44754             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44755             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44756             :   false,  /* isInfallible. False in setters. */
   44757             :   false,  /* isMovable.  Not relevant for setters. */
   44758             :   false, /* isEliminatable.  Not relevant for setters. */
   44759             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44760             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44761             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44762             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44763             : };
   44764             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44765             : static_assert(0 < 1, "There is no slot for us");
   44766             : 
   44767             : static bool
   44768           0 : get_wordBreak(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44769             : {
   44770           0 :   binding_detail::FastErrorResult rv;
   44771           0 :   DOMString result;
   44772           0 :   self->GetWordBreak(result, rv);
   44773           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44774           0 :     return false;
   44775             :   }
   44776           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44777           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44778           0 :     return false;
   44779             :   }
   44780           0 :   return true;
   44781             : }
   44782             : 
   44783             : static bool
   44784           0 : set_wordBreak(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44785             : {
   44786           0 :   binding_detail::FakeString arg0;
   44787           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44788           0 :     return false;
   44789             :   }
   44790           0 :   binding_detail::FastErrorResult rv;
   44791           0 :   self->SetWordBreak(NonNullHelper(Constify(arg0)), rv);
   44792           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44793           0 :     return false;
   44794             :   }
   44795           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44796             : 
   44797           0 :   return true;
   44798             : }
   44799             : 
   44800             : static const JSJitInfo wordBreak_getterinfo = {
   44801             :   { (JSJitGetterOp)get_wordBreak },
   44802             :   { prototypes::id::CSS2Properties },
   44803             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44804             :   JSJitInfo::Getter,
   44805             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44806             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44807             :   false,  /* isInfallible. False in setters. */
   44808             :   false,  /* isMovable.  Not relevant for setters. */
   44809             :   false, /* isEliminatable.  Not relevant for setters. */
   44810             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44811             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44812             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44813             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44814             : };
   44815             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44816             : static_assert(0 < 1, "There is no slot for us");
   44817             : static const JSJitInfo wordBreak_setterinfo = {
   44818             :   { (JSJitGetterOp)set_wordBreak },
   44819             :   { prototypes::id::CSS2Properties },
   44820             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44821             :   JSJitInfo::Setter,
   44822             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44823             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44824             :   false,  /* isInfallible. False in setters. */
   44825             :   false,  /* isMovable.  Not relevant for setters. */
   44826             :   false, /* isEliminatable.  Not relevant for setters. */
   44827             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44828             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44829             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44830             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44831             : };
   44832             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44833             : static_assert(0 < 1, "There is no slot for us");
   44834             : 
   44835             : static bool
   44836           0 : get_word_break(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44837             : {
   44838           0 :   binding_detail::FastErrorResult rv;
   44839           0 :   DOMString result;
   44840           0 :   self->GetWordBreak(result, rv);
   44841           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44842           0 :     return false;
   44843             :   }
   44844           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44845           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44846           0 :     return false;
   44847             :   }
   44848           0 :   return true;
   44849             : }
   44850             : 
   44851             : static bool
   44852           0 : set_word_break(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44853             : {
   44854           0 :   binding_detail::FakeString arg0;
   44855           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44856           0 :     return false;
   44857             :   }
   44858           0 :   binding_detail::FastErrorResult rv;
   44859           0 :   self->SetWordBreak(NonNullHelper(Constify(arg0)), rv);
   44860           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44861           0 :     return false;
   44862             :   }
   44863           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44864             : 
   44865           0 :   return true;
   44866             : }
   44867             : 
   44868             : static const JSJitInfo word_break_getterinfo = {
   44869             :   { (JSJitGetterOp)get_word_break },
   44870             :   { prototypes::id::CSS2Properties },
   44871             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44872             :   JSJitInfo::Getter,
   44873             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44874             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44875             :   false,  /* isInfallible. False in setters. */
   44876             :   false,  /* isMovable.  Not relevant for setters. */
   44877             :   false, /* isEliminatable.  Not relevant for setters. */
   44878             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44879             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44880             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44881             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44882             : };
   44883             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44884             : static_assert(0 < 1, "There is no slot for us");
   44885             : static const JSJitInfo word_break_setterinfo = {
   44886             :   { (JSJitGetterOp)set_word_break },
   44887             :   { prototypes::id::CSS2Properties },
   44888             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44889             :   JSJitInfo::Setter,
   44890             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44891             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44892             :   false,  /* isInfallible. False in setters. */
   44893             :   false,  /* isMovable.  Not relevant for setters. */
   44894             :   false, /* isEliminatable.  Not relevant for setters. */
   44895             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44896             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44897             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44898             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44899             : };
   44900             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44901             : static_assert(0 < 1, "There is no slot for us");
   44902             : 
   44903             : static bool
   44904           0 : get_wordSpacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44905             : {
   44906           0 :   binding_detail::FastErrorResult rv;
   44907           0 :   DOMString result;
   44908           0 :   self->GetWordSpacing(result, rv);
   44909           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44910           0 :     return false;
   44911             :   }
   44912           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44913           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44914           0 :     return false;
   44915             :   }
   44916           0 :   return true;
   44917             : }
   44918             : 
   44919             : static bool
   44920           0 : set_wordSpacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44921             : {
   44922           0 :   binding_detail::FakeString arg0;
   44923           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44924           0 :     return false;
   44925             :   }
   44926           0 :   binding_detail::FastErrorResult rv;
   44927           0 :   self->SetWordSpacing(NonNullHelper(Constify(arg0)), rv);
   44928           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44929           0 :     return false;
   44930             :   }
   44931           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44932             : 
   44933           0 :   return true;
   44934             : }
   44935             : 
   44936             : static const JSJitInfo wordSpacing_getterinfo = {
   44937             :   { (JSJitGetterOp)get_wordSpacing },
   44938             :   { prototypes::id::CSS2Properties },
   44939             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44940             :   JSJitInfo::Getter,
   44941             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44942             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   44943             :   false,  /* isInfallible. False in setters. */
   44944             :   false,  /* isMovable.  Not relevant for setters. */
   44945             :   false, /* isEliminatable.  Not relevant for setters. */
   44946             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44947             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44948             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44949             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44950             : };
   44951             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44952             : static_assert(0 < 1, "There is no slot for us");
   44953             : static const JSJitInfo wordSpacing_setterinfo = {
   44954             :   { (JSJitGetterOp)set_wordSpacing },
   44955             :   { prototypes::id::CSS2Properties },
   44956             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   44957             :   JSJitInfo::Setter,
   44958             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   44959             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   44960             :   false,  /* isInfallible. False in setters. */
   44961             :   false,  /* isMovable.  Not relevant for setters. */
   44962             :   false, /* isEliminatable.  Not relevant for setters. */
   44963             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   44964             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   44965             :   false,  /* isTypedMethod.  Only relevant for methods. */
   44966             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   44967             : };
   44968             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   44969             : static_assert(0 < 1, "There is no slot for us");
   44970             : 
   44971             : static bool
   44972           0 : get_word_spacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   44973             : {
   44974           0 :   binding_detail::FastErrorResult rv;
   44975           0 :   DOMString result;
   44976           0 :   self->GetWordSpacing(result, rv);
   44977           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44978           0 :     return false;
   44979             :   }
   44980           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   44981           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   44982           0 :     return false;
   44983             :   }
   44984           0 :   return true;
   44985             : }
   44986             : 
   44987             : static bool
   44988           0 : set_word_spacing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   44989             : {
   44990           0 :   binding_detail::FakeString arg0;
   44991           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   44992           0 :     return false;
   44993             :   }
   44994           0 :   binding_detail::FastErrorResult rv;
   44995           0 :   self->SetWordSpacing(NonNullHelper(Constify(arg0)), rv);
   44996           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   44997           0 :     return false;
   44998             :   }
   44999           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45000             : 
   45001           0 :   return true;
   45002             : }
   45003             : 
   45004             : static const JSJitInfo word_spacing_getterinfo = {
   45005             :   { (JSJitGetterOp)get_word_spacing },
   45006             :   { prototypes::id::CSS2Properties },
   45007             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45008             :   JSJitInfo::Getter,
   45009             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45010             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45011             :   false,  /* isInfallible. False in setters. */
   45012             :   false,  /* isMovable.  Not relevant for setters. */
   45013             :   false, /* isEliminatable.  Not relevant for setters. */
   45014             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45015             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45016             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45017             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45018             : };
   45019             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45020             : static_assert(0 < 1, "There is no slot for us");
   45021             : static const JSJitInfo word_spacing_setterinfo = {
   45022             :   { (JSJitGetterOp)set_word_spacing },
   45023             :   { prototypes::id::CSS2Properties },
   45024             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45025             :   JSJitInfo::Setter,
   45026             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45027             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45028             :   false,  /* isInfallible. False in setters. */
   45029             :   false,  /* isMovable.  Not relevant for setters. */
   45030             :   false, /* isEliminatable.  Not relevant for setters. */
   45031             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45032             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45033             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45034             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45035             : };
   45036             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45037             : static_assert(0 < 1, "There is no slot for us");
   45038             : 
   45039             : static bool
   45040           0 : get_overflowWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45041             : {
   45042           0 :   binding_detail::FastErrorResult rv;
   45043           0 :   DOMString result;
   45044           0 :   self->GetOverflowWrap(result, rv);
   45045           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45046           0 :     return false;
   45047             :   }
   45048           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45049           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45050           0 :     return false;
   45051             :   }
   45052           0 :   return true;
   45053             : }
   45054             : 
   45055             : static bool
   45056           0 : set_overflowWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45057             : {
   45058           0 :   binding_detail::FakeString arg0;
   45059           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45060           0 :     return false;
   45061             :   }
   45062           0 :   binding_detail::FastErrorResult rv;
   45063           0 :   self->SetOverflowWrap(NonNullHelper(Constify(arg0)), rv);
   45064           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45065           0 :     return false;
   45066             :   }
   45067           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45068             : 
   45069           0 :   return true;
   45070             : }
   45071             : 
   45072             : static const JSJitInfo overflowWrap_getterinfo = {
   45073             :   { (JSJitGetterOp)get_overflowWrap },
   45074             :   { prototypes::id::CSS2Properties },
   45075             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45076             :   JSJitInfo::Getter,
   45077             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45078             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45079             :   false,  /* isInfallible. False in setters. */
   45080             :   false,  /* isMovable.  Not relevant for setters. */
   45081             :   false, /* isEliminatable.  Not relevant for setters. */
   45082             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45083             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45084             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45085             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45086             : };
   45087             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45088             : static_assert(0 < 1, "There is no slot for us");
   45089             : static const JSJitInfo overflowWrap_setterinfo = {
   45090             :   { (JSJitGetterOp)set_overflowWrap },
   45091             :   { prototypes::id::CSS2Properties },
   45092             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45093             :   JSJitInfo::Setter,
   45094             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45095             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45096             :   false,  /* isInfallible. False in setters. */
   45097             :   false,  /* isMovable.  Not relevant for setters. */
   45098             :   false, /* isEliminatable.  Not relevant for setters. */
   45099             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45100             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45101             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45102             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45103             : };
   45104             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45105             : static_assert(0 < 1, "There is no slot for us");
   45106             : 
   45107             : static bool
   45108           0 : get_overflow_wrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45109             : {
   45110           0 :   binding_detail::FastErrorResult rv;
   45111           0 :   DOMString result;
   45112           0 :   self->GetOverflowWrap(result, rv);
   45113           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45114           0 :     return false;
   45115             :   }
   45116           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45117           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45118           0 :     return false;
   45119             :   }
   45120           0 :   return true;
   45121             : }
   45122             : 
   45123             : static bool
   45124           0 : set_overflow_wrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45125             : {
   45126           0 :   binding_detail::FakeString arg0;
   45127           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45128           0 :     return false;
   45129             :   }
   45130           0 :   binding_detail::FastErrorResult rv;
   45131           0 :   self->SetOverflowWrap(NonNullHelper(Constify(arg0)), rv);
   45132           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45133           0 :     return false;
   45134             :   }
   45135           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45136             : 
   45137           0 :   return true;
   45138             : }
   45139             : 
   45140             : static const JSJitInfo overflow_wrap_getterinfo = {
   45141             :   { (JSJitGetterOp)get_overflow_wrap },
   45142             :   { prototypes::id::CSS2Properties },
   45143             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45144             :   JSJitInfo::Getter,
   45145             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45146             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45147             :   false,  /* isInfallible. False in setters. */
   45148             :   false,  /* isMovable.  Not relevant for setters. */
   45149             :   false, /* isEliminatable.  Not relevant for setters. */
   45150             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45151             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45152             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45153             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45154             : };
   45155             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45156             : static_assert(0 < 1, "There is no slot for us");
   45157             : static const JSJitInfo overflow_wrap_setterinfo = {
   45158             :   { (JSJitGetterOp)set_overflow_wrap },
   45159             :   { prototypes::id::CSS2Properties },
   45160             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45161             :   JSJitInfo::Setter,
   45162             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45163             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45164             :   false,  /* isInfallible. False in setters. */
   45165             :   false,  /* isMovable.  Not relevant for setters. */
   45166             :   false, /* isEliminatable.  Not relevant for setters. */
   45167             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45168             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45169             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45170             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45171             : };
   45172             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45173             : static_assert(0 < 1, "There is no slot for us");
   45174             : 
   45175             : static bool
   45176           0 : get_writingMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45177             : {
   45178           0 :   binding_detail::FastErrorResult rv;
   45179           0 :   DOMString result;
   45180           0 :   self->GetWritingMode(result, rv);
   45181           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45182           0 :     return false;
   45183             :   }
   45184           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45185           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45186           0 :     return false;
   45187             :   }
   45188           0 :   return true;
   45189             : }
   45190             : 
   45191             : static bool
   45192           0 : set_writingMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45193             : {
   45194           0 :   binding_detail::FakeString arg0;
   45195           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45196           0 :     return false;
   45197             :   }
   45198           0 :   binding_detail::FastErrorResult rv;
   45199           0 :   self->SetWritingMode(NonNullHelper(Constify(arg0)), rv);
   45200           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45201           0 :     return false;
   45202             :   }
   45203           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45204             : 
   45205           0 :   return true;
   45206             : }
   45207             : 
   45208             : static const JSJitInfo writingMode_getterinfo = {
   45209             :   { (JSJitGetterOp)get_writingMode },
   45210             :   { prototypes::id::CSS2Properties },
   45211             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45212             :   JSJitInfo::Getter,
   45213             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45214             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45215             :   false,  /* isInfallible. False in setters. */
   45216             :   false,  /* isMovable.  Not relevant for setters. */
   45217             :   false, /* isEliminatable.  Not relevant for setters. */
   45218             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45219             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45220             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45221             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45222             : };
   45223             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45224             : static_assert(0 < 1, "There is no slot for us");
   45225             : static const JSJitInfo writingMode_setterinfo = {
   45226             :   { (JSJitGetterOp)set_writingMode },
   45227             :   { prototypes::id::CSS2Properties },
   45228             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45229             :   JSJitInfo::Setter,
   45230             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45231             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45232             :   false,  /* isInfallible. False in setters. */
   45233             :   false,  /* isMovable.  Not relevant for setters. */
   45234             :   false, /* isEliminatable.  Not relevant for setters. */
   45235             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45236             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45237             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45238             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45239             : };
   45240             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45241             : static_assert(0 < 1, "There is no slot for us");
   45242             : 
   45243             : static bool
   45244           0 : get_writing_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45245             : {
   45246           0 :   binding_detail::FastErrorResult rv;
   45247           0 :   DOMString result;
   45248           0 :   self->GetWritingMode(result, rv);
   45249           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45250           0 :     return false;
   45251             :   }
   45252           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45253           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45254           0 :     return false;
   45255             :   }
   45256           0 :   return true;
   45257             : }
   45258             : 
   45259             : static bool
   45260           0 : set_writing_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45261             : {
   45262           0 :   binding_detail::FakeString arg0;
   45263           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45264           0 :     return false;
   45265             :   }
   45266           0 :   binding_detail::FastErrorResult rv;
   45267           0 :   self->SetWritingMode(NonNullHelper(Constify(arg0)), rv);
   45268           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45269           0 :     return false;
   45270             :   }
   45271           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45272             : 
   45273           0 :   return true;
   45274             : }
   45275             : 
   45276             : static const JSJitInfo writing_mode_getterinfo = {
   45277             :   { (JSJitGetterOp)get_writing_mode },
   45278             :   { prototypes::id::CSS2Properties },
   45279             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45280             :   JSJitInfo::Getter,
   45281             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45282             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45283             :   false,  /* isInfallible. False in setters. */
   45284             :   false,  /* isMovable.  Not relevant for setters. */
   45285             :   false, /* isEliminatable.  Not relevant for setters. */
   45286             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45287             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45288             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45289             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45290             : };
   45291             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45292             : static_assert(0 < 1, "There is no slot for us");
   45293             : static const JSJitInfo writing_mode_setterinfo = {
   45294             :   { (JSJitGetterOp)set_writing_mode },
   45295             :   { prototypes::id::CSS2Properties },
   45296             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45297             :   JSJitInfo::Setter,
   45298             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45299             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45300             :   false,  /* isInfallible. False in setters. */
   45301             :   false,  /* isMovable.  Not relevant for setters. */
   45302             :   false, /* isEliminatable.  Not relevant for setters. */
   45303             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45304             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45305             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45306             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45307             : };
   45308             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45309             : static_assert(0 < 1, "There is no slot for us");
   45310             : 
   45311             : static bool
   45312           0 : get_zIndex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45313             : {
   45314           0 :   binding_detail::FastErrorResult rv;
   45315           0 :   DOMString result;
   45316           0 :   self->GetZIndex(result, rv);
   45317           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45318           0 :     return false;
   45319             :   }
   45320           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45321           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45322           0 :     return false;
   45323             :   }
   45324           0 :   return true;
   45325             : }
   45326             : 
   45327             : static bool
   45328           0 : set_zIndex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45329             : {
   45330           0 :   binding_detail::FakeString arg0;
   45331           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45332           0 :     return false;
   45333             :   }
   45334           0 :   binding_detail::FastErrorResult rv;
   45335           0 :   self->SetZIndex(NonNullHelper(Constify(arg0)), rv);
   45336           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45337           0 :     return false;
   45338             :   }
   45339           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45340             : 
   45341           0 :   return true;
   45342             : }
   45343             : 
   45344             : static const JSJitInfo zIndex_getterinfo = {
   45345             :   { (JSJitGetterOp)get_zIndex },
   45346             :   { prototypes::id::CSS2Properties },
   45347             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45348             :   JSJitInfo::Getter,
   45349             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45350             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45351             :   false,  /* isInfallible. False in setters. */
   45352             :   false,  /* isMovable.  Not relevant for setters. */
   45353             :   false, /* isEliminatable.  Not relevant for setters. */
   45354             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45355             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45356             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45357             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45358             : };
   45359             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45360             : static_assert(0 < 1, "There is no slot for us");
   45361             : static const JSJitInfo zIndex_setterinfo = {
   45362             :   { (JSJitGetterOp)set_zIndex },
   45363             :   { prototypes::id::CSS2Properties },
   45364             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45365             :   JSJitInfo::Setter,
   45366             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45367             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45368             :   false,  /* isInfallible. False in setters. */
   45369             :   false,  /* isMovable.  Not relevant for setters. */
   45370             :   false, /* isEliminatable.  Not relevant for setters. */
   45371             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45372             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45373             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45374             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45375             : };
   45376             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45377             : static_assert(0 < 1, "There is no slot for us");
   45378             : 
   45379             : static bool
   45380           0 : get_z_index(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45381             : {
   45382           0 :   binding_detail::FastErrorResult rv;
   45383           0 :   DOMString result;
   45384           0 :   self->GetZIndex(result, rv);
   45385           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45386           0 :     return false;
   45387             :   }
   45388           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45389           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45390           0 :     return false;
   45391             :   }
   45392           0 :   return true;
   45393             : }
   45394             : 
   45395             : static bool
   45396           0 : set_z_index(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45397             : {
   45398           0 :   binding_detail::FakeString arg0;
   45399           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45400           0 :     return false;
   45401             :   }
   45402           0 :   binding_detail::FastErrorResult rv;
   45403           0 :   self->SetZIndex(NonNullHelper(Constify(arg0)), rv);
   45404           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45405           0 :     return false;
   45406             :   }
   45407           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45408             : 
   45409           0 :   return true;
   45410             : }
   45411             : 
   45412             : static const JSJitInfo z_index_getterinfo = {
   45413             :   { (JSJitGetterOp)get_z_index },
   45414             :   { prototypes::id::CSS2Properties },
   45415             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45416             :   JSJitInfo::Getter,
   45417             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45418             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45419             :   false,  /* isInfallible. False in setters. */
   45420             :   false,  /* isMovable.  Not relevant for setters. */
   45421             :   false, /* isEliminatable.  Not relevant for setters. */
   45422             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45423             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45424             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45425             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45426             : };
   45427             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45428             : static_assert(0 < 1, "There is no slot for us");
   45429             : static const JSJitInfo z_index_setterinfo = {
   45430             :   { (JSJitGetterOp)set_z_index },
   45431             :   { prototypes::id::CSS2Properties },
   45432             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45433             :   JSJitInfo::Setter,
   45434             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45435             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45436             :   false,  /* isInfallible. False in setters. */
   45437             :   false,  /* isMovable.  Not relevant for setters. */
   45438             :   false, /* isEliminatable.  Not relevant for setters. */
   45439             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45440             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45441             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45442             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45443             : };
   45444             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45445             : static_assert(0 < 1, "There is no slot for us");
   45446             : 
   45447             : static bool
   45448           0 : get_wordWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45449             : {
   45450           0 :   binding_detail::FastErrorResult rv;
   45451           0 :   DOMString result;
   45452           0 :   self->GetWordWrap(result, rv);
   45453           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45454           0 :     return false;
   45455             :   }
   45456           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45457           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45458           0 :     return false;
   45459             :   }
   45460           0 :   return true;
   45461             : }
   45462             : 
   45463             : static bool
   45464           0 : set_wordWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45465             : {
   45466           0 :   binding_detail::FakeString arg0;
   45467           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45468           0 :     return false;
   45469             :   }
   45470           0 :   binding_detail::FastErrorResult rv;
   45471           0 :   self->SetWordWrap(NonNullHelper(Constify(arg0)), rv);
   45472           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45473           0 :     return false;
   45474             :   }
   45475           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45476             : 
   45477           0 :   return true;
   45478             : }
   45479             : 
   45480             : static const JSJitInfo wordWrap_getterinfo = {
   45481             :   { (JSJitGetterOp)get_wordWrap },
   45482             :   { prototypes::id::CSS2Properties },
   45483             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45484             :   JSJitInfo::Getter,
   45485             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45486             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45487             :   false,  /* isInfallible. False in setters. */
   45488             :   false,  /* isMovable.  Not relevant for setters. */
   45489             :   false, /* isEliminatable.  Not relevant for setters. */
   45490             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45491             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45492             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45493             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45494             : };
   45495             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45496             : static_assert(0 < 1, "There is no slot for us");
   45497             : static const JSJitInfo wordWrap_setterinfo = {
   45498             :   { (JSJitGetterOp)set_wordWrap },
   45499             :   { prototypes::id::CSS2Properties },
   45500             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45501             :   JSJitInfo::Setter,
   45502             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45503             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45504             :   false,  /* isInfallible. False in setters. */
   45505             :   false,  /* isMovable.  Not relevant for setters. */
   45506             :   false, /* isEliminatable.  Not relevant for setters. */
   45507             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45508             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45509             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45510             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45511             : };
   45512             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45513             : static_assert(0 < 1, "There is no slot for us");
   45514             : 
   45515             : static bool
   45516           0 : get_word_wrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45517             : {
   45518           0 :   binding_detail::FastErrorResult rv;
   45519           0 :   DOMString result;
   45520           0 :   self->GetWordWrap(result, rv);
   45521           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45522           0 :     return false;
   45523             :   }
   45524           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45525           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45526           0 :     return false;
   45527             :   }
   45528           0 :   return true;
   45529             : }
   45530             : 
   45531             : static bool
   45532           0 : set_word_wrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45533             : {
   45534           0 :   binding_detail::FakeString arg0;
   45535           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45536           0 :     return false;
   45537             :   }
   45538           0 :   binding_detail::FastErrorResult rv;
   45539           0 :   self->SetWordWrap(NonNullHelper(Constify(arg0)), rv);
   45540           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45541           0 :     return false;
   45542             :   }
   45543           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45544             : 
   45545           0 :   return true;
   45546             : }
   45547             : 
   45548             : static const JSJitInfo word_wrap_getterinfo = {
   45549             :   { (JSJitGetterOp)get_word_wrap },
   45550             :   { prototypes::id::CSS2Properties },
   45551             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45552             :   JSJitInfo::Getter,
   45553             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45554             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45555             :   false,  /* isInfallible. False in setters. */
   45556             :   false,  /* isMovable.  Not relevant for setters. */
   45557             :   false, /* isEliminatable.  Not relevant for setters. */
   45558             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45559             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45560             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45561             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45562             : };
   45563             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45564             : static_assert(0 < 1, "There is no slot for us");
   45565             : static const JSJitInfo word_wrap_setterinfo = {
   45566             :   { (JSJitGetterOp)set_word_wrap },
   45567             :   { prototypes::id::CSS2Properties },
   45568             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45569             :   JSJitInfo::Setter,
   45570             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45571             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45572             :   false,  /* isInfallible. False in setters. */
   45573             :   false,  /* isMovable.  Not relevant for setters. */
   45574             :   false, /* isEliminatable.  Not relevant for setters. */
   45575             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45576             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45577             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45578             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45579             : };
   45580             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45581             : static_assert(0 < 1, "There is no slot for us");
   45582             : 
   45583             : static bool
   45584           0 : get_MozTransformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45585             : {
   45586           0 :   binding_detail::FastErrorResult rv;
   45587           0 :   DOMString result;
   45588           0 :   self->GetMozTransformOrigin(result, rv);
   45589           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45590           0 :     return false;
   45591             :   }
   45592           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45593           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45594           0 :     return false;
   45595             :   }
   45596           0 :   return true;
   45597             : }
   45598             : 
   45599             : static bool
   45600           0 : set_MozTransformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45601             : {
   45602           0 :   binding_detail::FakeString arg0;
   45603           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45604           0 :     return false;
   45605             :   }
   45606           0 :   binding_detail::FastErrorResult rv;
   45607           0 :   self->SetMozTransformOrigin(NonNullHelper(Constify(arg0)), rv);
   45608           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45609           0 :     return false;
   45610             :   }
   45611           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45612             : 
   45613           0 :   return true;
   45614             : }
   45615             : 
   45616             : static const JSJitInfo MozTransformOrigin_getterinfo = {
   45617             :   { (JSJitGetterOp)get_MozTransformOrigin },
   45618             :   { prototypes::id::CSS2Properties },
   45619             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45620             :   JSJitInfo::Getter,
   45621             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45622             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45623             :   false,  /* isInfallible. False in setters. */
   45624             :   false,  /* isMovable.  Not relevant for setters. */
   45625             :   false, /* isEliminatable.  Not relevant for setters. */
   45626             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45627             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45628             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45629             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45630             : };
   45631             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45632             : static_assert(0 < 1, "There is no slot for us");
   45633             : static const JSJitInfo MozTransformOrigin_setterinfo = {
   45634             :   { (JSJitGetterOp)set_MozTransformOrigin },
   45635             :   { prototypes::id::CSS2Properties },
   45636             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45637             :   JSJitInfo::Setter,
   45638             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45639             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45640             :   false,  /* isInfallible. False in setters. */
   45641             :   false,  /* isMovable.  Not relevant for setters. */
   45642             :   false, /* isEliminatable.  Not relevant for setters. */
   45643             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45644             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45645             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45646             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45647             : };
   45648             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45649             : static_assert(0 < 1, "There is no slot for us");
   45650             : 
   45651             : static bool
   45652           0 : get__moz_transform_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45653             : {
   45654           0 :   binding_detail::FastErrorResult rv;
   45655           0 :   DOMString result;
   45656           0 :   self->GetMozTransformOrigin(result, rv);
   45657           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45658           0 :     return false;
   45659             :   }
   45660           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45661           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45662           0 :     return false;
   45663             :   }
   45664           0 :   return true;
   45665             : }
   45666             : 
   45667             : static bool
   45668           0 : set__moz_transform_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45669             : {
   45670           0 :   binding_detail::FakeString arg0;
   45671           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45672           0 :     return false;
   45673             :   }
   45674           0 :   binding_detail::FastErrorResult rv;
   45675           0 :   self->SetMozTransformOrigin(NonNullHelper(Constify(arg0)), rv);
   45676           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45677           0 :     return false;
   45678             :   }
   45679           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45680             : 
   45681           0 :   return true;
   45682             : }
   45683             : 
   45684             : static const JSJitInfo _moz_transform_origin_getterinfo = {
   45685             :   { (JSJitGetterOp)get__moz_transform_origin },
   45686             :   { prototypes::id::CSS2Properties },
   45687             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45688             :   JSJitInfo::Getter,
   45689             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45690             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45691             :   false,  /* isInfallible. False in setters. */
   45692             :   false,  /* isMovable.  Not relevant for setters. */
   45693             :   false, /* isEliminatable.  Not relevant for setters. */
   45694             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45695             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45696             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45697             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45698             : };
   45699             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45700             : static_assert(0 < 1, "There is no slot for us");
   45701             : static const JSJitInfo _moz_transform_origin_setterinfo = {
   45702             :   { (JSJitGetterOp)set__moz_transform_origin },
   45703             :   { prototypes::id::CSS2Properties },
   45704             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45705             :   JSJitInfo::Setter,
   45706             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45707             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45708             :   false,  /* isInfallible. False in setters. */
   45709             :   false,  /* isMovable.  Not relevant for setters. */
   45710             :   false, /* isEliminatable.  Not relevant for setters. */
   45711             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45712             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45713             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45714             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45715             : };
   45716             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45717             : static_assert(0 < 1, "There is no slot for us");
   45718             : 
   45719             : static bool
   45720           0 : get_MozPerspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45721             : {
   45722           0 :   binding_detail::FastErrorResult rv;
   45723           0 :   DOMString result;
   45724           0 :   self->GetMozPerspectiveOrigin(result, rv);
   45725           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45726           0 :     return false;
   45727             :   }
   45728           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45729           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45730           0 :     return false;
   45731             :   }
   45732           0 :   return true;
   45733             : }
   45734             : 
   45735             : static bool
   45736           0 : set_MozPerspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45737             : {
   45738           0 :   binding_detail::FakeString arg0;
   45739           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45740           0 :     return false;
   45741             :   }
   45742           0 :   binding_detail::FastErrorResult rv;
   45743           0 :   self->SetMozPerspectiveOrigin(NonNullHelper(Constify(arg0)), rv);
   45744           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45745           0 :     return false;
   45746             :   }
   45747           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45748             : 
   45749           0 :   return true;
   45750             : }
   45751             : 
   45752             : static const JSJitInfo MozPerspectiveOrigin_getterinfo = {
   45753             :   { (JSJitGetterOp)get_MozPerspectiveOrigin },
   45754             :   { prototypes::id::CSS2Properties },
   45755             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45756             :   JSJitInfo::Getter,
   45757             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45758             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45759             :   false,  /* isInfallible. False in setters. */
   45760             :   false,  /* isMovable.  Not relevant for setters. */
   45761             :   false, /* isEliminatable.  Not relevant for setters. */
   45762             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45763             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45764             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45765             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45766             : };
   45767             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45768             : static_assert(0 < 1, "There is no slot for us");
   45769             : static const JSJitInfo MozPerspectiveOrigin_setterinfo = {
   45770             :   { (JSJitGetterOp)set_MozPerspectiveOrigin },
   45771             :   { prototypes::id::CSS2Properties },
   45772             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45773             :   JSJitInfo::Setter,
   45774             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45775             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45776             :   false,  /* isInfallible. False in setters. */
   45777             :   false,  /* isMovable.  Not relevant for setters. */
   45778             :   false, /* isEliminatable.  Not relevant for setters. */
   45779             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45780             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45781             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45782             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45783             : };
   45784             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45785             : static_assert(0 < 1, "There is no slot for us");
   45786             : 
   45787             : static bool
   45788           0 : get__moz_perspective_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45789             : {
   45790           0 :   binding_detail::FastErrorResult rv;
   45791           0 :   DOMString result;
   45792           0 :   self->GetMozPerspectiveOrigin(result, rv);
   45793           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45794           0 :     return false;
   45795             :   }
   45796           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45797           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45798           0 :     return false;
   45799             :   }
   45800           0 :   return true;
   45801             : }
   45802             : 
   45803             : static bool
   45804           0 : set__moz_perspective_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45805             : {
   45806           0 :   binding_detail::FakeString arg0;
   45807           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45808           0 :     return false;
   45809             :   }
   45810           0 :   binding_detail::FastErrorResult rv;
   45811           0 :   self->SetMozPerspectiveOrigin(NonNullHelper(Constify(arg0)), rv);
   45812           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45813           0 :     return false;
   45814             :   }
   45815           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45816             : 
   45817           0 :   return true;
   45818             : }
   45819             : 
   45820             : static const JSJitInfo _moz_perspective_origin_getterinfo = {
   45821             :   { (JSJitGetterOp)get__moz_perspective_origin },
   45822             :   { prototypes::id::CSS2Properties },
   45823             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45824             :   JSJitInfo::Getter,
   45825             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45826             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45827             :   false,  /* isInfallible. False in setters. */
   45828             :   false,  /* isMovable.  Not relevant for setters. */
   45829             :   false, /* isEliminatable.  Not relevant for setters. */
   45830             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45831             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45832             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45833             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45834             : };
   45835             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45836             : static_assert(0 < 1, "There is no slot for us");
   45837             : static const JSJitInfo _moz_perspective_origin_setterinfo = {
   45838             :   { (JSJitGetterOp)set__moz_perspective_origin },
   45839             :   { prototypes::id::CSS2Properties },
   45840             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45841             :   JSJitInfo::Setter,
   45842             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45843             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45844             :   false,  /* isInfallible. False in setters. */
   45845             :   false,  /* isMovable.  Not relevant for setters. */
   45846             :   false, /* isEliminatable.  Not relevant for setters. */
   45847             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45848             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45849             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45850             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45851             : };
   45852             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45853             : static_assert(0 < 1, "There is no slot for us");
   45854             : 
   45855             : static bool
   45856           0 : get_MozPerspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45857             : {
   45858           0 :   binding_detail::FastErrorResult rv;
   45859           0 :   DOMString result;
   45860           0 :   self->GetMozPerspective(result, rv);
   45861           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45862           0 :     return false;
   45863             :   }
   45864           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45865           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45866           0 :     return false;
   45867             :   }
   45868           0 :   return true;
   45869             : }
   45870             : 
   45871             : static bool
   45872           0 : set_MozPerspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45873             : {
   45874           0 :   binding_detail::FakeString arg0;
   45875           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45876           0 :     return false;
   45877             :   }
   45878           0 :   binding_detail::FastErrorResult rv;
   45879           0 :   self->SetMozPerspective(NonNullHelper(Constify(arg0)), rv);
   45880           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45881           0 :     return false;
   45882             :   }
   45883           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45884             : 
   45885           0 :   return true;
   45886             : }
   45887             : 
   45888             : static const JSJitInfo MozPerspective_getterinfo = {
   45889             :   { (JSJitGetterOp)get_MozPerspective },
   45890             :   { prototypes::id::CSS2Properties },
   45891             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45892             :   JSJitInfo::Getter,
   45893             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45894             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45895             :   false,  /* isInfallible. False in setters. */
   45896             :   false,  /* isMovable.  Not relevant for setters. */
   45897             :   false, /* isEliminatable.  Not relevant for setters. */
   45898             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45899             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45900             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45901             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45902             : };
   45903             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45904             : static_assert(0 < 1, "There is no slot for us");
   45905             : static const JSJitInfo MozPerspective_setterinfo = {
   45906             :   { (JSJitGetterOp)set_MozPerspective },
   45907             :   { prototypes::id::CSS2Properties },
   45908             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45909             :   JSJitInfo::Setter,
   45910             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45911             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45912             :   false,  /* isInfallible. False in setters. */
   45913             :   false,  /* isMovable.  Not relevant for setters. */
   45914             :   false, /* isEliminatable.  Not relevant for setters. */
   45915             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45916             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45917             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45918             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45919             : };
   45920             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45921             : static_assert(0 < 1, "There is no slot for us");
   45922             : 
   45923             : static bool
   45924           0 : get__moz_perspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45925             : {
   45926           0 :   binding_detail::FastErrorResult rv;
   45927           0 :   DOMString result;
   45928           0 :   self->GetMozPerspective(result, rv);
   45929           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45930           0 :     return false;
   45931             :   }
   45932           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45933           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   45934           0 :     return false;
   45935             :   }
   45936           0 :   return true;
   45937             : }
   45938             : 
   45939             : static bool
   45940           0 : set__moz_perspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   45941             : {
   45942           0 :   binding_detail::FakeString arg0;
   45943           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   45944           0 :     return false;
   45945             :   }
   45946           0 :   binding_detail::FastErrorResult rv;
   45947           0 :   self->SetMozPerspective(NonNullHelper(Constify(arg0)), rv);
   45948           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45949           0 :     return false;
   45950             :   }
   45951           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   45952             : 
   45953           0 :   return true;
   45954             : }
   45955             : 
   45956             : static const JSJitInfo _moz_perspective_getterinfo = {
   45957             :   { (JSJitGetterOp)get__moz_perspective },
   45958             :   { prototypes::id::CSS2Properties },
   45959             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45960             :   JSJitInfo::Getter,
   45961             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45962             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   45963             :   false,  /* isInfallible. False in setters. */
   45964             :   false,  /* isMovable.  Not relevant for setters. */
   45965             :   false, /* isEliminatable.  Not relevant for setters. */
   45966             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45967             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45968             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45969             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45970             : };
   45971             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45972             : static_assert(0 < 1, "There is no slot for us");
   45973             : static const JSJitInfo _moz_perspective_setterinfo = {
   45974             :   { (JSJitGetterOp)set__moz_perspective },
   45975             :   { prototypes::id::CSS2Properties },
   45976             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   45977             :   JSJitInfo::Setter,
   45978             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   45979             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   45980             :   false,  /* isInfallible. False in setters. */
   45981             :   false,  /* isMovable.  Not relevant for setters. */
   45982             :   false, /* isEliminatable.  Not relevant for setters. */
   45983             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   45984             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   45985             :   false,  /* isTypedMethod.  Only relevant for methods. */
   45986             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   45987             : };
   45988             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   45989             : static_assert(0 < 1, "There is no slot for us");
   45990             : 
   45991             : static bool
   45992           0 : get_MozTransformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   45993             : {
   45994           0 :   binding_detail::FastErrorResult rv;
   45995           0 :   DOMString result;
   45996           0 :   self->GetMozTransformStyle(result, rv);
   45997           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   45998           0 :     return false;
   45999             :   }
   46000           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46001           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46002           0 :     return false;
   46003             :   }
   46004           0 :   return true;
   46005             : }
   46006             : 
   46007             : static bool
   46008           0 : set_MozTransformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46009             : {
   46010           0 :   binding_detail::FakeString arg0;
   46011           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46012           0 :     return false;
   46013             :   }
   46014           0 :   binding_detail::FastErrorResult rv;
   46015           0 :   self->SetMozTransformStyle(NonNullHelper(Constify(arg0)), rv);
   46016           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46017           0 :     return false;
   46018             :   }
   46019           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46020             : 
   46021           0 :   return true;
   46022             : }
   46023             : 
   46024             : static const JSJitInfo MozTransformStyle_getterinfo = {
   46025             :   { (JSJitGetterOp)get_MozTransformStyle },
   46026             :   { prototypes::id::CSS2Properties },
   46027             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46028             :   JSJitInfo::Getter,
   46029             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46030             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46031             :   false,  /* isInfallible. False in setters. */
   46032             :   false,  /* isMovable.  Not relevant for setters. */
   46033             :   false, /* isEliminatable.  Not relevant for setters. */
   46034             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46035             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46036             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46037             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46038             : };
   46039             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46040             : static_assert(0 < 1, "There is no slot for us");
   46041             : static const JSJitInfo MozTransformStyle_setterinfo = {
   46042             :   { (JSJitGetterOp)set_MozTransformStyle },
   46043             :   { prototypes::id::CSS2Properties },
   46044             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46045             :   JSJitInfo::Setter,
   46046             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46047             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46048             :   false,  /* isInfallible. False in setters. */
   46049             :   false,  /* isMovable.  Not relevant for setters. */
   46050             :   false, /* isEliminatable.  Not relevant for setters. */
   46051             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46052             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46053             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46054             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46055             : };
   46056             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46057             : static_assert(0 < 1, "There is no slot for us");
   46058             : 
   46059             : static bool
   46060           0 : get__moz_transform_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46061             : {
   46062           0 :   binding_detail::FastErrorResult rv;
   46063           0 :   DOMString result;
   46064           0 :   self->GetMozTransformStyle(result, rv);
   46065           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46066           0 :     return false;
   46067             :   }
   46068           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46069           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46070           0 :     return false;
   46071             :   }
   46072           0 :   return true;
   46073             : }
   46074             : 
   46075             : static bool
   46076           0 : set__moz_transform_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46077             : {
   46078           0 :   binding_detail::FakeString arg0;
   46079           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46080           0 :     return false;
   46081             :   }
   46082           0 :   binding_detail::FastErrorResult rv;
   46083           0 :   self->SetMozTransformStyle(NonNullHelper(Constify(arg0)), rv);
   46084           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46085           0 :     return false;
   46086             :   }
   46087           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46088             : 
   46089           0 :   return true;
   46090             : }
   46091             : 
   46092             : static const JSJitInfo _moz_transform_style_getterinfo = {
   46093             :   { (JSJitGetterOp)get__moz_transform_style },
   46094             :   { prototypes::id::CSS2Properties },
   46095             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46096             :   JSJitInfo::Getter,
   46097             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46098             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46099             :   false,  /* isInfallible. False in setters. */
   46100             :   false,  /* isMovable.  Not relevant for setters. */
   46101             :   false, /* isEliminatable.  Not relevant for setters. */
   46102             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46103             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46104             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46105             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46106             : };
   46107             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46108             : static_assert(0 < 1, "There is no slot for us");
   46109             : static const JSJitInfo _moz_transform_style_setterinfo = {
   46110             :   { (JSJitGetterOp)set__moz_transform_style },
   46111             :   { prototypes::id::CSS2Properties },
   46112             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46113             :   JSJitInfo::Setter,
   46114             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46115             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46116             :   false,  /* isInfallible. False in setters. */
   46117             :   false,  /* isMovable.  Not relevant for setters. */
   46118             :   false, /* isEliminatable.  Not relevant for setters. */
   46119             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46120             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46121             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46122             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46123             : };
   46124             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46125             : static_assert(0 < 1, "There is no slot for us");
   46126             : 
   46127             : static bool
   46128           0 : get_MozBackfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46129             : {
   46130           0 :   binding_detail::FastErrorResult rv;
   46131           0 :   DOMString result;
   46132           0 :   self->GetMozBackfaceVisibility(result, rv);
   46133           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46134           0 :     return false;
   46135             :   }
   46136           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46137           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46138           0 :     return false;
   46139             :   }
   46140           0 :   return true;
   46141             : }
   46142             : 
   46143             : static bool
   46144           0 : set_MozBackfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46145             : {
   46146           0 :   binding_detail::FakeString arg0;
   46147           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46148           0 :     return false;
   46149             :   }
   46150           0 :   binding_detail::FastErrorResult rv;
   46151           0 :   self->SetMozBackfaceVisibility(NonNullHelper(Constify(arg0)), rv);
   46152           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46153           0 :     return false;
   46154             :   }
   46155           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46156             : 
   46157           0 :   return true;
   46158             : }
   46159             : 
   46160             : static const JSJitInfo MozBackfaceVisibility_getterinfo = {
   46161             :   { (JSJitGetterOp)get_MozBackfaceVisibility },
   46162             :   { prototypes::id::CSS2Properties },
   46163             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46164             :   JSJitInfo::Getter,
   46165             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46166             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46167             :   false,  /* isInfallible. False in setters. */
   46168             :   false,  /* isMovable.  Not relevant for setters. */
   46169             :   false, /* isEliminatable.  Not relevant for setters. */
   46170             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46171             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46172             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46173             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46174             : };
   46175             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46176             : static_assert(0 < 1, "There is no slot for us");
   46177             : static const JSJitInfo MozBackfaceVisibility_setterinfo = {
   46178             :   { (JSJitGetterOp)set_MozBackfaceVisibility },
   46179             :   { prototypes::id::CSS2Properties },
   46180             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46181             :   JSJitInfo::Setter,
   46182             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46183             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46184             :   false,  /* isInfallible. False in setters. */
   46185             :   false,  /* isMovable.  Not relevant for setters. */
   46186             :   false, /* isEliminatable.  Not relevant for setters. */
   46187             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46188             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46189             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46190             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46191             : };
   46192             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46193             : static_assert(0 < 1, "There is no slot for us");
   46194             : 
   46195             : static bool
   46196           0 : get__moz_backface_visibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46197             : {
   46198           0 :   binding_detail::FastErrorResult rv;
   46199           0 :   DOMString result;
   46200           0 :   self->GetMozBackfaceVisibility(result, rv);
   46201           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46202           0 :     return false;
   46203             :   }
   46204           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46205           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46206           0 :     return false;
   46207             :   }
   46208           0 :   return true;
   46209             : }
   46210             : 
   46211             : static bool
   46212           0 : set__moz_backface_visibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46213             : {
   46214           0 :   binding_detail::FakeString arg0;
   46215           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46216           0 :     return false;
   46217             :   }
   46218           0 :   binding_detail::FastErrorResult rv;
   46219           0 :   self->SetMozBackfaceVisibility(NonNullHelper(Constify(arg0)), rv);
   46220           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46221           0 :     return false;
   46222             :   }
   46223           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46224             : 
   46225           0 :   return true;
   46226             : }
   46227             : 
   46228             : static const JSJitInfo _moz_backface_visibility_getterinfo = {
   46229             :   { (JSJitGetterOp)get__moz_backface_visibility },
   46230             :   { prototypes::id::CSS2Properties },
   46231             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46232             :   JSJitInfo::Getter,
   46233             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46234             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46235             :   false,  /* isInfallible. False in setters. */
   46236             :   false,  /* isMovable.  Not relevant for setters. */
   46237             :   false, /* isEliminatable.  Not relevant for setters. */
   46238             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46239             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46240             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46241             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46242             : };
   46243             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46244             : static_assert(0 < 1, "There is no slot for us");
   46245             : static const JSJitInfo _moz_backface_visibility_setterinfo = {
   46246             :   { (JSJitGetterOp)set__moz_backface_visibility },
   46247             :   { prototypes::id::CSS2Properties },
   46248             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46249             :   JSJitInfo::Setter,
   46250             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46251             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46252             :   false,  /* isInfallible. False in setters. */
   46253             :   false,  /* isMovable.  Not relevant for setters. */
   46254             :   false, /* isEliminatable.  Not relevant for setters. */
   46255             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46256             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46257             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46258             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46259             : };
   46260             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46261             : static_assert(0 < 1, "There is no slot for us");
   46262             : 
   46263             : static bool
   46264           0 : get_MozBorderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46265             : {
   46266           0 :   binding_detail::FastErrorResult rv;
   46267           0 :   DOMString result;
   46268           0 :   self->GetMozBorderImage(result, rv);
   46269           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46270           0 :     return false;
   46271             :   }
   46272           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46273           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46274           0 :     return false;
   46275             :   }
   46276           0 :   return true;
   46277             : }
   46278             : 
   46279             : static bool
   46280           0 : set_MozBorderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46281             : {
   46282           0 :   binding_detail::FakeString arg0;
   46283           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46284           0 :     return false;
   46285             :   }
   46286           0 :   binding_detail::FastErrorResult rv;
   46287           0 :   self->SetMozBorderImage(NonNullHelper(Constify(arg0)), rv);
   46288           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46289           0 :     return false;
   46290             :   }
   46291           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46292             : 
   46293           0 :   return true;
   46294             : }
   46295             : 
   46296             : static const JSJitInfo MozBorderImage_getterinfo = {
   46297             :   { (JSJitGetterOp)get_MozBorderImage },
   46298             :   { prototypes::id::CSS2Properties },
   46299             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46300             :   JSJitInfo::Getter,
   46301             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46302             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46303             :   false,  /* isInfallible. False in setters. */
   46304             :   false,  /* isMovable.  Not relevant for setters. */
   46305             :   false, /* isEliminatable.  Not relevant for setters. */
   46306             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46307             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46308             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46309             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46310             : };
   46311             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46312             : static_assert(0 < 1, "There is no slot for us");
   46313             : static const JSJitInfo MozBorderImage_setterinfo = {
   46314             :   { (JSJitGetterOp)set_MozBorderImage },
   46315             :   { prototypes::id::CSS2Properties },
   46316             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46317             :   JSJitInfo::Setter,
   46318             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46319             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46320             :   false,  /* isInfallible. False in setters. */
   46321             :   false,  /* isMovable.  Not relevant for setters. */
   46322             :   false, /* isEliminatable.  Not relevant for setters. */
   46323             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46324             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46325             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46326             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46327             : };
   46328             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46329             : static_assert(0 < 1, "There is no slot for us");
   46330             : 
   46331             : static bool
   46332           0 : get__moz_border_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46333             : {
   46334           0 :   binding_detail::FastErrorResult rv;
   46335           0 :   DOMString result;
   46336           0 :   self->GetMozBorderImage(result, rv);
   46337           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46338           0 :     return false;
   46339             :   }
   46340           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46341           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46342           0 :     return false;
   46343             :   }
   46344           0 :   return true;
   46345             : }
   46346             : 
   46347             : static bool
   46348           0 : set__moz_border_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46349             : {
   46350           0 :   binding_detail::FakeString arg0;
   46351           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46352           0 :     return false;
   46353             :   }
   46354           0 :   binding_detail::FastErrorResult rv;
   46355           0 :   self->SetMozBorderImage(NonNullHelper(Constify(arg0)), rv);
   46356           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46357           0 :     return false;
   46358             :   }
   46359           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46360             : 
   46361           0 :   return true;
   46362             : }
   46363             : 
   46364             : static const JSJitInfo _moz_border_image_getterinfo = {
   46365             :   { (JSJitGetterOp)get__moz_border_image },
   46366             :   { prototypes::id::CSS2Properties },
   46367             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46368             :   JSJitInfo::Getter,
   46369             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46370             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46371             :   false,  /* isInfallible. False in setters. */
   46372             :   false,  /* isMovable.  Not relevant for setters. */
   46373             :   false, /* isEliminatable.  Not relevant for setters. */
   46374             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46375             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46376             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46377             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46378             : };
   46379             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46380             : static_assert(0 < 1, "There is no slot for us");
   46381             : static const JSJitInfo _moz_border_image_setterinfo = {
   46382             :   { (JSJitGetterOp)set__moz_border_image },
   46383             :   { prototypes::id::CSS2Properties },
   46384             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46385             :   JSJitInfo::Setter,
   46386             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46387             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46388             :   false,  /* isInfallible. False in setters. */
   46389             :   false,  /* isMovable.  Not relevant for setters. */
   46390             :   false, /* isEliminatable.  Not relevant for setters. */
   46391             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46392             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46393             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46394             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46395             : };
   46396             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46397             : static_assert(0 < 1, "There is no slot for us");
   46398             : 
   46399             : static bool
   46400           0 : get_MozTransition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46401             : {
   46402           0 :   binding_detail::FastErrorResult rv;
   46403           0 :   DOMString result;
   46404           0 :   self->GetMozTransition(result, rv);
   46405           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46406           0 :     return false;
   46407             :   }
   46408           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46409           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46410           0 :     return false;
   46411             :   }
   46412           0 :   return true;
   46413             : }
   46414             : 
   46415             : static bool
   46416           0 : set_MozTransition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46417             : {
   46418           0 :   binding_detail::FakeString arg0;
   46419           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46420           0 :     return false;
   46421             :   }
   46422           0 :   binding_detail::FastErrorResult rv;
   46423           0 :   self->SetMozTransition(NonNullHelper(Constify(arg0)), rv);
   46424           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46425           0 :     return false;
   46426             :   }
   46427           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46428             : 
   46429           0 :   return true;
   46430             : }
   46431             : 
   46432             : static const JSJitInfo MozTransition_getterinfo = {
   46433             :   { (JSJitGetterOp)get_MozTransition },
   46434             :   { prototypes::id::CSS2Properties },
   46435             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46436             :   JSJitInfo::Getter,
   46437             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46438             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46439             :   false,  /* isInfallible. False in setters. */
   46440             :   false,  /* isMovable.  Not relevant for setters. */
   46441             :   false, /* isEliminatable.  Not relevant for setters. */
   46442             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46443             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46444             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46445             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46446             : };
   46447             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46448             : static_assert(0 < 1, "There is no slot for us");
   46449             : static const JSJitInfo MozTransition_setterinfo = {
   46450             :   { (JSJitGetterOp)set_MozTransition },
   46451             :   { prototypes::id::CSS2Properties },
   46452             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46453             :   JSJitInfo::Setter,
   46454             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46455             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46456             :   false,  /* isInfallible. False in setters. */
   46457             :   false,  /* isMovable.  Not relevant for setters. */
   46458             :   false, /* isEliminatable.  Not relevant for setters. */
   46459             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46460             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46461             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46462             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46463             : };
   46464             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46465             : static_assert(0 < 1, "There is no slot for us");
   46466             : 
   46467             : static bool
   46468           0 : get__moz_transition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46469             : {
   46470           0 :   binding_detail::FastErrorResult rv;
   46471           0 :   DOMString result;
   46472           0 :   self->GetMozTransition(result, rv);
   46473           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46474           0 :     return false;
   46475             :   }
   46476           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46477           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46478           0 :     return false;
   46479             :   }
   46480           0 :   return true;
   46481             : }
   46482             : 
   46483             : static bool
   46484           0 : set__moz_transition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46485             : {
   46486           0 :   binding_detail::FakeString arg0;
   46487           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46488           0 :     return false;
   46489             :   }
   46490           0 :   binding_detail::FastErrorResult rv;
   46491           0 :   self->SetMozTransition(NonNullHelper(Constify(arg0)), rv);
   46492           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46493           0 :     return false;
   46494             :   }
   46495           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46496             : 
   46497           0 :   return true;
   46498             : }
   46499             : 
   46500             : static const JSJitInfo _moz_transition_getterinfo = {
   46501             :   { (JSJitGetterOp)get__moz_transition },
   46502             :   { prototypes::id::CSS2Properties },
   46503             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46504             :   JSJitInfo::Getter,
   46505             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46506             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46507             :   false,  /* isInfallible. False in setters. */
   46508             :   false,  /* isMovable.  Not relevant for setters. */
   46509             :   false, /* isEliminatable.  Not relevant for setters. */
   46510             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46511             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46512             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46513             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46514             : };
   46515             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46516             : static_assert(0 < 1, "There is no slot for us");
   46517             : static const JSJitInfo _moz_transition_setterinfo = {
   46518             :   { (JSJitGetterOp)set__moz_transition },
   46519             :   { prototypes::id::CSS2Properties },
   46520             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46521             :   JSJitInfo::Setter,
   46522             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46523             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46524             :   false,  /* isInfallible. False in setters. */
   46525             :   false,  /* isMovable.  Not relevant for setters. */
   46526             :   false, /* isEliminatable.  Not relevant for setters. */
   46527             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46528             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46529             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46530             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46531             : };
   46532             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46533             : static_assert(0 < 1, "There is no slot for us");
   46534             : 
   46535             : static bool
   46536           0 : get_MozTransitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46537             : {
   46538           0 :   binding_detail::FastErrorResult rv;
   46539           0 :   DOMString result;
   46540           0 :   self->GetMozTransitionDelay(result, rv);
   46541           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46542           0 :     return false;
   46543             :   }
   46544           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46545           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46546           0 :     return false;
   46547             :   }
   46548           0 :   return true;
   46549             : }
   46550             : 
   46551             : static bool
   46552           0 : set_MozTransitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46553             : {
   46554           0 :   binding_detail::FakeString arg0;
   46555           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46556           0 :     return false;
   46557             :   }
   46558           0 :   binding_detail::FastErrorResult rv;
   46559           0 :   self->SetMozTransitionDelay(NonNullHelper(Constify(arg0)), rv);
   46560           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46561           0 :     return false;
   46562             :   }
   46563           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46564             : 
   46565           0 :   return true;
   46566             : }
   46567             : 
   46568             : static const JSJitInfo MozTransitionDelay_getterinfo = {
   46569             :   { (JSJitGetterOp)get_MozTransitionDelay },
   46570             :   { prototypes::id::CSS2Properties },
   46571             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46572             :   JSJitInfo::Getter,
   46573             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46574             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46575             :   false,  /* isInfallible. False in setters. */
   46576             :   false,  /* isMovable.  Not relevant for setters. */
   46577             :   false, /* isEliminatable.  Not relevant for setters. */
   46578             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46579             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46580             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46581             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46582             : };
   46583             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46584             : static_assert(0 < 1, "There is no slot for us");
   46585             : static const JSJitInfo MozTransitionDelay_setterinfo = {
   46586             :   { (JSJitGetterOp)set_MozTransitionDelay },
   46587             :   { prototypes::id::CSS2Properties },
   46588             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46589             :   JSJitInfo::Setter,
   46590             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46591             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46592             :   false,  /* isInfallible. False in setters. */
   46593             :   false,  /* isMovable.  Not relevant for setters. */
   46594             :   false, /* isEliminatable.  Not relevant for setters. */
   46595             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46596             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46597             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46598             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46599             : };
   46600             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46601             : static_assert(0 < 1, "There is no slot for us");
   46602             : 
   46603             : static bool
   46604           0 : get__moz_transition_delay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46605             : {
   46606           0 :   binding_detail::FastErrorResult rv;
   46607           0 :   DOMString result;
   46608           0 :   self->GetMozTransitionDelay(result, rv);
   46609           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46610           0 :     return false;
   46611             :   }
   46612           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46613           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46614           0 :     return false;
   46615             :   }
   46616           0 :   return true;
   46617             : }
   46618             : 
   46619             : static bool
   46620           0 : set__moz_transition_delay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46621             : {
   46622           0 :   binding_detail::FakeString arg0;
   46623           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46624           0 :     return false;
   46625             :   }
   46626           0 :   binding_detail::FastErrorResult rv;
   46627           0 :   self->SetMozTransitionDelay(NonNullHelper(Constify(arg0)), rv);
   46628           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46629           0 :     return false;
   46630             :   }
   46631           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46632             : 
   46633           0 :   return true;
   46634             : }
   46635             : 
   46636             : static const JSJitInfo _moz_transition_delay_getterinfo = {
   46637             :   { (JSJitGetterOp)get__moz_transition_delay },
   46638             :   { prototypes::id::CSS2Properties },
   46639             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46640             :   JSJitInfo::Getter,
   46641             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46642             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46643             :   false,  /* isInfallible. False in setters. */
   46644             :   false,  /* isMovable.  Not relevant for setters. */
   46645             :   false, /* isEliminatable.  Not relevant for setters. */
   46646             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46647             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46648             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46649             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46650             : };
   46651             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46652             : static_assert(0 < 1, "There is no slot for us");
   46653             : static const JSJitInfo _moz_transition_delay_setterinfo = {
   46654             :   { (JSJitGetterOp)set__moz_transition_delay },
   46655             :   { prototypes::id::CSS2Properties },
   46656             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46657             :   JSJitInfo::Setter,
   46658             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46659             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46660             :   false,  /* isInfallible. False in setters. */
   46661             :   false,  /* isMovable.  Not relevant for setters. */
   46662             :   false, /* isEliminatable.  Not relevant for setters. */
   46663             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46664             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46665             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46666             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46667             : };
   46668             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46669             : static_assert(0 < 1, "There is no slot for us");
   46670             : 
   46671             : static bool
   46672           0 : get_MozTransitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46673             : {
   46674           0 :   binding_detail::FastErrorResult rv;
   46675           0 :   DOMString result;
   46676           0 :   self->GetMozTransitionDuration(result, rv);
   46677           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46678           0 :     return false;
   46679             :   }
   46680           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46681           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46682           0 :     return false;
   46683             :   }
   46684           0 :   return true;
   46685             : }
   46686             : 
   46687             : static bool
   46688           0 : set_MozTransitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46689             : {
   46690           0 :   binding_detail::FakeString arg0;
   46691           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46692           0 :     return false;
   46693             :   }
   46694           0 :   binding_detail::FastErrorResult rv;
   46695           0 :   self->SetMozTransitionDuration(NonNullHelper(Constify(arg0)), rv);
   46696           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46697           0 :     return false;
   46698             :   }
   46699           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46700             : 
   46701           0 :   return true;
   46702             : }
   46703             : 
   46704             : static const JSJitInfo MozTransitionDuration_getterinfo = {
   46705             :   { (JSJitGetterOp)get_MozTransitionDuration },
   46706             :   { prototypes::id::CSS2Properties },
   46707             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46708             :   JSJitInfo::Getter,
   46709             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46710             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46711             :   false,  /* isInfallible. False in setters. */
   46712             :   false,  /* isMovable.  Not relevant for setters. */
   46713             :   false, /* isEliminatable.  Not relevant for setters. */
   46714             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46715             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46716             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46717             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46718             : };
   46719             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46720             : static_assert(0 < 1, "There is no slot for us");
   46721             : static const JSJitInfo MozTransitionDuration_setterinfo = {
   46722             :   { (JSJitGetterOp)set_MozTransitionDuration },
   46723             :   { prototypes::id::CSS2Properties },
   46724             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46725             :   JSJitInfo::Setter,
   46726             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46727             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46728             :   false,  /* isInfallible. False in setters. */
   46729             :   false,  /* isMovable.  Not relevant for setters. */
   46730             :   false, /* isEliminatable.  Not relevant for setters. */
   46731             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46732             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46733             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46734             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46735             : };
   46736             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46737             : static_assert(0 < 1, "There is no slot for us");
   46738             : 
   46739             : static bool
   46740           0 : get__moz_transition_duration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46741             : {
   46742           0 :   binding_detail::FastErrorResult rv;
   46743           0 :   DOMString result;
   46744           0 :   self->GetMozTransitionDuration(result, rv);
   46745           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46746           0 :     return false;
   46747             :   }
   46748           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46749           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46750           0 :     return false;
   46751             :   }
   46752           0 :   return true;
   46753             : }
   46754             : 
   46755             : static bool
   46756           0 : set__moz_transition_duration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46757             : {
   46758           0 :   binding_detail::FakeString arg0;
   46759           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46760           0 :     return false;
   46761             :   }
   46762           0 :   binding_detail::FastErrorResult rv;
   46763           0 :   self->SetMozTransitionDuration(NonNullHelper(Constify(arg0)), rv);
   46764           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46765           0 :     return false;
   46766             :   }
   46767           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46768             : 
   46769           0 :   return true;
   46770             : }
   46771             : 
   46772             : static const JSJitInfo _moz_transition_duration_getterinfo = {
   46773             :   { (JSJitGetterOp)get__moz_transition_duration },
   46774             :   { prototypes::id::CSS2Properties },
   46775             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46776             :   JSJitInfo::Getter,
   46777             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46778             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46779             :   false,  /* isInfallible. False in setters. */
   46780             :   false,  /* isMovable.  Not relevant for setters. */
   46781             :   false, /* isEliminatable.  Not relevant for setters. */
   46782             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46783             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46784             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46785             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46786             : };
   46787             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46788             : static_assert(0 < 1, "There is no slot for us");
   46789             : static const JSJitInfo _moz_transition_duration_setterinfo = {
   46790             :   { (JSJitGetterOp)set__moz_transition_duration },
   46791             :   { prototypes::id::CSS2Properties },
   46792             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46793             :   JSJitInfo::Setter,
   46794             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46795             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46796             :   false,  /* isInfallible. False in setters. */
   46797             :   false,  /* isMovable.  Not relevant for setters. */
   46798             :   false, /* isEliminatable.  Not relevant for setters. */
   46799             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46800             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46801             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46802             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46803             : };
   46804             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46805             : static_assert(0 < 1, "There is no slot for us");
   46806             : 
   46807             : static bool
   46808           0 : get_MozTransitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46809             : {
   46810           0 :   binding_detail::FastErrorResult rv;
   46811           0 :   DOMString result;
   46812           0 :   self->GetMozTransitionProperty(result, rv);
   46813           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46814           0 :     return false;
   46815             :   }
   46816           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46817           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46818           0 :     return false;
   46819             :   }
   46820           0 :   return true;
   46821             : }
   46822             : 
   46823             : static bool
   46824           0 : set_MozTransitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46825             : {
   46826           0 :   binding_detail::FakeString arg0;
   46827           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46828           0 :     return false;
   46829             :   }
   46830           0 :   binding_detail::FastErrorResult rv;
   46831           0 :   self->SetMozTransitionProperty(NonNullHelper(Constify(arg0)), rv);
   46832           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46833           0 :     return false;
   46834             :   }
   46835           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46836             : 
   46837           0 :   return true;
   46838             : }
   46839             : 
   46840             : static const JSJitInfo MozTransitionProperty_getterinfo = {
   46841             :   { (JSJitGetterOp)get_MozTransitionProperty },
   46842             :   { prototypes::id::CSS2Properties },
   46843             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46844             :   JSJitInfo::Getter,
   46845             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46846             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46847             :   false,  /* isInfallible. False in setters. */
   46848             :   false,  /* isMovable.  Not relevant for setters. */
   46849             :   false, /* isEliminatable.  Not relevant for setters. */
   46850             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46851             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46852             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46853             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46854             : };
   46855             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46856             : static_assert(0 < 1, "There is no slot for us");
   46857             : static const JSJitInfo MozTransitionProperty_setterinfo = {
   46858             :   { (JSJitGetterOp)set_MozTransitionProperty },
   46859             :   { prototypes::id::CSS2Properties },
   46860             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46861             :   JSJitInfo::Setter,
   46862             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46863             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46864             :   false,  /* isInfallible. False in setters. */
   46865             :   false,  /* isMovable.  Not relevant for setters. */
   46866             :   false, /* isEliminatable.  Not relevant for setters. */
   46867             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46868             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46869             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46870             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46871             : };
   46872             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46873             : static_assert(0 < 1, "There is no slot for us");
   46874             : 
   46875             : static bool
   46876           0 : get__moz_transition_property(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46877             : {
   46878           0 :   binding_detail::FastErrorResult rv;
   46879           0 :   DOMString result;
   46880           0 :   self->GetMozTransitionProperty(result, rv);
   46881           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46882           0 :     return false;
   46883             :   }
   46884           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46885           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46886           0 :     return false;
   46887             :   }
   46888           0 :   return true;
   46889             : }
   46890             : 
   46891             : static bool
   46892           0 : set__moz_transition_property(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46893             : {
   46894           0 :   binding_detail::FakeString arg0;
   46895           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46896           0 :     return false;
   46897             :   }
   46898           0 :   binding_detail::FastErrorResult rv;
   46899           0 :   self->SetMozTransitionProperty(NonNullHelper(Constify(arg0)), rv);
   46900           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46901           0 :     return false;
   46902             :   }
   46903           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46904             : 
   46905           0 :   return true;
   46906             : }
   46907             : 
   46908             : static const JSJitInfo _moz_transition_property_getterinfo = {
   46909             :   { (JSJitGetterOp)get__moz_transition_property },
   46910             :   { prototypes::id::CSS2Properties },
   46911             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46912             :   JSJitInfo::Getter,
   46913             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46914             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46915             :   false,  /* isInfallible. False in setters. */
   46916             :   false,  /* isMovable.  Not relevant for setters. */
   46917             :   false, /* isEliminatable.  Not relevant for setters. */
   46918             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46919             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46920             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46921             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46922             : };
   46923             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46924             : static_assert(0 < 1, "There is no slot for us");
   46925             : static const JSJitInfo _moz_transition_property_setterinfo = {
   46926             :   { (JSJitGetterOp)set__moz_transition_property },
   46927             :   { prototypes::id::CSS2Properties },
   46928             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46929             :   JSJitInfo::Setter,
   46930             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46931             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   46932             :   false,  /* isInfallible. False in setters. */
   46933             :   false,  /* isMovable.  Not relevant for setters. */
   46934             :   false, /* isEliminatable.  Not relevant for setters. */
   46935             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46936             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46937             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46938             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46939             : };
   46940             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46941             : static_assert(0 < 1, "There is no slot for us");
   46942             : 
   46943             : static bool
   46944           0 : get_MozTransitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   46945             : {
   46946           0 :   binding_detail::FastErrorResult rv;
   46947           0 :   DOMString result;
   46948           0 :   self->GetMozTransitionTimingFunction(result, rv);
   46949           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46950           0 :     return false;
   46951             :   }
   46952           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46953           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   46954           0 :     return false;
   46955             :   }
   46956           0 :   return true;
   46957             : }
   46958             : 
   46959             : static bool
   46960           0 : set_MozTransitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   46961             : {
   46962           0 :   binding_detail::FakeString arg0;
   46963           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   46964           0 :     return false;
   46965             :   }
   46966           0 :   binding_detail::FastErrorResult rv;
   46967           0 :   self->SetMozTransitionTimingFunction(NonNullHelper(Constify(arg0)), rv);
   46968           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   46969           0 :     return false;
   46970             :   }
   46971           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   46972             : 
   46973           0 :   return true;
   46974             : }
   46975             : 
   46976             : static const JSJitInfo MozTransitionTimingFunction_getterinfo = {
   46977             :   { (JSJitGetterOp)get_MozTransitionTimingFunction },
   46978             :   { prototypes::id::CSS2Properties },
   46979             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46980             :   JSJitInfo::Getter,
   46981             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46982             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   46983             :   false,  /* isInfallible. False in setters. */
   46984             :   false,  /* isMovable.  Not relevant for setters. */
   46985             :   false, /* isEliminatable.  Not relevant for setters. */
   46986             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   46987             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   46988             :   false,  /* isTypedMethod.  Only relevant for methods. */
   46989             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   46990             : };
   46991             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   46992             : static_assert(0 < 1, "There is no slot for us");
   46993             : static const JSJitInfo MozTransitionTimingFunction_setterinfo = {
   46994             :   { (JSJitGetterOp)set_MozTransitionTimingFunction },
   46995             :   { prototypes::id::CSS2Properties },
   46996             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   46997             :   JSJitInfo::Setter,
   46998             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   46999             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47000             :   false,  /* isInfallible. False in setters. */
   47001             :   false,  /* isMovable.  Not relevant for setters. */
   47002             :   false, /* isEliminatable.  Not relevant for setters. */
   47003             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47004             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47005             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47006             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47007             : };
   47008             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47009             : static_assert(0 < 1, "There is no slot for us");
   47010             : 
   47011             : static bool
   47012           0 : get__moz_transition_timing_function(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47013             : {
   47014           0 :   binding_detail::FastErrorResult rv;
   47015           0 :   DOMString result;
   47016           0 :   self->GetMozTransitionTimingFunction(result, rv);
   47017           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47018           0 :     return false;
   47019             :   }
   47020           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47021           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47022           0 :     return false;
   47023             :   }
   47024           0 :   return true;
   47025             : }
   47026             : 
   47027             : static bool
   47028           0 : set__moz_transition_timing_function(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47029             : {
   47030           0 :   binding_detail::FakeString arg0;
   47031           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47032           0 :     return false;
   47033             :   }
   47034           0 :   binding_detail::FastErrorResult rv;
   47035           0 :   self->SetMozTransitionTimingFunction(NonNullHelper(Constify(arg0)), rv);
   47036           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47037           0 :     return false;
   47038             :   }
   47039           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47040             : 
   47041           0 :   return true;
   47042             : }
   47043             : 
   47044             : static const JSJitInfo _moz_transition_timing_function_getterinfo = {
   47045             :   { (JSJitGetterOp)get__moz_transition_timing_function },
   47046             :   { prototypes::id::CSS2Properties },
   47047             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47048             :   JSJitInfo::Getter,
   47049             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47050             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47051             :   false,  /* isInfallible. False in setters. */
   47052             :   false,  /* isMovable.  Not relevant for setters. */
   47053             :   false, /* isEliminatable.  Not relevant for setters. */
   47054             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47055             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47056             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47057             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47058             : };
   47059             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47060             : static_assert(0 < 1, "There is no slot for us");
   47061             : static const JSJitInfo _moz_transition_timing_function_setterinfo = {
   47062             :   { (JSJitGetterOp)set__moz_transition_timing_function },
   47063             :   { prototypes::id::CSS2Properties },
   47064             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47065             :   JSJitInfo::Setter,
   47066             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47067             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47068             :   false,  /* isInfallible. False in setters. */
   47069             :   false,  /* isMovable.  Not relevant for setters. */
   47070             :   false, /* isEliminatable.  Not relevant for setters. */
   47071             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47072             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47073             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47074             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47075             : };
   47076             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47077             : static_assert(0 < 1, "There is no slot for us");
   47078             : 
   47079             : static bool
   47080           0 : get_MozAnimation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47081             : {
   47082           0 :   binding_detail::FastErrorResult rv;
   47083           0 :   DOMString result;
   47084           0 :   self->GetMozAnimation(result, rv);
   47085           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47086           0 :     return false;
   47087             :   }
   47088           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47089           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47090           0 :     return false;
   47091             :   }
   47092           0 :   return true;
   47093             : }
   47094             : 
   47095             : static bool
   47096           0 : set_MozAnimation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47097             : {
   47098           0 :   binding_detail::FakeString arg0;
   47099           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47100           0 :     return false;
   47101             :   }
   47102           0 :   binding_detail::FastErrorResult rv;
   47103           0 :   self->SetMozAnimation(NonNullHelper(Constify(arg0)), rv);
   47104           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47105           0 :     return false;
   47106             :   }
   47107           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47108             : 
   47109           0 :   return true;
   47110             : }
   47111             : 
   47112             : static const JSJitInfo MozAnimation_getterinfo = {
   47113             :   { (JSJitGetterOp)get_MozAnimation },
   47114             :   { prototypes::id::CSS2Properties },
   47115             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47116             :   JSJitInfo::Getter,
   47117             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47118             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47119             :   false,  /* isInfallible. False in setters. */
   47120             :   false,  /* isMovable.  Not relevant for setters. */
   47121             :   false, /* isEliminatable.  Not relevant for setters. */
   47122             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47123             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47124             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47125             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47126             : };
   47127             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47128             : static_assert(0 < 1, "There is no slot for us");
   47129             : static const JSJitInfo MozAnimation_setterinfo = {
   47130             :   { (JSJitGetterOp)set_MozAnimation },
   47131             :   { prototypes::id::CSS2Properties },
   47132             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47133             :   JSJitInfo::Setter,
   47134             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47135             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47136             :   false,  /* isInfallible. False in setters. */
   47137             :   false,  /* isMovable.  Not relevant for setters. */
   47138             :   false, /* isEliminatable.  Not relevant for setters. */
   47139             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47140             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47141             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47142             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47143             : };
   47144             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47145             : static_assert(0 < 1, "There is no slot for us");
   47146             : 
   47147             : static bool
   47148           0 : get__moz_animation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47149             : {
   47150           0 :   binding_detail::FastErrorResult rv;
   47151           0 :   DOMString result;
   47152           0 :   self->GetMozAnimation(result, rv);
   47153           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47154           0 :     return false;
   47155             :   }
   47156           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47157           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47158           0 :     return false;
   47159             :   }
   47160           0 :   return true;
   47161             : }
   47162             : 
   47163             : static bool
   47164           0 : set__moz_animation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47165             : {
   47166           0 :   binding_detail::FakeString arg0;
   47167           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47168           0 :     return false;
   47169             :   }
   47170           0 :   binding_detail::FastErrorResult rv;
   47171           0 :   self->SetMozAnimation(NonNullHelper(Constify(arg0)), rv);
   47172           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47173           0 :     return false;
   47174             :   }
   47175           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47176             : 
   47177           0 :   return true;
   47178             : }
   47179             : 
   47180             : static const JSJitInfo _moz_animation_getterinfo = {
   47181             :   { (JSJitGetterOp)get__moz_animation },
   47182             :   { prototypes::id::CSS2Properties },
   47183             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47184             :   JSJitInfo::Getter,
   47185             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47186             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47187             :   false,  /* isInfallible. False in setters. */
   47188             :   false,  /* isMovable.  Not relevant for setters. */
   47189             :   false, /* isEliminatable.  Not relevant for setters. */
   47190             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47191             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47192             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47193             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47194             : };
   47195             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47196             : static_assert(0 < 1, "There is no slot for us");
   47197             : static const JSJitInfo _moz_animation_setterinfo = {
   47198             :   { (JSJitGetterOp)set__moz_animation },
   47199             :   { prototypes::id::CSS2Properties },
   47200             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47201             :   JSJitInfo::Setter,
   47202             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47203             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47204             :   false,  /* isInfallible. False in setters. */
   47205             :   false,  /* isMovable.  Not relevant for setters. */
   47206             :   false, /* isEliminatable.  Not relevant for setters. */
   47207             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47208             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47209             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47210             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47211             : };
   47212             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47213             : static_assert(0 < 1, "There is no slot for us");
   47214             : 
   47215             : static bool
   47216           0 : get_MozAnimationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47217             : {
   47218           0 :   binding_detail::FastErrorResult rv;
   47219           0 :   DOMString result;
   47220           0 :   self->GetMozAnimationDelay(result, rv);
   47221           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47222           0 :     return false;
   47223             :   }
   47224           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47225           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47226           0 :     return false;
   47227             :   }
   47228           0 :   return true;
   47229             : }
   47230             : 
   47231             : static bool
   47232           0 : set_MozAnimationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47233             : {
   47234           0 :   binding_detail::FakeString arg0;
   47235           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47236           0 :     return false;
   47237             :   }
   47238           0 :   binding_detail::FastErrorResult rv;
   47239           0 :   self->SetMozAnimationDelay(NonNullHelper(Constify(arg0)), rv);
   47240           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47241           0 :     return false;
   47242             :   }
   47243           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47244             : 
   47245           0 :   return true;
   47246             : }
   47247             : 
   47248             : static const JSJitInfo MozAnimationDelay_getterinfo = {
   47249             :   { (JSJitGetterOp)get_MozAnimationDelay },
   47250             :   { prototypes::id::CSS2Properties },
   47251             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47252             :   JSJitInfo::Getter,
   47253             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47254             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47255             :   false,  /* isInfallible. False in setters. */
   47256             :   false,  /* isMovable.  Not relevant for setters. */
   47257             :   false, /* isEliminatable.  Not relevant for setters. */
   47258             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47259             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47260             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47261             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47262             : };
   47263             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47264             : static_assert(0 < 1, "There is no slot for us");
   47265             : static const JSJitInfo MozAnimationDelay_setterinfo = {
   47266             :   { (JSJitGetterOp)set_MozAnimationDelay },
   47267             :   { prototypes::id::CSS2Properties },
   47268             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47269             :   JSJitInfo::Setter,
   47270             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47271             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47272             :   false,  /* isInfallible. False in setters. */
   47273             :   false,  /* isMovable.  Not relevant for setters. */
   47274             :   false, /* isEliminatable.  Not relevant for setters. */
   47275             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47276             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47277             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47278             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47279             : };
   47280             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47281             : static_assert(0 < 1, "There is no slot for us");
   47282             : 
   47283             : static bool
   47284           0 : get__moz_animation_delay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47285             : {
   47286           0 :   binding_detail::FastErrorResult rv;
   47287           0 :   DOMString result;
   47288           0 :   self->GetMozAnimationDelay(result, rv);
   47289           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47290           0 :     return false;
   47291             :   }
   47292           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47293           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47294           0 :     return false;
   47295             :   }
   47296           0 :   return true;
   47297             : }
   47298             : 
   47299             : static bool
   47300           0 : set__moz_animation_delay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47301             : {
   47302           0 :   binding_detail::FakeString arg0;
   47303           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47304           0 :     return false;
   47305             :   }
   47306           0 :   binding_detail::FastErrorResult rv;
   47307           0 :   self->SetMozAnimationDelay(NonNullHelper(Constify(arg0)), rv);
   47308           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47309           0 :     return false;
   47310             :   }
   47311           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47312             : 
   47313           0 :   return true;
   47314             : }
   47315             : 
   47316             : static const JSJitInfo _moz_animation_delay_getterinfo = {
   47317             :   { (JSJitGetterOp)get__moz_animation_delay },
   47318             :   { prototypes::id::CSS2Properties },
   47319             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47320             :   JSJitInfo::Getter,
   47321             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47322             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47323             :   false,  /* isInfallible. False in setters. */
   47324             :   false,  /* isMovable.  Not relevant for setters. */
   47325             :   false, /* isEliminatable.  Not relevant for setters. */
   47326             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47327             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47328             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47329             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47330             : };
   47331             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47332             : static_assert(0 < 1, "There is no slot for us");
   47333             : static const JSJitInfo _moz_animation_delay_setterinfo = {
   47334             :   { (JSJitGetterOp)set__moz_animation_delay },
   47335             :   { prototypes::id::CSS2Properties },
   47336             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47337             :   JSJitInfo::Setter,
   47338             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47339             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47340             :   false,  /* isInfallible. False in setters. */
   47341             :   false,  /* isMovable.  Not relevant for setters. */
   47342             :   false, /* isEliminatable.  Not relevant for setters. */
   47343             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47344             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47345             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47346             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47347             : };
   47348             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47349             : static_assert(0 < 1, "There is no slot for us");
   47350             : 
   47351             : static bool
   47352           0 : get_MozAnimationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47353             : {
   47354           0 :   binding_detail::FastErrorResult rv;
   47355           0 :   DOMString result;
   47356           0 :   self->GetMozAnimationDirection(result, rv);
   47357           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47358           0 :     return false;
   47359             :   }
   47360           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47361           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47362           0 :     return false;
   47363             :   }
   47364           0 :   return true;
   47365             : }
   47366             : 
   47367             : static bool
   47368           0 : set_MozAnimationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47369             : {
   47370           0 :   binding_detail::FakeString arg0;
   47371           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47372           0 :     return false;
   47373             :   }
   47374           0 :   binding_detail::FastErrorResult rv;
   47375           0 :   self->SetMozAnimationDirection(NonNullHelper(Constify(arg0)), rv);
   47376           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47377           0 :     return false;
   47378             :   }
   47379           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47380             : 
   47381           0 :   return true;
   47382             : }
   47383             : 
   47384             : static const JSJitInfo MozAnimationDirection_getterinfo = {
   47385             :   { (JSJitGetterOp)get_MozAnimationDirection },
   47386             :   { prototypes::id::CSS2Properties },
   47387             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47388             :   JSJitInfo::Getter,
   47389             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47390             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47391             :   false,  /* isInfallible. False in setters. */
   47392             :   false,  /* isMovable.  Not relevant for setters. */
   47393             :   false, /* isEliminatable.  Not relevant for setters. */
   47394             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47395             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47396             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47397             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47398             : };
   47399             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47400             : static_assert(0 < 1, "There is no slot for us");
   47401             : static const JSJitInfo MozAnimationDirection_setterinfo = {
   47402             :   { (JSJitGetterOp)set_MozAnimationDirection },
   47403             :   { prototypes::id::CSS2Properties },
   47404             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47405             :   JSJitInfo::Setter,
   47406             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47407             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47408             :   false,  /* isInfallible. False in setters. */
   47409             :   false,  /* isMovable.  Not relevant for setters. */
   47410             :   false, /* isEliminatable.  Not relevant for setters. */
   47411             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47412             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47413             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47414             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47415             : };
   47416             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47417             : static_assert(0 < 1, "There is no slot for us");
   47418             : 
   47419             : static bool
   47420           0 : get__moz_animation_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47421             : {
   47422           0 :   binding_detail::FastErrorResult rv;
   47423           0 :   DOMString result;
   47424           0 :   self->GetMozAnimationDirection(result, rv);
   47425           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47426           0 :     return false;
   47427             :   }
   47428           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47429           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47430           0 :     return false;
   47431             :   }
   47432           0 :   return true;
   47433             : }
   47434             : 
   47435             : static bool
   47436           0 : set__moz_animation_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47437             : {
   47438           0 :   binding_detail::FakeString arg0;
   47439           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47440           0 :     return false;
   47441             :   }
   47442           0 :   binding_detail::FastErrorResult rv;
   47443           0 :   self->SetMozAnimationDirection(NonNullHelper(Constify(arg0)), rv);
   47444           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47445           0 :     return false;
   47446             :   }
   47447           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47448             : 
   47449           0 :   return true;
   47450             : }
   47451             : 
   47452             : static const JSJitInfo _moz_animation_direction_getterinfo = {
   47453             :   { (JSJitGetterOp)get__moz_animation_direction },
   47454             :   { prototypes::id::CSS2Properties },
   47455             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47456             :   JSJitInfo::Getter,
   47457             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47458             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47459             :   false,  /* isInfallible. False in setters. */
   47460             :   false,  /* isMovable.  Not relevant for setters. */
   47461             :   false, /* isEliminatable.  Not relevant for setters. */
   47462             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47463             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47464             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47465             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47466             : };
   47467             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47468             : static_assert(0 < 1, "There is no slot for us");
   47469             : static const JSJitInfo _moz_animation_direction_setterinfo = {
   47470             :   { (JSJitGetterOp)set__moz_animation_direction },
   47471             :   { prototypes::id::CSS2Properties },
   47472             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47473             :   JSJitInfo::Setter,
   47474             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47475             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47476             :   false,  /* isInfallible. False in setters. */
   47477             :   false,  /* isMovable.  Not relevant for setters. */
   47478             :   false, /* isEliminatable.  Not relevant for setters. */
   47479             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47480             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47481             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47482             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47483             : };
   47484             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47485             : static_assert(0 < 1, "There is no slot for us");
   47486             : 
   47487             : static bool
   47488           0 : get_MozAnimationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47489             : {
   47490           0 :   binding_detail::FastErrorResult rv;
   47491           0 :   DOMString result;
   47492           0 :   self->GetMozAnimationDuration(result, rv);
   47493           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47494           0 :     return false;
   47495             :   }
   47496           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47497           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47498           0 :     return false;
   47499             :   }
   47500           0 :   return true;
   47501             : }
   47502             : 
   47503             : static bool
   47504           0 : set_MozAnimationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47505             : {
   47506           0 :   binding_detail::FakeString arg0;
   47507           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47508           0 :     return false;
   47509             :   }
   47510           0 :   binding_detail::FastErrorResult rv;
   47511           0 :   self->SetMozAnimationDuration(NonNullHelper(Constify(arg0)), rv);
   47512           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47513           0 :     return false;
   47514             :   }
   47515           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47516             : 
   47517           0 :   return true;
   47518             : }
   47519             : 
   47520             : static const JSJitInfo MozAnimationDuration_getterinfo = {
   47521             :   { (JSJitGetterOp)get_MozAnimationDuration },
   47522             :   { prototypes::id::CSS2Properties },
   47523             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47524             :   JSJitInfo::Getter,
   47525             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47526             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47527             :   false,  /* isInfallible. False in setters. */
   47528             :   false,  /* isMovable.  Not relevant for setters. */
   47529             :   false, /* isEliminatable.  Not relevant for setters. */
   47530             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47531             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47532             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47533             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47534             : };
   47535             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47536             : static_assert(0 < 1, "There is no slot for us");
   47537             : static const JSJitInfo MozAnimationDuration_setterinfo = {
   47538             :   { (JSJitGetterOp)set_MozAnimationDuration },
   47539             :   { prototypes::id::CSS2Properties },
   47540             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47541             :   JSJitInfo::Setter,
   47542             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47543             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47544             :   false,  /* isInfallible. False in setters. */
   47545             :   false,  /* isMovable.  Not relevant for setters. */
   47546             :   false, /* isEliminatable.  Not relevant for setters. */
   47547             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47548             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47549             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47550             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47551             : };
   47552             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47553             : static_assert(0 < 1, "There is no slot for us");
   47554             : 
   47555             : static bool
   47556           0 : get__moz_animation_duration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47557             : {
   47558           0 :   binding_detail::FastErrorResult rv;
   47559           0 :   DOMString result;
   47560           0 :   self->GetMozAnimationDuration(result, rv);
   47561           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47562           0 :     return false;
   47563             :   }
   47564           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47565           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47566           0 :     return false;
   47567             :   }
   47568           0 :   return true;
   47569             : }
   47570             : 
   47571             : static bool
   47572           0 : set__moz_animation_duration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47573             : {
   47574           0 :   binding_detail::FakeString arg0;
   47575           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47576           0 :     return false;
   47577             :   }
   47578           0 :   binding_detail::FastErrorResult rv;
   47579           0 :   self->SetMozAnimationDuration(NonNullHelper(Constify(arg0)), rv);
   47580           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47581           0 :     return false;
   47582             :   }
   47583           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47584             : 
   47585           0 :   return true;
   47586             : }
   47587             : 
   47588             : static const JSJitInfo _moz_animation_duration_getterinfo = {
   47589             :   { (JSJitGetterOp)get__moz_animation_duration },
   47590             :   { prototypes::id::CSS2Properties },
   47591             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47592             :   JSJitInfo::Getter,
   47593             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47594             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47595             :   false,  /* isInfallible. False in setters. */
   47596             :   false,  /* isMovable.  Not relevant for setters. */
   47597             :   false, /* isEliminatable.  Not relevant for setters. */
   47598             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47599             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47600             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47601             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47602             : };
   47603             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47604             : static_assert(0 < 1, "There is no slot for us");
   47605             : static const JSJitInfo _moz_animation_duration_setterinfo = {
   47606             :   { (JSJitGetterOp)set__moz_animation_duration },
   47607             :   { prototypes::id::CSS2Properties },
   47608             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47609             :   JSJitInfo::Setter,
   47610             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47611             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47612             :   false,  /* isInfallible. False in setters. */
   47613             :   false,  /* isMovable.  Not relevant for setters. */
   47614             :   false, /* isEliminatable.  Not relevant for setters. */
   47615             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47616             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47617             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47618             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47619             : };
   47620             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47621             : static_assert(0 < 1, "There is no slot for us");
   47622             : 
   47623             : static bool
   47624           0 : get_MozAnimationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47625             : {
   47626           0 :   binding_detail::FastErrorResult rv;
   47627           0 :   DOMString result;
   47628           0 :   self->GetMozAnimationFillMode(result, rv);
   47629           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47630           0 :     return false;
   47631             :   }
   47632           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47633           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47634           0 :     return false;
   47635             :   }
   47636           0 :   return true;
   47637             : }
   47638             : 
   47639             : static bool
   47640           0 : set_MozAnimationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47641             : {
   47642           0 :   binding_detail::FakeString arg0;
   47643           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47644           0 :     return false;
   47645             :   }
   47646           0 :   binding_detail::FastErrorResult rv;
   47647           0 :   self->SetMozAnimationFillMode(NonNullHelper(Constify(arg0)), rv);
   47648           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47649           0 :     return false;
   47650             :   }
   47651           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47652             : 
   47653           0 :   return true;
   47654             : }
   47655             : 
   47656             : static const JSJitInfo MozAnimationFillMode_getterinfo = {
   47657             :   { (JSJitGetterOp)get_MozAnimationFillMode },
   47658             :   { prototypes::id::CSS2Properties },
   47659             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47660             :   JSJitInfo::Getter,
   47661             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47662             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47663             :   false,  /* isInfallible. False in setters. */
   47664             :   false,  /* isMovable.  Not relevant for setters. */
   47665             :   false, /* isEliminatable.  Not relevant for setters. */
   47666             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47667             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47668             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47669             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47670             : };
   47671             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47672             : static_assert(0 < 1, "There is no slot for us");
   47673             : static const JSJitInfo MozAnimationFillMode_setterinfo = {
   47674             :   { (JSJitGetterOp)set_MozAnimationFillMode },
   47675             :   { prototypes::id::CSS2Properties },
   47676             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47677             :   JSJitInfo::Setter,
   47678             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47679             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47680             :   false,  /* isInfallible. False in setters. */
   47681             :   false,  /* isMovable.  Not relevant for setters. */
   47682             :   false, /* isEliminatable.  Not relevant for setters. */
   47683             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47684             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47685             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47686             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47687             : };
   47688             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47689             : static_assert(0 < 1, "There is no slot for us");
   47690             : 
   47691             : static bool
   47692           0 : get__moz_animation_fill_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47693             : {
   47694           0 :   binding_detail::FastErrorResult rv;
   47695           0 :   DOMString result;
   47696           0 :   self->GetMozAnimationFillMode(result, rv);
   47697           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47698           0 :     return false;
   47699             :   }
   47700           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47701           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47702           0 :     return false;
   47703             :   }
   47704           0 :   return true;
   47705             : }
   47706             : 
   47707             : static bool
   47708           0 : set__moz_animation_fill_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47709             : {
   47710           0 :   binding_detail::FakeString arg0;
   47711           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47712           0 :     return false;
   47713             :   }
   47714           0 :   binding_detail::FastErrorResult rv;
   47715           0 :   self->SetMozAnimationFillMode(NonNullHelper(Constify(arg0)), rv);
   47716           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47717           0 :     return false;
   47718             :   }
   47719           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47720             : 
   47721           0 :   return true;
   47722             : }
   47723             : 
   47724             : static const JSJitInfo _moz_animation_fill_mode_getterinfo = {
   47725             :   { (JSJitGetterOp)get__moz_animation_fill_mode },
   47726             :   { prototypes::id::CSS2Properties },
   47727             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47728             :   JSJitInfo::Getter,
   47729             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47730             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47731             :   false,  /* isInfallible. False in setters. */
   47732             :   false,  /* isMovable.  Not relevant for setters. */
   47733             :   false, /* isEliminatable.  Not relevant for setters. */
   47734             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47735             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47736             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47737             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47738             : };
   47739             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47740             : static_assert(0 < 1, "There is no slot for us");
   47741             : static const JSJitInfo _moz_animation_fill_mode_setterinfo = {
   47742             :   { (JSJitGetterOp)set__moz_animation_fill_mode },
   47743             :   { prototypes::id::CSS2Properties },
   47744             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47745             :   JSJitInfo::Setter,
   47746             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47747             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47748             :   false,  /* isInfallible. False in setters. */
   47749             :   false,  /* isMovable.  Not relevant for setters. */
   47750             :   false, /* isEliminatable.  Not relevant for setters. */
   47751             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47752             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47753             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47754             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47755             : };
   47756             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47757             : static_assert(0 < 1, "There is no slot for us");
   47758             : 
   47759             : static bool
   47760           0 : get_MozAnimationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47761             : {
   47762           0 :   binding_detail::FastErrorResult rv;
   47763           0 :   DOMString result;
   47764           0 :   self->GetMozAnimationIterationCount(result, rv);
   47765           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47766           0 :     return false;
   47767             :   }
   47768           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47769           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47770           0 :     return false;
   47771             :   }
   47772           0 :   return true;
   47773             : }
   47774             : 
   47775             : static bool
   47776           0 : set_MozAnimationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47777             : {
   47778           0 :   binding_detail::FakeString arg0;
   47779           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47780           0 :     return false;
   47781             :   }
   47782           0 :   binding_detail::FastErrorResult rv;
   47783           0 :   self->SetMozAnimationIterationCount(NonNullHelper(Constify(arg0)), rv);
   47784           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47785           0 :     return false;
   47786             :   }
   47787           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47788             : 
   47789           0 :   return true;
   47790             : }
   47791             : 
   47792             : static const JSJitInfo MozAnimationIterationCount_getterinfo = {
   47793             :   { (JSJitGetterOp)get_MozAnimationIterationCount },
   47794             :   { prototypes::id::CSS2Properties },
   47795             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47796             :   JSJitInfo::Getter,
   47797             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47798             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47799             :   false,  /* isInfallible. False in setters. */
   47800             :   false,  /* isMovable.  Not relevant for setters. */
   47801             :   false, /* isEliminatable.  Not relevant for setters. */
   47802             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47803             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47804             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47805             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47806             : };
   47807             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47808             : static_assert(0 < 1, "There is no slot for us");
   47809             : static const JSJitInfo MozAnimationIterationCount_setterinfo = {
   47810             :   { (JSJitGetterOp)set_MozAnimationIterationCount },
   47811             :   { prototypes::id::CSS2Properties },
   47812             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47813             :   JSJitInfo::Setter,
   47814             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47815             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47816             :   false,  /* isInfallible. False in setters. */
   47817             :   false,  /* isMovable.  Not relevant for setters. */
   47818             :   false, /* isEliminatable.  Not relevant for setters. */
   47819             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47820             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47821             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47822             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47823             : };
   47824             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47825             : static_assert(0 < 1, "There is no slot for us");
   47826             : 
   47827             : static bool
   47828           0 : get__moz_animation_iteration_count(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47829             : {
   47830           0 :   binding_detail::FastErrorResult rv;
   47831           0 :   DOMString result;
   47832           0 :   self->GetMozAnimationIterationCount(result, rv);
   47833           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47834           0 :     return false;
   47835             :   }
   47836           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47837           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47838           0 :     return false;
   47839             :   }
   47840           0 :   return true;
   47841             : }
   47842             : 
   47843             : static bool
   47844           0 : set__moz_animation_iteration_count(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47845             : {
   47846           0 :   binding_detail::FakeString arg0;
   47847           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47848           0 :     return false;
   47849             :   }
   47850           0 :   binding_detail::FastErrorResult rv;
   47851           0 :   self->SetMozAnimationIterationCount(NonNullHelper(Constify(arg0)), rv);
   47852           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47853           0 :     return false;
   47854             :   }
   47855           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47856             : 
   47857           0 :   return true;
   47858             : }
   47859             : 
   47860             : static const JSJitInfo _moz_animation_iteration_count_getterinfo = {
   47861             :   { (JSJitGetterOp)get__moz_animation_iteration_count },
   47862             :   { prototypes::id::CSS2Properties },
   47863             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47864             :   JSJitInfo::Getter,
   47865             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47866             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47867             :   false,  /* isInfallible. False in setters. */
   47868             :   false,  /* isMovable.  Not relevant for setters. */
   47869             :   false, /* isEliminatable.  Not relevant for setters. */
   47870             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47871             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47872             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47873             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47874             : };
   47875             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47876             : static_assert(0 < 1, "There is no slot for us");
   47877             : static const JSJitInfo _moz_animation_iteration_count_setterinfo = {
   47878             :   { (JSJitGetterOp)set__moz_animation_iteration_count },
   47879             :   { prototypes::id::CSS2Properties },
   47880             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47881             :   JSJitInfo::Setter,
   47882             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47883             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47884             :   false,  /* isInfallible. False in setters. */
   47885             :   false,  /* isMovable.  Not relevant for setters. */
   47886             :   false, /* isEliminatable.  Not relevant for setters. */
   47887             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47888             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47889             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47890             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47891             : };
   47892             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47893             : static_assert(0 < 1, "There is no slot for us");
   47894             : 
   47895             : static bool
   47896           0 : get_MozAnimationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47897             : {
   47898           0 :   binding_detail::FastErrorResult rv;
   47899           0 :   DOMString result;
   47900           0 :   self->GetMozAnimationName(result, rv);
   47901           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47902           0 :     return false;
   47903             :   }
   47904           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47905           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47906           0 :     return false;
   47907             :   }
   47908           0 :   return true;
   47909             : }
   47910             : 
   47911             : static bool
   47912           0 : set_MozAnimationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47913             : {
   47914           0 :   binding_detail::FakeString arg0;
   47915           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47916           0 :     return false;
   47917             :   }
   47918           0 :   binding_detail::FastErrorResult rv;
   47919           0 :   self->SetMozAnimationName(NonNullHelper(Constify(arg0)), rv);
   47920           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47921           0 :     return false;
   47922             :   }
   47923           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47924             : 
   47925           0 :   return true;
   47926             : }
   47927             : 
   47928             : static const JSJitInfo MozAnimationName_getterinfo = {
   47929             :   { (JSJitGetterOp)get_MozAnimationName },
   47930             :   { prototypes::id::CSS2Properties },
   47931             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47932             :   JSJitInfo::Getter,
   47933             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47934             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   47935             :   false,  /* isInfallible. False in setters. */
   47936             :   false,  /* isMovable.  Not relevant for setters. */
   47937             :   false, /* isEliminatable.  Not relevant for setters. */
   47938             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47939             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47940             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47941             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47942             : };
   47943             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47944             : static_assert(0 < 1, "There is no slot for us");
   47945             : static const JSJitInfo MozAnimationName_setterinfo = {
   47946             :   { (JSJitGetterOp)set_MozAnimationName },
   47947             :   { prototypes::id::CSS2Properties },
   47948             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   47949             :   JSJitInfo::Setter,
   47950             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   47951             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   47952             :   false,  /* isInfallible. False in setters. */
   47953             :   false,  /* isMovable.  Not relevant for setters. */
   47954             :   false, /* isEliminatable.  Not relevant for setters. */
   47955             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   47956             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   47957             :   false,  /* isTypedMethod.  Only relevant for methods. */
   47958             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   47959             : };
   47960             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   47961             : static_assert(0 < 1, "There is no slot for us");
   47962             : 
   47963             : static bool
   47964           0 : get__moz_animation_name(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   47965             : {
   47966           0 :   binding_detail::FastErrorResult rv;
   47967           0 :   DOMString result;
   47968           0 :   self->GetMozAnimationName(result, rv);
   47969           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47970           0 :     return false;
   47971             :   }
   47972           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47973           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   47974           0 :     return false;
   47975             :   }
   47976           0 :   return true;
   47977             : }
   47978             : 
   47979             : static bool
   47980           0 : set__moz_animation_name(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   47981             : {
   47982           0 :   binding_detail::FakeString arg0;
   47983           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   47984           0 :     return false;
   47985             :   }
   47986           0 :   binding_detail::FastErrorResult rv;
   47987           0 :   self->SetMozAnimationName(NonNullHelper(Constify(arg0)), rv);
   47988           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   47989           0 :     return false;
   47990             :   }
   47991           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   47992             : 
   47993           0 :   return true;
   47994             : }
   47995             : 
   47996             : static const JSJitInfo _moz_animation_name_getterinfo = {
   47997             :   { (JSJitGetterOp)get__moz_animation_name },
   47998             :   { prototypes::id::CSS2Properties },
   47999             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48000             :   JSJitInfo::Getter,
   48001             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48002             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48003             :   false,  /* isInfallible. False in setters. */
   48004             :   false,  /* isMovable.  Not relevant for setters. */
   48005             :   false, /* isEliminatable.  Not relevant for setters. */
   48006             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48007             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48008             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48009             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48010             : };
   48011             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48012             : static_assert(0 < 1, "There is no slot for us");
   48013             : static const JSJitInfo _moz_animation_name_setterinfo = {
   48014             :   { (JSJitGetterOp)set__moz_animation_name },
   48015             :   { prototypes::id::CSS2Properties },
   48016             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48017             :   JSJitInfo::Setter,
   48018             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48019             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48020             :   false,  /* isInfallible. False in setters. */
   48021             :   false,  /* isMovable.  Not relevant for setters. */
   48022             :   false, /* isEliminatable.  Not relevant for setters. */
   48023             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48024             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48025             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48026             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48027             : };
   48028             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48029             : static_assert(0 < 1, "There is no slot for us");
   48030             : 
   48031             : static bool
   48032           0 : get_MozAnimationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48033             : {
   48034           0 :   binding_detail::FastErrorResult rv;
   48035           0 :   DOMString result;
   48036           0 :   self->GetMozAnimationPlayState(result, rv);
   48037           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48038           0 :     return false;
   48039             :   }
   48040           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48041           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48042           0 :     return false;
   48043             :   }
   48044           0 :   return true;
   48045             : }
   48046             : 
   48047             : static bool
   48048           0 : set_MozAnimationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48049             : {
   48050           0 :   binding_detail::FakeString arg0;
   48051           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48052           0 :     return false;
   48053             :   }
   48054           0 :   binding_detail::FastErrorResult rv;
   48055           0 :   self->SetMozAnimationPlayState(NonNullHelper(Constify(arg0)), rv);
   48056           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48057           0 :     return false;
   48058             :   }
   48059           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48060             : 
   48061           0 :   return true;
   48062             : }
   48063             : 
   48064             : static const JSJitInfo MozAnimationPlayState_getterinfo = {
   48065             :   { (JSJitGetterOp)get_MozAnimationPlayState },
   48066             :   { prototypes::id::CSS2Properties },
   48067             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48068             :   JSJitInfo::Getter,
   48069             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48070             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48071             :   false,  /* isInfallible. False in setters. */
   48072             :   false,  /* isMovable.  Not relevant for setters. */
   48073             :   false, /* isEliminatable.  Not relevant for setters. */
   48074             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48075             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48076             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48077             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48078             : };
   48079             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48080             : static_assert(0 < 1, "There is no slot for us");
   48081             : static const JSJitInfo MozAnimationPlayState_setterinfo = {
   48082             :   { (JSJitGetterOp)set_MozAnimationPlayState },
   48083             :   { prototypes::id::CSS2Properties },
   48084             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48085             :   JSJitInfo::Setter,
   48086             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48087             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48088             :   false,  /* isInfallible. False in setters. */
   48089             :   false,  /* isMovable.  Not relevant for setters. */
   48090             :   false, /* isEliminatable.  Not relevant for setters. */
   48091             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48092             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48093             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48094             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48095             : };
   48096             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48097             : static_assert(0 < 1, "There is no slot for us");
   48098             : 
   48099             : static bool
   48100           0 : get__moz_animation_play_state(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48101             : {
   48102           0 :   binding_detail::FastErrorResult rv;
   48103           0 :   DOMString result;
   48104           0 :   self->GetMozAnimationPlayState(result, rv);
   48105           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48106           0 :     return false;
   48107             :   }
   48108           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48109           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48110           0 :     return false;
   48111             :   }
   48112           0 :   return true;
   48113             : }
   48114             : 
   48115             : static bool
   48116           0 : set__moz_animation_play_state(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48117             : {
   48118           0 :   binding_detail::FakeString arg0;
   48119           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48120           0 :     return false;
   48121             :   }
   48122           0 :   binding_detail::FastErrorResult rv;
   48123           0 :   self->SetMozAnimationPlayState(NonNullHelper(Constify(arg0)), rv);
   48124           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48125           0 :     return false;
   48126             :   }
   48127           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48128             : 
   48129           0 :   return true;
   48130             : }
   48131             : 
   48132             : static const JSJitInfo _moz_animation_play_state_getterinfo = {
   48133             :   { (JSJitGetterOp)get__moz_animation_play_state },
   48134             :   { prototypes::id::CSS2Properties },
   48135             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48136             :   JSJitInfo::Getter,
   48137             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48138             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48139             :   false,  /* isInfallible. False in setters. */
   48140             :   false,  /* isMovable.  Not relevant for setters. */
   48141             :   false, /* isEliminatable.  Not relevant for setters. */
   48142             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48143             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48144             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48145             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48146             : };
   48147             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48148             : static_assert(0 < 1, "There is no slot for us");
   48149             : static const JSJitInfo _moz_animation_play_state_setterinfo = {
   48150             :   { (JSJitGetterOp)set__moz_animation_play_state },
   48151             :   { prototypes::id::CSS2Properties },
   48152             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48153             :   JSJitInfo::Setter,
   48154             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48155             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48156             :   false,  /* isInfallible. False in setters. */
   48157             :   false,  /* isMovable.  Not relevant for setters. */
   48158             :   false, /* isEliminatable.  Not relevant for setters. */
   48159             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48160             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48161             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48162             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48163             : };
   48164             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48165             : static_assert(0 < 1, "There is no slot for us");
   48166             : 
   48167             : static bool
   48168           0 : get_MozAnimationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48169             : {
   48170           0 :   binding_detail::FastErrorResult rv;
   48171           0 :   DOMString result;
   48172           0 :   self->GetMozAnimationTimingFunction(result, rv);
   48173           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48174           0 :     return false;
   48175             :   }
   48176           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48177           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48178           0 :     return false;
   48179             :   }
   48180           0 :   return true;
   48181             : }
   48182             : 
   48183             : static bool
   48184           0 : set_MozAnimationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48185             : {
   48186           0 :   binding_detail::FakeString arg0;
   48187           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48188           0 :     return false;
   48189             :   }
   48190           0 :   binding_detail::FastErrorResult rv;
   48191           0 :   self->SetMozAnimationTimingFunction(NonNullHelper(Constify(arg0)), rv);
   48192           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48193           0 :     return false;
   48194             :   }
   48195           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48196             : 
   48197           0 :   return true;
   48198             : }
   48199             : 
   48200             : static const JSJitInfo MozAnimationTimingFunction_getterinfo = {
   48201             :   { (JSJitGetterOp)get_MozAnimationTimingFunction },
   48202             :   { prototypes::id::CSS2Properties },
   48203             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48204             :   JSJitInfo::Getter,
   48205             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48206             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48207             :   false,  /* isInfallible. False in setters. */
   48208             :   false,  /* isMovable.  Not relevant for setters. */
   48209             :   false, /* isEliminatable.  Not relevant for setters. */
   48210             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48211             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48212             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48213             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48214             : };
   48215             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48216             : static_assert(0 < 1, "There is no slot for us");
   48217             : static const JSJitInfo MozAnimationTimingFunction_setterinfo = {
   48218             :   { (JSJitGetterOp)set_MozAnimationTimingFunction },
   48219             :   { prototypes::id::CSS2Properties },
   48220             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48221             :   JSJitInfo::Setter,
   48222             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48223             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48224             :   false,  /* isInfallible. False in setters. */
   48225             :   false,  /* isMovable.  Not relevant for setters. */
   48226             :   false, /* isEliminatable.  Not relevant for setters. */
   48227             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48228             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48229             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48230             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48231             : };
   48232             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48233             : static_assert(0 < 1, "There is no slot for us");
   48234             : 
   48235             : static bool
   48236           0 : get__moz_animation_timing_function(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48237             : {
   48238           0 :   binding_detail::FastErrorResult rv;
   48239           0 :   DOMString result;
   48240           0 :   self->GetMozAnimationTimingFunction(result, rv);
   48241           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48242           0 :     return false;
   48243             :   }
   48244           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48245           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48246           0 :     return false;
   48247             :   }
   48248           0 :   return true;
   48249             : }
   48250             : 
   48251             : static bool
   48252           0 : set__moz_animation_timing_function(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48253             : {
   48254           0 :   binding_detail::FakeString arg0;
   48255           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48256           0 :     return false;
   48257             :   }
   48258           0 :   binding_detail::FastErrorResult rv;
   48259           0 :   self->SetMozAnimationTimingFunction(NonNullHelper(Constify(arg0)), rv);
   48260           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48261           0 :     return false;
   48262             :   }
   48263           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48264             : 
   48265           0 :   return true;
   48266             : }
   48267             : 
   48268             : static const JSJitInfo _moz_animation_timing_function_getterinfo = {
   48269             :   { (JSJitGetterOp)get__moz_animation_timing_function },
   48270             :   { prototypes::id::CSS2Properties },
   48271             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48272             :   JSJitInfo::Getter,
   48273             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48274             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48275             :   false,  /* isInfallible. False in setters. */
   48276             :   false,  /* isMovable.  Not relevant for setters. */
   48277             :   false, /* isEliminatable.  Not relevant for setters. */
   48278             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48279             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48280             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48281             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48282             : };
   48283             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48284             : static_assert(0 < 1, "There is no slot for us");
   48285             : static const JSJitInfo _moz_animation_timing_function_setterinfo = {
   48286             :   { (JSJitGetterOp)set__moz_animation_timing_function },
   48287             :   { prototypes::id::CSS2Properties },
   48288             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48289             :   JSJitInfo::Setter,
   48290             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48291             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48292             :   false,  /* isInfallible. False in setters. */
   48293             :   false,  /* isMovable.  Not relevant for setters. */
   48294             :   false, /* isEliminatable.  Not relevant for setters. */
   48295             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48296             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48297             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48298             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48299             : };
   48300             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48301             : static_assert(0 < 1, "There is no slot for us");
   48302             : 
   48303             : static bool
   48304           0 : get_MozBoxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48305             : {
   48306           0 :   binding_detail::FastErrorResult rv;
   48307           0 :   DOMString result;
   48308           0 :   self->GetMozBoxSizing(result, rv);
   48309           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48310           0 :     return false;
   48311             :   }
   48312           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48313           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48314           0 :     return false;
   48315             :   }
   48316           0 :   return true;
   48317             : }
   48318             : 
   48319             : static bool
   48320           0 : set_MozBoxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48321             : {
   48322           0 :   binding_detail::FakeString arg0;
   48323           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48324           0 :     return false;
   48325             :   }
   48326           0 :   binding_detail::FastErrorResult rv;
   48327           0 :   self->SetMozBoxSizing(NonNullHelper(Constify(arg0)), rv);
   48328           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48329           0 :     return false;
   48330             :   }
   48331           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48332             : 
   48333           0 :   return true;
   48334             : }
   48335             : 
   48336             : static const JSJitInfo MozBoxSizing_getterinfo = {
   48337             :   { (JSJitGetterOp)get_MozBoxSizing },
   48338             :   { prototypes::id::CSS2Properties },
   48339             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48340             :   JSJitInfo::Getter,
   48341             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48342             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48343             :   false,  /* isInfallible. False in setters. */
   48344             :   false,  /* isMovable.  Not relevant for setters. */
   48345             :   false, /* isEliminatable.  Not relevant for setters. */
   48346             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48347             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48348             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48349             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48350             : };
   48351             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48352             : static_assert(0 < 1, "There is no slot for us");
   48353             : static const JSJitInfo MozBoxSizing_setterinfo = {
   48354             :   { (JSJitGetterOp)set_MozBoxSizing },
   48355             :   { prototypes::id::CSS2Properties },
   48356             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48357             :   JSJitInfo::Setter,
   48358             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48359             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48360             :   false,  /* isInfallible. False in setters. */
   48361             :   false,  /* isMovable.  Not relevant for setters. */
   48362             :   false, /* isEliminatable.  Not relevant for setters. */
   48363             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48364             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48365             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48366             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48367             : };
   48368             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48369             : static_assert(0 < 1, "There is no slot for us");
   48370             : 
   48371             : static bool
   48372           0 : get__moz_box_sizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48373             : {
   48374           0 :   binding_detail::FastErrorResult rv;
   48375           0 :   DOMString result;
   48376           0 :   self->GetMozBoxSizing(result, rv);
   48377           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48378           0 :     return false;
   48379             :   }
   48380           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48381           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48382           0 :     return false;
   48383             :   }
   48384           0 :   return true;
   48385             : }
   48386             : 
   48387             : static bool
   48388           0 : set__moz_box_sizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48389             : {
   48390           0 :   binding_detail::FakeString arg0;
   48391           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48392           0 :     return false;
   48393             :   }
   48394           0 :   binding_detail::FastErrorResult rv;
   48395           0 :   self->SetMozBoxSizing(NonNullHelper(Constify(arg0)), rv);
   48396           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48397           0 :     return false;
   48398             :   }
   48399           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48400             : 
   48401           0 :   return true;
   48402             : }
   48403             : 
   48404             : static const JSJitInfo _moz_box_sizing_getterinfo = {
   48405             :   { (JSJitGetterOp)get__moz_box_sizing },
   48406             :   { prototypes::id::CSS2Properties },
   48407             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48408             :   JSJitInfo::Getter,
   48409             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48410             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48411             :   false,  /* isInfallible. False in setters. */
   48412             :   false,  /* isMovable.  Not relevant for setters. */
   48413             :   false, /* isEliminatable.  Not relevant for setters. */
   48414             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48415             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48416             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48417             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48418             : };
   48419             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48420             : static_assert(0 < 1, "There is no slot for us");
   48421             : static const JSJitInfo _moz_box_sizing_setterinfo = {
   48422             :   { (JSJitGetterOp)set__moz_box_sizing },
   48423             :   { prototypes::id::CSS2Properties },
   48424             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48425             :   JSJitInfo::Setter,
   48426             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48427             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48428             :   false,  /* isInfallible. False in setters. */
   48429             :   false,  /* isMovable.  Not relevant for setters. */
   48430             :   false, /* isEliminatable.  Not relevant for setters. */
   48431             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48432             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48433             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48434             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48435             : };
   48436             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48437             : static_assert(0 < 1, "There is no slot for us");
   48438             : 
   48439             : static bool
   48440           0 : get_MozFontFeatureSettings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48441             : {
   48442           0 :   binding_detail::FastErrorResult rv;
   48443           0 :   DOMString result;
   48444           0 :   self->GetMozFontFeatureSettings(result, rv);
   48445           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48446           0 :     return false;
   48447             :   }
   48448           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48449           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48450           0 :     return false;
   48451             :   }
   48452           0 :   return true;
   48453             : }
   48454             : 
   48455             : static bool
   48456           0 : set_MozFontFeatureSettings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48457             : {
   48458           0 :   binding_detail::FakeString arg0;
   48459           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48460           0 :     return false;
   48461             :   }
   48462           0 :   binding_detail::FastErrorResult rv;
   48463           0 :   self->SetMozFontFeatureSettings(NonNullHelper(Constify(arg0)), rv);
   48464           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48465           0 :     return false;
   48466             :   }
   48467           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48468             : 
   48469           0 :   return true;
   48470             : }
   48471             : 
   48472             : static const JSJitInfo MozFontFeatureSettings_getterinfo = {
   48473             :   { (JSJitGetterOp)get_MozFontFeatureSettings },
   48474             :   { prototypes::id::CSS2Properties },
   48475             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48476             :   JSJitInfo::Getter,
   48477             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48478             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48479             :   false,  /* isInfallible. False in setters. */
   48480             :   false,  /* isMovable.  Not relevant for setters. */
   48481             :   false, /* isEliminatable.  Not relevant for setters. */
   48482             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48483             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48484             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48485             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48486             : };
   48487             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48488             : static_assert(0 < 1, "There is no slot for us");
   48489             : static const JSJitInfo MozFontFeatureSettings_setterinfo = {
   48490             :   { (JSJitGetterOp)set_MozFontFeatureSettings },
   48491             :   { prototypes::id::CSS2Properties },
   48492             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48493             :   JSJitInfo::Setter,
   48494             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48495             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48496             :   false,  /* isInfallible. False in setters. */
   48497             :   false,  /* isMovable.  Not relevant for setters. */
   48498             :   false, /* isEliminatable.  Not relevant for setters. */
   48499             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48500             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48501             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48502             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48503             : };
   48504             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48505             : static_assert(0 < 1, "There is no slot for us");
   48506             : 
   48507             : static bool
   48508           0 : get__moz_font_feature_settings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48509             : {
   48510           0 :   binding_detail::FastErrorResult rv;
   48511           0 :   DOMString result;
   48512           0 :   self->GetMozFontFeatureSettings(result, rv);
   48513           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48514           0 :     return false;
   48515             :   }
   48516           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48517           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48518           0 :     return false;
   48519             :   }
   48520           0 :   return true;
   48521             : }
   48522             : 
   48523             : static bool
   48524           0 : set__moz_font_feature_settings(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48525             : {
   48526           0 :   binding_detail::FakeString arg0;
   48527           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48528           0 :     return false;
   48529             :   }
   48530           0 :   binding_detail::FastErrorResult rv;
   48531           0 :   self->SetMozFontFeatureSettings(NonNullHelper(Constify(arg0)), rv);
   48532           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48533           0 :     return false;
   48534             :   }
   48535           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48536             : 
   48537           0 :   return true;
   48538             : }
   48539             : 
   48540             : static const JSJitInfo _moz_font_feature_settings_getterinfo = {
   48541             :   { (JSJitGetterOp)get__moz_font_feature_settings },
   48542             :   { prototypes::id::CSS2Properties },
   48543             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48544             :   JSJitInfo::Getter,
   48545             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48546             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48547             :   false,  /* isInfallible. False in setters. */
   48548             :   false,  /* isMovable.  Not relevant for setters. */
   48549             :   false, /* isEliminatable.  Not relevant for setters. */
   48550             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48551             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48552             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48553             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48554             : };
   48555             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48556             : static_assert(0 < 1, "There is no slot for us");
   48557             : static const JSJitInfo _moz_font_feature_settings_setterinfo = {
   48558             :   { (JSJitGetterOp)set__moz_font_feature_settings },
   48559             :   { prototypes::id::CSS2Properties },
   48560             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48561             :   JSJitInfo::Setter,
   48562             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48563             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48564             :   false,  /* isInfallible. False in setters. */
   48565             :   false,  /* isMovable.  Not relevant for setters. */
   48566             :   false, /* isEliminatable.  Not relevant for setters. */
   48567             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48568             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48569             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48570             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48571             : };
   48572             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48573             : static_assert(0 < 1, "There is no slot for us");
   48574             : 
   48575             : static bool
   48576           0 : get_MozFontLanguageOverride(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48577             : {
   48578           0 :   binding_detail::FastErrorResult rv;
   48579           0 :   DOMString result;
   48580           0 :   self->GetMozFontLanguageOverride(result, rv);
   48581           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48582           0 :     return false;
   48583             :   }
   48584           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48585           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48586           0 :     return false;
   48587             :   }
   48588           0 :   return true;
   48589             : }
   48590             : 
   48591             : static bool
   48592           0 : set_MozFontLanguageOverride(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48593             : {
   48594           0 :   binding_detail::FakeString arg0;
   48595           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48596           0 :     return false;
   48597             :   }
   48598           0 :   binding_detail::FastErrorResult rv;
   48599           0 :   self->SetMozFontLanguageOverride(NonNullHelper(Constify(arg0)), rv);
   48600           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48601           0 :     return false;
   48602             :   }
   48603           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48604             : 
   48605           0 :   return true;
   48606             : }
   48607             : 
   48608             : static const JSJitInfo MozFontLanguageOverride_getterinfo = {
   48609             :   { (JSJitGetterOp)get_MozFontLanguageOverride },
   48610             :   { prototypes::id::CSS2Properties },
   48611             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48612             :   JSJitInfo::Getter,
   48613             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48614             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48615             :   false,  /* isInfallible. False in setters. */
   48616             :   false,  /* isMovable.  Not relevant for setters. */
   48617             :   false, /* isEliminatable.  Not relevant for setters. */
   48618             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48619             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48620             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48621             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48622             : };
   48623             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48624             : static_assert(0 < 1, "There is no slot for us");
   48625             : static const JSJitInfo MozFontLanguageOverride_setterinfo = {
   48626             :   { (JSJitGetterOp)set_MozFontLanguageOverride },
   48627             :   { prototypes::id::CSS2Properties },
   48628             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48629             :   JSJitInfo::Setter,
   48630             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48631             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48632             :   false,  /* isInfallible. False in setters. */
   48633             :   false,  /* isMovable.  Not relevant for setters. */
   48634             :   false, /* isEliminatable.  Not relevant for setters. */
   48635             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48636             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48637             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48638             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48639             : };
   48640             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48641             : static_assert(0 < 1, "There is no slot for us");
   48642             : 
   48643             : static bool
   48644           0 : get__moz_font_language_override(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48645             : {
   48646           0 :   binding_detail::FastErrorResult rv;
   48647           0 :   DOMString result;
   48648           0 :   self->GetMozFontLanguageOverride(result, rv);
   48649           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48650           0 :     return false;
   48651             :   }
   48652           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48653           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48654           0 :     return false;
   48655             :   }
   48656           0 :   return true;
   48657             : }
   48658             : 
   48659             : static bool
   48660           0 : set__moz_font_language_override(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48661             : {
   48662           0 :   binding_detail::FakeString arg0;
   48663           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48664           0 :     return false;
   48665             :   }
   48666           0 :   binding_detail::FastErrorResult rv;
   48667           0 :   self->SetMozFontLanguageOverride(NonNullHelper(Constify(arg0)), rv);
   48668           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48669           0 :     return false;
   48670             :   }
   48671           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48672             : 
   48673           0 :   return true;
   48674             : }
   48675             : 
   48676             : static const JSJitInfo _moz_font_language_override_getterinfo = {
   48677             :   { (JSJitGetterOp)get__moz_font_language_override },
   48678             :   { prototypes::id::CSS2Properties },
   48679             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48680             :   JSJitInfo::Getter,
   48681             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48682             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48683             :   false,  /* isInfallible. False in setters. */
   48684             :   false,  /* isMovable.  Not relevant for setters. */
   48685             :   false, /* isEliminatable.  Not relevant for setters. */
   48686             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48687             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48688             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48689             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48690             : };
   48691             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48692             : static_assert(0 < 1, "There is no slot for us");
   48693             : static const JSJitInfo _moz_font_language_override_setterinfo = {
   48694             :   { (JSJitGetterOp)set__moz_font_language_override },
   48695             :   { prototypes::id::CSS2Properties },
   48696             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48697             :   JSJitInfo::Setter,
   48698             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48699             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48700             :   false,  /* isInfallible. False in setters. */
   48701             :   false,  /* isMovable.  Not relevant for setters. */
   48702             :   false, /* isEliminatable.  Not relevant for setters. */
   48703             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48704             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48705             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48706             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48707             : };
   48708             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48709             : static_assert(0 < 1, "There is no slot for us");
   48710             : 
   48711             : static bool
   48712           0 : get_MozPaddingEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48713             : {
   48714           0 :   binding_detail::FastErrorResult rv;
   48715           0 :   DOMString result;
   48716           0 :   self->GetMozPaddingEnd(result, rv);
   48717           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48718           0 :     return false;
   48719             :   }
   48720           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48721           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48722           0 :     return false;
   48723             :   }
   48724           0 :   return true;
   48725             : }
   48726             : 
   48727             : static bool
   48728           0 : set_MozPaddingEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48729             : {
   48730           0 :   binding_detail::FakeString arg0;
   48731           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48732           0 :     return false;
   48733             :   }
   48734           0 :   binding_detail::FastErrorResult rv;
   48735           0 :   self->SetMozPaddingEnd(NonNullHelper(Constify(arg0)), rv);
   48736           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48737           0 :     return false;
   48738             :   }
   48739           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48740             : 
   48741           0 :   return true;
   48742             : }
   48743             : 
   48744             : static const JSJitInfo MozPaddingEnd_getterinfo = {
   48745             :   { (JSJitGetterOp)get_MozPaddingEnd },
   48746             :   { prototypes::id::CSS2Properties },
   48747             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48748             :   JSJitInfo::Getter,
   48749             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48750             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48751             :   false,  /* isInfallible. False in setters. */
   48752             :   false,  /* isMovable.  Not relevant for setters. */
   48753             :   false, /* isEliminatable.  Not relevant for setters. */
   48754             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48755             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48756             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48757             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48758             : };
   48759             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48760             : static_assert(0 < 1, "There is no slot for us");
   48761             : static const JSJitInfo MozPaddingEnd_setterinfo = {
   48762             :   { (JSJitGetterOp)set_MozPaddingEnd },
   48763             :   { prototypes::id::CSS2Properties },
   48764             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48765             :   JSJitInfo::Setter,
   48766             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48767             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48768             :   false,  /* isInfallible. False in setters. */
   48769             :   false,  /* isMovable.  Not relevant for setters. */
   48770             :   false, /* isEliminatable.  Not relevant for setters. */
   48771             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48772             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48773             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48774             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48775             : };
   48776             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48777             : static_assert(0 < 1, "There is no slot for us");
   48778             : 
   48779             : static bool
   48780           0 : get__moz_padding_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48781             : {
   48782           0 :   binding_detail::FastErrorResult rv;
   48783           0 :   DOMString result;
   48784           0 :   self->GetMozPaddingEnd(result, rv);
   48785           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48786           0 :     return false;
   48787             :   }
   48788           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48789           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48790           0 :     return false;
   48791             :   }
   48792           0 :   return true;
   48793             : }
   48794             : 
   48795             : static bool
   48796           0 : set__moz_padding_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48797             : {
   48798           0 :   binding_detail::FakeString arg0;
   48799           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48800           0 :     return false;
   48801             :   }
   48802           0 :   binding_detail::FastErrorResult rv;
   48803           0 :   self->SetMozPaddingEnd(NonNullHelper(Constify(arg0)), rv);
   48804           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48805           0 :     return false;
   48806             :   }
   48807           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48808             : 
   48809           0 :   return true;
   48810             : }
   48811             : 
   48812             : static const JSJitInfo _moz_padding_end_getterinfo = {
   48813             :   { (JSJitGetterOp)get__moz_padding_end },
   48814             :   { prototypes::id::CSS2Properties },
   48815             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48816             :   JSJitInfo::Getter,
   48817             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48818             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48819             :   false,  /* isInfallible. False in setters. */
   48820             :   false,  /* isMovable.  Not relevant for setters. */
   48821             :   false, /* isEliminatable.  Not relevant for setters. */
   48822             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48823             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48824             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48825             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48826             : };
   48827             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48828             : static_assert(0 < 1, "There is no slot for us");
   48829             : static const JSJitInfo _moz_padding_end_setterinfo = {
   48830             :   { (JSJitGetterOp)set__moz_padding_end },
   48831             :   { prototypes::id::CSS2Properties },
   48832             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48833             :   JSJitInfo::Setter,
   48834             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48835             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48836             :   false,  /* isInfallible. False in setters. */
   48837             :   false,  /* isMovable.  Not relevant for setters. */
   48838             :   false, /* isEliminatable.  Not relevant for setters. */
   48839             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48840             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48841             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48842             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48843             : };
   48844             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48845             : static_assert(0 < 1, "There is no slot for us");
   48846             : 
   48847             : static bool
   48848           0 : get_MozPaddingStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48849             : {
   48850           0 :   binding_detail::FastErrorResult rv;
   48851           0 :   DOMString result;
   48852           0 :   self->GetMozPaddingStart(result, rv);
   48853           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48854           0 :     return false;
   48855             :   }
   48856           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48857           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48858           0 :     return false;
   48859             :   }
   48860           0 :   return true;
   48861             : }
   48862             : 
   48863             : static bool
   48864           0 : set_MozPaddingStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48865             : {
   48866           0 :   binding_detail::FakeString arg0;
   48867           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48868           0 :     return false;
   48869             :   }
   48870           0 :   binding_detail::FastErrorResult rv;
   48871           0 :   self->SetMozPaddingStart(NonNullHelper(Constify(arg0)), rv);
   48872           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48873           0 :     return false;
   48874             :   }
   48875           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48876             : 
   48877           0 :   return true;
   48878             : }
   48879             : 
   48880             : static const JSJitInfo MozPaddingStart_getterinfo = {
   48881             :   { (JSJitGetterOp)get_MozPaddingStart },
   48882             :   { prototypes::id::CSS2Properties },
   48883             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48884             :   JSJitInfo::Getter,
   48885             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48886             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48887             :   false,  /* isInfallible. False in setters. */
   48888             :   false,  /* isMovable.  Not relevant for setters. */
   48889             :   false, /* isEliminatable.  Not relevant for setters. */
   48890             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48891             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48892             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48893             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48894             : };
   48895             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48896             : static_assert(0 < 1, "There is no slot for us");
   48897             : static const JSJitInfo MozPaddingStart_setterinfo = {
   48898             :   { (JSJitGetterOp)set_MozPaddingStart },
   48899             :   { prototypes::id::CSS2Properties },
   48900             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48901             :   JSJitInfo::Setter,
   48902             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48903             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48904             :   false,  /* isInfallible. False in setters. */
   48905             :   false,  /* isMovable.  Not relevant for setters. */
   48906             :   false, /* isEliminatable.  Not relevant for setters. */
   48907             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48908             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48909             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48910             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48911             : };
   48912             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48913             : static_assert(0 < 1, "There is no slot for us");
   48914             : 
   48915             : static bool
   48916           0 : get__moz_padding_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48917             : {
   48918           0 :   binding_detail::FastErrorResult rv;
   48919           0 :   DOMString result;
   48920           0 :   self->GetMozPaddingStart(result, rv);
   48921           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48922           0 :     return false;
   48923             :   }
   48924           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48925           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48926           0 :     return false;
   48927             :   }
   48928           0 :   return true;
   48929             : }
   48930             : 
   48931             : static bool
   48932           0 : set__moz_padding_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   48933             : {
   48934           0 :   binding_detail::FakeString arg0;
   48935           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   48936           0 :     return false;
   48937             :   }
   48938           0 :   binding_detail::FastErrorResult rv;
   48939           0 :   self->SetMozPaddingStart(NonNullHelper(Constify(arg0)), rv);
   48940           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48941           0 :     return false;
   48942             :   }
   48943           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48944             : 
   48945           0 :   return true;
   48946             : }
   48947             : 
   48948             : static const JSJitInfo _moz_padding_start_getterinfo = {
   48949             :   { (JSJitGetterOp)get__moz_padding_start },
   48950             :   { prototypes::id::CSS2Properties },
   48951             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48952             :   JSJitInfo::Getter,
   48953             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48954             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   48955             :   false,  /* isInfallible. False in setters. */
   48956             :   false,  /* isMovable.  Not relevant for setters. */
   48957             :   false, /* isEliminatable.  Not relevant for setters. */
   48958             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48959             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48960             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48961             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48962             : };
   48963             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48964             : static_assert(0 < 1, "There is no slot for us");
   48965             : static const JSJitInfo _moz_padding_start_setterinfo = {
   48966             :   { (JSJitGetterOp)set__moz_padding_start },
   48967             :   { prototypes::id::CSS2Properties },
   48968             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   48969             :   JSJitInfo::Setter,
   48970             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   48971             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   48972             :   false,  /* isInfallible. False in setters. */
   48973             :   false,  /* isMovable.  Not relevant for setters. */
   48974             :   false, /* isEliminatable.  Not relevant for setters. */
   48975             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   48976             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   48977             :   false,  /* isTypedMethod.  Only relevant for methods. */
   48978             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   48979             : };
   48980             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   48981             : static_assert(0 < 1, "There is no slot for us");
   48982             : 
   48983             : static bool
   48984           0 : get_MozMarginEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   48985             : {
   48986           0 :   binding_detail::FastErrorResult rv;
   48987           0 :   DOMString result;
   48988           0 :   self->GetMozMarginEnd(result, rv);
   48989           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   48990           0 :     return false;
   48991             :   }
   48992           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   48993           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   48994           0 :     return false;
   48995             :   }
   48996           0 :   return true;
   48997             : }
   48998             : 
   48999             : static bool
   49000           0 : set_MozMarginEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49001             : {
   49002           0 :   binding_detail::FakeString arg0;
   49003           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49004           0 :     return false;
   49005             :   }
   49006           0 :   binding_detail::FastErrorResult rv;
   49007           0 :   self->SetMozMarginEnd(NonNullHelper(Constify(arg0)), rv);
   49008           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49009           0 :     return false;
   49010             :   }
   49011           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49012             : 
   49013           0 :   return true;
   49014             : }
   49015             : 
   49016             : static const JSJitInfo MozMarginEnd_getterinfo = {
   49017             :   { (JSJitGetterOp)get_MozMarginEnd },
   49018             :   { prototypes::id::CSS2Properties },
   49019             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49020             :   JSJitInfo::Getter,
   49021             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49022             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49023             :   false,  /* isInfallible. False in setters. */
   49024             :   false,  /* isMovable.  Not relevant for setters. */
   49025             :   false, /* isEliminatable.  Not relevant for setters. */
   49026             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49027             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49028             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49029             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49030             : };
   49031             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49032             : static_assert(0 < 1, "There is no slot for us");
   49033             : static const JSJitInfo MozMarginEnd_setterinfo = {
   49034             :   { (JSJitGetterOp)set_MozMarginEnd },
   49035             :   { prototypes::id::CSS2Properties },
   49036             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49037             :   JSJitInfo::Setter,
   49038             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49039             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49040             :   false,  /* isInfallible. False in setters. */
   49041             :   false,  /* isMovable.  Not relevant for setters. */
   49042             :   false, /* isEliminatable.  Not relevant for setters. */
   49043             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49044             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49045             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49046             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49047             : };
   49048             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49049             : static_assert(0 < 1, "There is no slot for us");
   49050             : 
   49051             : static bool
   49052           0 : get__moz_margin_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49053             : {
   49054           0 :   binding_detail::FastErrorResult rv;
   49055           0 :   DOMString result;
   49056           0 :   self->GetMozMarginEnd(result, rv);
   49057           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49058           0 :     return false;
   49059             :   }
   49060           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49061           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49062           0 :     return false;
   49063             :   }
   49064           0 :   return true;
   49065             : }
   49066             : 
   49067             : static bool
   49068           0 : set__moz_margin_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49069             : {
   49070           0 :   binding_detail::FakeString arg0;
   49071           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49072           0 :     return false;
   49073             :   }
   49074           0 :   binding_detail::FastErrorResult rv;
   49075           0 :   self->SetMozMarginEnd(NonNullHelper(Constify(arg0)), rv);
   49076           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49077           0 :     return false;
   49078             :   }
   49079           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49080             : 
   49081           0 :   return true;
   49082             : }
   49083             : 
   49084             : static const JSJitInfo _moz_margin_end_getterinfo = {
   49085             :   { (JSJitGetterOp)get__moz_margin_end },
   49086             :   { prototypes::id::CSS2Properties },
   49087             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49088             :   JSJitInfo::Getter,
   49089             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49090             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49091             :   false,  /* isInfallible. False in setters. */
   49092             :   false,  /* isMovable.  Not relevant for setters. */
   49093             :   false, /* isEliminatable.  Not relevant for setters. */
   49094             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49095             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49096             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49097             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49098             : };
   49099             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49100             : static_assert(0 < 1, "There is no slot for us");
   49101             : static const JSJitInfo _moz_margin_end_setterinfo = {
   49102             :   { (JSJitGetterOp)set__moz_margin_end },
   49103             :   { prototypes::id::CSS2Properties },
   49104             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49105             :   JSJitInfo::Setter,
   49106             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49107             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49108             :   false,  /* isInfallible. False in setters. */
   49109             :   false,  /* isMovable.  Not relevant for setters. */
   49110             :   false, /* isEliminatable.  Not relevant for setters. */
   49111             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49112             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49113             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49114             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49115             : };
   49116             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49117             : static_assert(0 < 1, "There is no slot for us");
   49118             : 
   49119             : static bool
   49120           0 : get_MozMarginStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49121             : {
   49122           0 :   binding_detail::FastErrorResult rv;
   49123           0 :   DOMString result;
   49124           0 :   self->GetMozMarginStart(result, rv);
   49125           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49126           0 :     return false;
   49127             :   }
   49128           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49129           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49130           0 :     return false;
   49131             :   }
   49132           0 :   return true;
   49133             : }
   49134             : 
   49135             : static bool
   49136           0 : set_MozMarginStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49137             : {
   49138           0 :   binding_detail::FakeString arg0;
   49139           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49140           0 :     return false;
   49141             :   }
   49142           0 :   binding_detail::FastErrorResult rv;
   49143           0 :   self->SetMozMarginStart(NonNullHelper(Constify(arg0)), rv);
   49144           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49145           0 :     return false;
   49146             :   }
   49147           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49148             : 
   49149           0 :   return true;
   49150             : }
   49151             : 
   49152             : static const JSJitInfo MozMarginStart_getterinfo = {
   49153             :   { (JSJitGetterOp)get_MozMarginStart },
   49154             :   { prototypes::id::CSS2Properties },
   49155             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49156             :   JSJitInfo::Getter,
   49157             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49158             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49159             :   false,  /* isInfallible. False in setters. */
   49160             :   false,  /* isMovable.  Not relevant for setters. */
   49161             :   false, /* isEliminatable.  Not relevant for setters. */
   49162             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49163             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49164             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49165             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49166             : };
   49167             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49168             : static_assert(0 < 1, "There is no slot for us");
   49169             : static const JSJitInfo MozMarginStart_setterinfo = {
   49170             :   { (JSJitGetterOp)set_MozMarginStart },
   49171             :   { prototypes::id::CSS2Properties },
   49172             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49173             :   JSJitInfo::Setter,
   49174             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49175             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49176             :   false,  /* isInfallible. False in setters. */
   49177             :   false,  /* isMovable.  Not relevant for setters. */
   49178             :   false, /* isEliminatable.  Not relevant for setters. */
   49179             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49180             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49181             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49182             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49183             : };
   49184             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49185             : static_assert(0 < 1, "There is no slot for us");
   49186             : 
   49187             : static bool
   49188           0 : get__moz_margin_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49189             : {
   49190           0 :   binding_detail::FastErrorResult rv;
   49191           0 :   DOMString result;
   49192           0 :   self->GetMozMarginStart(result, rv);
   49193           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49194           0 :     return false;
   49195             :   }
   49196           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49197           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49198           0 :     return false;
   49199             :   }
   49200           0 :   return true;
   49201             : }
   49202             : 
   49203             : static bool
   49204           0 : set__moz_margin_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49205             : {
   49206           0 :   binding_detail::FakeString arg0;
   49207           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49208           0 :     return false;
   49209             :   }
   49210           0 :   binding_detail::FastErrorResult rv;
   49211           0 :   self->SetMozMarginStart(NonNullHelper(Constify(arg0)), rv);
   49212           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49213           0 :     return false;
   49214             :   }
   49215           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49216             : 
   49217           0 :   return true;
   49218             : }
   49219             : 
   49220             : static const JSJitInfo _moz_margin_start_getterinfo = {
   49221             :   { (JSJitGetterOp)get__moz_margin_start },
   49222             :   { prototypes::id::CSS2Properties },
   49223             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49224             :   JSJitInfo::Getter,
   49225             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49226             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49227             :   false,  /* isInfallible. False in setters. */
   49228             :   false,  /* isMovable.  Not relevant for setters. */
   49229             :   false, /* isEliminatable.  Not relevant for setters. */
   49230             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49231             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49232             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49233             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49234             : };
   49235             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49236             : static_assert(0 < 1, "There is no slot for us");
   49237             : static const JSJitInfo _moz_margin_start_setterinfo = {
   49238             :   { (JSJitGetterOp)set__moz_margin_start },
   49239             :   { prototypes::id::CSS2Properties },
   49240             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49241             :   JSJitInfo::Setter,
   49242             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49243             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49244             :   false,  /* isInfallible. False in setters. */
   49245             :   false,  /* isMovable.  Not relevant for setters. */
   49246             :   false, /* isEliminatable.  Not relevant for setters. */
   49247             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49248             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49249             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49250             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49251             : };
   49252             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49253             : static_assert(0 < 1, "There is no slot for us");
   49254             : 
   49255             : static bool
   49256           0 : get_MozBorderEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49257             : {
   49258           0 :   binding_detail::FastErrorResult rv;
   49259           0 :   DOMString result;
   49260           0 :   self->GetMozBorderEnd(result, rv);
   49261           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49262           0 :     return false;
   49263             :   }
   49264           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49265           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49266           0 :     return false;
   49267             :   }
   49268           0 :   return true;
   49269             : }
   49270             : 
   49271             : static bool
   49272           0 : set_MozBorderEnd(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49273             : {
   49274           0 :   binding_detail::FakeString arg0;
   49275           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49276           0 :     return false;
   49277             :   }
   49278           0 :   binding_detail::FastErrorResult rv;
   49279           0 :   self->SetMozBorderEnd(NonNullHelper(Constify(arg0)), rv);
   49280           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49281           0 :     return false;
   49282             :   }
   49283           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49284             : 
   49285           0 :   return true;
   49286             : }
   49287             : 
   49288             : static const JSJitInfo MozBorderEnd_getterinfo = {
   49289             :   { (JSJitGetterOp)get_MozBorderEnd },
   49290             :   { prototypes::id::CSS2Properties },
   49291             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49292             :   JSJitInfo::Getter,
   49293             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49294             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49295             :   false,  /* isInfallible. False in setters. */
   49296             :   false,  /* isMovable.  Not relevant for setters. */
   49297             :   false, /* isEliminatable.  Not relevant for setters. */
   49298             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49299             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49300             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49301             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49302             : };
   49303             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49304             : static_assert(0 < 1, "There is no slot for us");
   49305             : static const JSJitInfo MozBorderEnd_setterinfo = {
   49306             :   { (JSJitGetterOp)set_MozBorderEnd },
   49307             :   { prototypes::id::CSS2Properties },
   49308             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49309             :   JSJitInfo::Setter,
   49310             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49311             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49312             :   false,  /* isInfallible. False in setters. */
   49313             :   false,  /* isMovable.  Not relevant for setters. */
   49314             :   false, /* isEliminatable.  Not relevant for setters. */
   49315             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49316             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49317             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49318             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49319             : };
   49320             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49321             : static_assert(0 < 1, "There is no slot for us");
   49322             : 
   49323             : static bool
   49324           0 : get__moz_border_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49325             : {
   49326           0 :   binding_detail::FastErrorResult rv;
   49327           0 :   DOMString result;
   49328           0 :   self->GetMozBorderEnd(result, rv);
   49329           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49330           0 :     return false;
   49331             :   }
   49332           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49333           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49334           0 :     return false;
   49335             :   }
   49336           0 :   return true;
   49337             : }
   49338             : 
   49339             : static bool
   49340           0 : set__moz_border_end(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49341             : {
   49342           0 :   binding_detail::FakeString arg0;
   49343           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49344           0 :     return false;
   49345             :   }
   49346           0 :   binding_detail::FastErrorResult rv;
   49347           0 :   self->SetMozBorderEnd(NonNullHelper(Constify(arg0)), rv);
   49348           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49349           0 :     return false;
   49350             :   }
   49351           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49352             : 
   49353           0 :   return true;
   49354             : }
   49355             : 
   49356             : static const JSJitInfo _moz_border_end_getterinfo = {
   49357             :   { (JSJitGetterOp)get__moz_border_end },
   49358             :   { prototypes::id::CSS2Properties },
   49359             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49360             :   JSJitInfo::Getter,
   49361             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49362             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49363             :   false,  /* isInfallible. False in setters. */
   49364             :   false,  /* isMovable.  Not relevant for setters. */
   49365             :   false, /* isEliminatable.  Not relevant for setters. */
   49366             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49367             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49368             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49369             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49370             : };
   49371             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49372             : static_assert(0 < 1, "There is no slot for us");
   49373             : static const JSJitInfo _moz_border_end_setterinfo = {
   49374             :   { (JSJitGetterOp)set__moz_border_end },
   49375             :   { prototypes::id::CSS2Properties },
   49376             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49377             :   JSJitInfo::Setter,
   49378             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49379             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49380             :   false,  /* isInfallible. False in setters. */
   49381             :   false,  /* isMovable.  Not relevant for setters. */
   49382             :   false, /* isEliminatable.  Not relevant for setters. */
   49383             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49384             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49385             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49386             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49387             : };
   49388             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49389             : static_assert(0 < 1, "There is no slot for us");
   49390             : 
   49391             : static bool
   49392           0 : get_MozBorderEndColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49393             : {
   49394           0 :   binding_detail::FastErrorResult rv;
   49395           0 :   DOMString result;
   49396           0 :   self->GetMozBorderEndColor(result, rv);
   49397           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49398           0 :     return false;
   49399             :   }
   49400           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49401           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49402           0 :     return false;
   49403             :   }
   49404           0 :   return true;
   49405             : }
   49406             : 
   49407             : static bool
   49408           0 : set_MozBorderEndColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49409             : {
   49410           0 :   binding_detail::FakeString arg0;
   49411           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49412           0 :     return false;
   49413             :   }
   49414           0 :   binding_detail::FastErrorResult rv;
   49415           0 :   self->SetMozBorderEndColor(NonNullHelper(Constify(arg0)), rv);
   49416           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49417           0 :     return false;
   49418             :   }
   49419           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49420             : 
   49421           0 :   return true;
   49422             : }
   49423             : 
   49424             : static const JSJitInfo MozBorderEndColor_getterinfo = {
   49425             :   { (JSJitGetterOp)get_MozBorderEndColor },
   49426             :   { prototypes::id::CSS2Properties },
   49427             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49428             :   JSJitInfo::Getter,
   49429             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49430             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49431             :   false,  /* isInfallible. False in setters. */
   49432             :   false,  /* isMovable.  Not relevant for setters. */
   49433             :   false, /* isEliminatable.  Not relevant for setters. */
   49434             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49435             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49436             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49437             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49438             : };
   49439             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49440             : static_assert(0 < 1, "There is no slot for us");
   49441             : static const JSJitInfo MozBorderEndColor_setterinfo = {
   49442             :   { (JSJitGetterOp)set_MozBorderEndColor },
   49443             :   { prototypes::id::CSS2Properties },
   49444             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49445             :   JSJitInfo::Setter,
   49446             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49447             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49448             :   false,  /* isInfallible. False in setters. */
   49449             :   false,  /* isMovable.  Not relevant for setters. */
   49450             :   false, /* isEliminatable.  Not relevant for setters. */
   49451             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49452             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49453             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49454             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49455             : };
   49456             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49457             : static_assert(0 < 1, "There is no slot for us");
   49458             : 
   49459             : static bool
   49460           0 : get__moz_border_end_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49461             : {
   49462           0 :   binding_detail::FastErrorResult rv;
   49463           0 :   DOMString result;
   49464           0 :   self->GetMozBorderEndColor(result, rv);
   49465           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49466           0 :     return false;
   49467             :   }
   49468           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49469           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49470           0 :     return false;
   49471             :   }
   49472           0 :   return true;
   49473             : }
   49474             : 
   49475             : static bool
   49476           0 : set__moz_border_end_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49477             : {
   49478           0 :   binding_detail::FakeString arg0;
   49479           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49480           0 :     return false;
   49481             :   }
   49482           0 :   binding_detail::FastErrorResult rv;
   49483           0 :   self->SetMozBorderEndColor(NonNullHelper(Constify(arg0)), rv);
   49484           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49485           0 :     return false;
   49486             :   }
   49487           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49488             : 
   49489           0 :   return true;
   49490             : }
   49491             : 
   49492             : static const JSJitInfo _moz_border_end_color_getterinfo = {
   49493             :   { (JSJitGetterOp)get__moz_border_end_color },
   49494             :   { prototypes::id::CSS2Properties },
   49495             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49496             :   JSJitInfo::Getter,
   49497             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49498             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49499             :   false,  /* isInfallible. False in setters. */
   49500             :   false,  /* isMovable.  Not relevant for setters. */
   49501             :   false, /* isEliminatable.  Not relevant for setters. */
   49502             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49503             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49504             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49505             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49506             : };
   49507             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49508             : static_assert(0 < 1, "There is no slot for us");
   49509             : static const JSJitInfo _moz_border_end_color_setterinfo = {
   49510             :   { (JSJitGetterOp)set__moz_border_end_color },
   49511             :   { prototypes::id::CSS2Properties },
   49512             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49513             :   JSJitInfo::Setter,
   49514             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49515             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49516             :   false,  /* isInfallible. False in setters. */
   49517             :   false,  /* isMovable.  Not relevant for setters. */
   49518             :   false, /* isEliminatable.  Not relevant for setters. */
   49519             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49520             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49521             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49522             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49523             : };
   49524             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49525             : static_assert(0 < 1, "There is no slot for us");
   49526             : 
   49527             : static bool
   49528           0 : get_MozBorderEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49529             : {
   49530           0 :   binding_detail::FastErrorResult rv;
   49531           0 :   DOMString result;
   49532           0 :   self->GetMozBorderEndStyle(result, rv);
   49533           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49534           0 :     return false;
   49535             :   }
   49536           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49537           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49538           0 :     return false;
   49539             :   }
   49540           0 :   return true;
   49541             : }
   49542             : 
   49543             : static bool
   49544           0 : set_MozBorderEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49545             : {
   49546           0 :   binding_detail::FakeString arg0;
   49547           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49548           0 :     return false;
   49549             :   }
   49550           0 :   binding_detail::FastErrorResult rv;
   49551           0 :   self->SetMozBorderEndStyle(NonNullHelper(Constify(arg0)), rv);
   49552           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49553           0 :     return false;
   49554             :   }
   49555           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49556             : 
   49557           0 :   return true;
   49558             : }
   49559             : 
   49560             : static const JSJitInfo MozBorderEndStyle_getterinfo = {
   49561             :   { (JSJitGetterOp)get_MozBorderEndStyle },
   49562             :   { prototypes::id::CSS2Properties },
   49563             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49564             :   JSJitInfo::Getter,
   49565             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49566             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49567             :   false,  /* isInfallible. False in setters. */
   49568             :   false,  /* isMovable.  Not relevant for setters. */
   49569             :   false, /* isEliminatable.  Not relevant for setters. */
   49570             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49571             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49572             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49573             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49574             : };
   49575             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49576             : static_assert(0 < 1, "There is no slot for us");
   49577             : static const JSJitInfo MozBorderEndStyle_setterinfo = {
   49578             :   { (JSJitGetterOp)set_MozBorderEndStyle },
   49579             :   { prototypes::id::CSS2Properties },
   49580             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49581             :   JSJitInfo::Setter,
   49582             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49583             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49584             :   false,  /* isInfallible. False in setters. */
   49585             :   false,  /* isMovable.  Not relevant for setters. */
   49586             :   false, /* isEliminatable.  Not relevant for setters. */
   49587             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49588             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49589             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49590             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49591             : };
   49592             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49593             : static_assert(0 < 1, "There is no slot for us");
   49594             : 
   49595             : static bool
   49596           0 : get__moz_border_end_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49597             : {
   49598           0 :   binding_detail::FastErrorResult rv;
   49599           0 :   DOMString result;
   49600           0 :   self->GetMozBorderEndStyle(result, rv);
   49601           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49602           0 :     return false;
   49603             :   }
   49604           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49605           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49606           0 :     return false;
   49607             :   }
   49608           0 :   return true;
   49609             : }
   49610             : 
   49611             : static bool
   49612           0 : set__moz_border_end_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49613             : {
   49614           0 :   binding_detail::FakeString arg0;
   49615           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49616           0 :     return false;
   49617             :   }
   49618           0 :   binding_detail::FastErrorResult rv;
   49619           0 :   self->SetMozBorderEndStyle(NonNullHelper(Constify(arg0)), rv);
   49620           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49621           0 :     return false;
   49622             :   }
   49623           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49624             : 
   49625           0 :   return true;
   49626             : }
   49627             : 
   49628             : static const JSJitInfo _moz_border_end_style_getterinfo = {
   49629             :   { (JSJitGetterOp)get__moz_border_end_style },
   49630             :   { prototypes::id::CSS2Properties },
   49631             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49632             :   JSJitInfo::Getter,
   49633             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49634             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49635             :   false,  /* isInfallible. False in setters. */
   49636             :   false,  /* isMovable.  Not relevant for setters. */
   49637             :   false, /* isEliminatable.  Not relevant for setters. */
   49638             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49639             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49640             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49641             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49642             : };
   49643             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49644             : static_assert(0 < 1, "There is no slot for us");
   49645             : static const JSJitInfo _moz_border_end_style_setterinfo = {
   49646             :   { (JSJitGetterOp)set__moz_border_end_style },
   49647             :   { prototypes::id::CSS2Properties },
   49648             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49649             :   JSJitInfo::Setter,
   49650             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49651             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49652             :   false,  /* isInfallible. False in setters. */
   49653             :   false,  /* isMovable.  Not relevant for setters. */
   49654             :   false, /* isEliminatable.  Not relevant for setters. */
   49655             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49656             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49657             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49658             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49659             : };
   49660             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49661             : static_assert(0 < 1, "There is no slot for us");
   49662             : 
   49663             : static bool
   49664           0 : get_MozBorderEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49665             : {
   49666           0 :   binding_detail::FastErrorResult rv;
   49667           0 :   DOMString result;
   49668           0 :   self->GetMozBorderEndWidth(result, rv);
   49669           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49670           0 :     return false;
   49671             :   }
   49672           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49673           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49674           0 :     return false;
   49675             :   }
   49676           0 :   return true;
   49677             : }
   49678             : 
   49679             : static bool
   49680           0 : set_MozBorderEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49681             : {
   49682           0 :   binding_detail::FakeString arg0;
   49683           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49684           0 :     return false;
   49685             :   }
   49686           0 :   binding_detail::FastErrorResult rv;
   49687           0 :   self->SetMozBorderEndWidth(NonNullHelper(Constify(arg0)), rv);
   49688           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49689           0 :     return false;
   49690             :   }
   49691           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49692             : 
   49693           0 :   return true;
   49694             : }
   49695             : 
   49696             : static const JSJitInfo MozBorderEndWidth_getterinfo = {
   49697             :   { (JSJitGetterOp)get_MozBorderEndWidth },
   49698             :   { prototypes::id::CSS2Properties },
   49699             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49700             :   JSJitInfo::Getter,
   49701             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49702             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49703             :   false,  /* isInfallible. False in setters. */
   49704             :   false,  /* isMovable.  Not relevant for setters. */
   49705             :   false, /* isEliminatable.  Not relevant for setters. */
   49706             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49707             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49708             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49709             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49710             : };
   49711             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49712             : static_assert(0 < 1, "There is no slot for us");
   49713             : static const JSJitInfo MozBorderEndWidth_setterinfo = {
   49714             :   { (JSJitGetterOp)set_MozBorderEndWidth },
   49715             :   { prototypes::id::CSS2Properties },
   49716             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49717             :   JSJitInfo::Setter,
   49718             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49719             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49720             :   false,  /* isInfallible. False in setters. */
   49721             :   false,  /* isMovable.  Not relevant for setters. */
   49722             :   false, /* isEliminatable.  Not relevant for setters. */
   49723             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49724             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49725             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49726             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49727             : };
   49728             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49729             : static_assert(0 < 1, "There is no slot for us");
   49730             : 
   49731             : static bool
   49732           0 : get__moz_border_end_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49733             : {
   49734           0 :   binding_detail::FastErrorResult rv;
   49735           0 :   DOMString result;
   49736           0 :   self->GetMozBorderEndWidth(result, rv);
   49737           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49738           0 :     return false;
   49739             :   }
   49740           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49741           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49742           0 :     return false;
   49743             :   }
   49744           0 :   return true;
   49745             : }
   49746             : 
   49747             : static bool
   49748           0 : set__moz_border_end_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49749             : {
   49750           0 :   binding_detail::FakeString arg0;
   49751           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49752           0 :     return false;
   49753             :   }
   49754           0 :   binding_detail::FastErrorResult rv;
   49755           0 :   self->SetMozBorderEndWidth(NonNullHelper(Constify(arg0)), rv);
   49756           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49757           0 :     return false;
   49758             :   }
   49759           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49760             : 
   49761           0 :   return true;
   49762             : }
   49763             : 
   49764             : static const JSJitInfo _moz_border_end_width_getterinfo = {
   49765             :   { (JSJitGetterOp)get__moz_border_end_width },
   49766             :   { prototypes::id::CSS2Properties },
   49767             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49768             :   JSJitInfo::Getter,
   49769             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49770             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49771             :   false,  /* isInfallible. False in setters. */
   49772             :   false,  /* isMovable.  Not relevant for setters. */
   49773             :   false, /* isEliminatable.  Not relevant for setters. */
   49774             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49775             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49776             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49777             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49778             : };
   49779             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49780             : static_assert(0 < 1, "There is no slot for us");
   49781             : static const JSJitInfo _moz_border_end_width_setterinfo = {
   49782             :   { (JSJitGetterOp)set__moz_border_end_width },
   49783             :   { prototypes::id::CSS2Properties },
   49784             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49785             :   JSJitInfo::Setter,
   49786             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49787             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49788             :   false,  /* isInfallible. False in setters. */
   49789             :   false,  /* isMovable.  Not relevant for setters. */
   49790             :   false, /* isEliminatable.  Not relevant for setters. */
   49791             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49792             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49793             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49794             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49795             : };
   49796             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49797             : static_assert(0 < 1, "There is no slot for us");
   49798             : 
   49799             : static bool
   49800           0 : get_MozBorderStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49801             : {
   49802           0 :   binding_detail::FastErrorResult rv;
   49803           0 :   DOMString result;
   49804           0 :   self->GetMozBorderStart(result, rv);
   49805           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49806           0 :     return false;
   49807             :   }
   49808           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49809           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49810           0 :     return false;
   49811             :   }
   49812           0 :   return true;
   49813             : }
   49814             : 
   49815             : static bool
   49816           0 : set_MozBorderStart(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49817             : {
   49818           0 :   binding_detail::FakeString arg0;
   49819           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49820           0 :     return false;
   49821             :   }
   49822           0 :   binding_detail::FastErrorResult rv;
   49823           0 :   self->SetMozBorderStart(NonNullHelper(Constify(arg0)), rv);
   49824           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49825           0 :     return false;
   49826             :   }
   49827           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49828             : 
   49829           0 :   return true;
   49830             : }
   49831             : 
   49832             : static const JSJitInfo MozBorderStart_getterinfo = {
   49833             :   { (JSJitGetterOp)get_MozBorderStart },
   49834             :   { prototypes::id::CSS2Properties },
   49835             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49836             :   JSJitInfo::Getter,
   49837             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49838             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49839             :   false,  /* isInfallible. False in setters. */
   49840             :   false,  /* isMovable.  Not relevant for setters. */
   49841             :   false, /* isEliminatable.  Not relevant for setters. */
   49842             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49843             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49844             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49845             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49846             : };
   49847             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49848             : static_assert(0 < 1, "There is no slot for us");
   49849             : static const JSJitInfo MozBorderStart_setterinfo = {
   49850             :   { (JSJitGetterOp)set_MozBorderStart },
   49851             :   { prototypes::id::CSS2Properties },
   49852             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49853             :   JSJitInfo::Setter,
   49854             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49855             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49856             :   false,  /* isInfallible. False in setters. */
   49857             :   false,  /* isMovable.  Not relevant for setters. */
   49858             :   false, /* isEliminatable.  Not relevant for setters. */
   49859             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49860             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49861             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49862             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49863             : };
   49864             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49865             : static_assert(0 < 1, "There is no slot for us");
   49866             : 
   49867             : static bool
   49868           0 : get__moz_border_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49869             : {
   49870           0 :   binding_detail::FastErrorResult rv;
   49871           0 :   DOMString result;
   49872           0 :   self->GetMozBorderStart(result, rv);
   49873           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49874           0 :     return false;
   49875             :   }
   49876           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49877           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49878           0 :     return false;
   49879             :   }
   49880           0 :   return true;
   49881             : }
   49882             : 
   49883             : static bool
   49884           0 : set__moz_border_start(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49885             : {
   49886           0 :   binding_detail::FakeString arg0;
   49887           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49888           0 :     return false;
   49889             :   }
   49890           0 :   binding_detail::FastErrorResult rv;
   49891           0 :   self->SetMozBorderStart(NonNullHelper(Constify(arg0)), rv);
   49892           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49893           0 :     return false;
   49894             :   }
   49895           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49896             : 
   49897           0 :   return true;
   49898             : }
   49899             : 
   49900             : static const JSJitInfo _moz_border_start_getterinfo = {
   49901             :   { (JSJitGetterOp)get__moz_border_start },
   49902             :   { prototypes::id::CSS2Properties },
   49903             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49904             :   JSJitInfo::Getter,
   49905             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49906             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49907             :   false,  /* isInfallible. False in setters. */
   49908             :   false,  /* isMovable.  Not relevant for setters. */
   49909             :   false, /* isEliminatable.  Not relevant for setters. */
   49910             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49911             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49912             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49913             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49914             : };
   49915             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49916             : static_assert(0 < 1, "There is no slot for us");
   49917             : static const JSJitInfo _moz_border_start_setterinfo = {
   49918             :   { (JSJitGetterOp)set__moz_border_start },
   49919             :   { prototypes::id::CSS2Properties },
   49920             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49921             :   JSJitInfo::Setter,
   49922             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49923             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49924             :   false,  /* isInfallible. False in setters. */
   49925             :   false,  /* isMovable.  Not relevant for setters. */
   49926             :   false, /* isEliminatable.  Not relevant for setters. */
   49927             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49928             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49929             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49930             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49931             : };
   49932             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49933             : static_assert(0 < 1, "There is no slot for us");
   49934             : 
   49935             : static bool
   49936           0 : get_MozBorderStartColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   49937             : {
   49938           0 :   binding_detail::FastErrorResult rv;
   49939           0 :   DOMString result;
   49940           0 :   self->GetMozBorderStartColor(result, rv);
   49941           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49942           0 :     return false;
   49943             :   }
   49944           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49945           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   49946           0 :     return false;
   49947             :   }
   49948           0 :   return true;
   49949             : }
   49950             : 
   49951             : static bool
   49952           0 : set_MozBorderStartColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   49953             : {
   49954           0 :   binding_detail::FakeString arg0;
   49955           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   49956           0 :     return false;
   49957             :   }
   49958           0 :   binding_detail::FastErrorResult rv;
   49959           0 :   self->SetMozBorderStartColor(NonNullHelper(Constify(arg0)), rv);
   49960           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   49961           0 :     return false;
   49962             :   }
   49963           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   49964             : 
   49965           0 :   return true;
   49966             : }
   49967             : 
   49968             : static const JSJitInfo MozBorderStartColor_getterinfo = {
   49969             :   { (JSJitGetterOp)get_MozBorderStartColor },
   49970             :   { prototypes::id::CSS2Properties },
   49971             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49972             :   JSJitInfo::Getter,
   49973             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49974             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   49975             :   false,  /* isInfallible. False in setters. */
   49976             :   false,  /* isMovable.  Not relevant for setters. */
   49977             :   false, /* isEliminatable.  Not relevant for setters. */
   49978             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49979             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49980             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49981             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49982             : };
   49983             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   49984             : static_assert(0 < 1, "There is no slot for us");
   49985             : static const JSJitInfo MozBorderStartColor_setterinfo = {
   49986             :   { (JSJitGetterOp)set_MozBorderStartColor },
   49987             :   { prototypes::id::CSS2Properties },
   49988             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   49989             :   JSJitInfo::Setter,
   49990             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   49991             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   49992             :   false,  /* isInfallible. False in setters. */
   49993             :   false,  /* isMovable.  Not relevant for setters. */
   49994             :   false, /* isEliminatable.  Not relevant for setters. */
   49995             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   49996             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   49997             :   false,  /* isTypedMethod.  Only relevant for methods. */
   49998             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   49999             : };
   50000             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50001             : static_assert(0 < 1, "There is no slot for us");
   50002             : 
   50003             : static bool
   50004           0 : get__moz_border_start_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50005             : {
   50006           0 :   binding_detail::FastErrorResult rv;
   50007           0 :   DOMString result;
   50008           0 :   self->GetMozBorderStartColor(result, rv);
   50009           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50010           0 :     return false;
   50011             :   }
   50012           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50013           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50014           0 :     return false;
   50015             :   }
   50016           0 :   return true;
   50017             : }
   50018             : 
   50019             : static bool
   50020           0 : set__moz_border_start_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50021             : {
   50022           0 :   binding_detail::FakeString arg0;
   50023           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50024           0 :     return false;
   50025             :   }
   50026           0 :   binding_detail::FastErrorResult rv;
   50027           0 :   self->SetMozBorderStartColor(NonNullHelper(Constify(arg0)), rv);
   50028           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50029           0 :     return false;
   50030             :   }
   50031           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50032             : 
   50033           0 :   return true;
   50034             : }
   50035             : 
   50036             : static const JSJitInfo _moz_border_start_color_getterinfo = {
   50037             :   { (JSJitGetterOp)get__moz_border_start_color },
   50038             :   { prototypes::id::CSS2Properties },
   50039             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50040             :   JSJitInfo::Getter,
   50041             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50042             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50043             :   false,  /* isInfallible. False in setters. */
   50044             :   false,  /* isMovable.  Not relevant for setters. */
   50045             :   false, /* isEliminatable.  Not relevant for setters. */
   50046             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50047             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50048             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50049             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50050             : };
   50051             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50052             : static_assert(0 < 1, "There is no slot for us");
   50053             : static const JSJitInfo _moz_border_start_color_setterinfo = {
   50054             :   { (JSJitGetterOp)set__moz_border_start_color },
   50055             :   { prototypes::id::CSS2Properties },
   50056             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50057             :   JSJitInfo::Setter,
   50058             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50059             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50060             :   false,  /* isInfallible. False in setters. */
   50061             :   false,  /* isMovable.  Not relevant for setters. */
   50062             :   false, /* isEliminatable.  Not relevant for setters. */
   50063             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50064             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50065             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50066             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50067             : };
   50068             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50069             : static_assert(0 < 1, "There is no slot for us");
   50070             : 
   50071             : static bool
   50072           0 : get_MozBorderStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50073             : {
   50074           0 :   binding_detail::FastErrorResult rv;
   50075           0 :   DOMString result;
   50076           0 :   self->GetMozBorderStartStyle(result, rv);
   50077           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50078           0 :     return false;
   50079             :   }
   50080           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50081           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50082           0 :     return false;
   50083             :   }
   50084           0 :   return true;
   50085             : }
   50086             : 
   50087             : static bool
   50088           0 : set_MozBorderStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50089             : {
   50090           0 :   binding_detail::FakeString arg0;
   50091           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50092           0 :     return false;
   50093             :   }
   50094           0 :   binding_detail::FastErrorResult rv;
   50095           0 :   self->SetMozBorderStartStyle(NonNullHelper(Constify(arg0)), rv);
   50096           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50097           0 :     return false;
   50098             :   }
   50099           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50100             : 
   50101           0 :   return true;
   50102             : }
   50103             : 
   50104             : static const JSJitInfo MozBorderStartStyle_getterinfo = {
   50105             :   { (JSJitGetterOp)get_MozBorderStartStyle },
   50106             :   { prototypes::id::CSS2Properties },
   50107             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50108             :   JSJitInfo::Getter,
   50109             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50110             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50111             :   false,  /* isInfallible. False in setters. */
   50112             :   false,  /* isMovable.  Not relevant for setters. */
   50113             :   false, /* isEliminatable.  Not relevant for setters. */
   50114             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50115             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50116             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50117             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50118             : };
   50119             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50120             : static_assert(0 < 1, "There is no slot for us");
   50121             : static const JSJitInfo MozBorderStartStyle_setterinfo = {
   50122             :   { (JSJitGetterOp)set_MozBorderStartStyle },
   50123             :   { prototypes::id::CSS2Properties },
   50124             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50125             :   JSJitInfo::Setter,
   50126             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50127             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50128             :   false,  /* isInfallible. False in setters. */
   50129             :   false,  /* isMovable.  Not relevant for setters. */
   50130             :   false, /* isEliminatable.  Not relevant for setters. */
   50131             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50132             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50133             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50134             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50135             : };
   50136             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50137             : static_assert(0 < 1, "There is no slot for us");
   50138             : 
   50139             : static bool
   50140           0 : get__moz_border_start_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50141             : {
   50142           0 :   binding_detail::FastErrorResult rv;
   50143           0 :   DOMString result;
   50144           0 :   self->GetMozBorderStartStyle(result, rv);
   50145           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50146           0 :     return false;
   50147             :   }
   50148           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50149           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50150           0 :     return false;
   50151             :   }
   50152           0 :   return true;
   50153             : }
   50154             : 
   50155             : static bool
   50156           0 : set__moz_border_start_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50157             : {
   50158           0 :   binding_detail::FakeString arg0;
   50159           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50160           0 :     return false;
   50161             :   }
   50162           0 :   binding_detail::FastErrorResult rv;
   50163           0 :   self->SetMozBorderStartStyle(NonNullHelper(Constify(arg0)), rv);
   50164           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50165           0 :     return false;
   50166             :   }
   50167           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50168             : 
   50169           0 :   return true;
   50170             : }
   50171             : 
   50172             : static const JSJitInfo _moz_border_start_style_getterinfo = {
   50173             :   { (JSJitGetterOp)get__moz_border_start_style },
   50174             :   { prototypes::id::CSS2Properties },
   50175             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50176             :   JSJitInfo::Getter,
   50177             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50178             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50179             :   false,  /* isInfallible. False in setters. */
   50180             :   false,  /* isMovable.  Not relevant for setters. */
   50181             :   false, /* isEliminatable.  Not relevant for setters. */
   50182             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50183             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50184             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50185             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50186             : };
   50187             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50188             : static_assert(0 < 1, "There is no slot for us");
   50189             : static const JSJitInfo _moz_border_start_style_setterinfo = {
   50190             :   { (JSJitGetterOp)set__moz_border_start_style },
   50191             :   { prototypes::id::CSS2Properties },
   50192             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50193             :   JSJitInfo::Setter,
   50194             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50195             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50196             :   false,  /* isInfallible. False in setters. */
   50197             :   false,  /* isMovable.  Not relevant for setters. */
   50198             :   false, /* isEliminatable.  Not relevant for setters. */
   50199             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50200             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50201             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50202             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50203             : };
   50204             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50205             : static_assert(0 < 1, "There is no slot for us");
   50206             : 
   50207             : static bool
   50208           0 : get_MozBorderStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50209             : {
   50210           0 :   binding_detail::FastErrorResult rv;
   50211           0 :   DOMString result;
   50212           0 :   self->GetMozBorderStartWidth(result, rv);
   50213           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50214           0 :     return false;
   50215             :   }
   50216           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50217           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50218           0 :     return false;
   50219             :   }
   50220           0 :   return true;
   50221             : }
   50222             : 
   50223             : static bool
   50224           0 : set_MozBorderStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50225             : {
   50226           0 :   binding_detail::FakeString arg0;
   50227           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50228           0 :     return false;
   50229             :   }
   50230           0 :   binding_detail::FastErrorResult rv;
   50231           0 :   self->SetMozBorderStartWidth(NonNullHelper(Constify(arg0)), rv);
   50232           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50233           0 :     return false;
   50234             :   }
   50235           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50236             : 
   50237           0 :   return true;
   50238             : }
   50239             : 
   50240             : static const JSJitInfo MozBorderStartWidth_getterinfo = {
   50241             :   { (JSJitGetterOp)get_MozBorderStartWidth },
   50242             :   { prototypes::id::CSS2Properties },
   50243             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50244             :   JSJitInfo::Getter,
   50245             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50246             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50247             :   false,  /* isInfallible. False in setters. */
   50248             :   false,  /* isMovable.  Not relevant for setters. */
   50249             :   false, /* isEliminatable.  Not relevant for setters. */
   50250             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50251             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50252             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50253             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50254             : };
   50255             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50256             : static_assert(0 < 1, "There is no slot for us");
   50257             : static const JSJitInfo MozBorderStartWidth_setterinfo = {
   50258             :   { (JSJitGetterOp)set_MozBorderStartWidth },
   50259             :   { prototypes::id::CSS2Properties },
   50260             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50261             :   JSJitInfo::Setter,
   50262             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50263             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50264             :   false,  /* isInfallible. False in setters. */
   50265             :   false,  /* isMovable.  Not relevant for setters. */
   50266             :   false, /* isEliminatable.  Not relevant for setters. */
   50267             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50268             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50269             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50270             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50271             : };
   50272             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50273             : static_assert(0 < 1, "There is no slot for us");
   50274             : 
   50275             : static bool
   50276           0 : get__moz_border_start_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50277             : {
   50278           0 :   binding_detail::FastErrorResult rv;
   50279           0 :   DOMString result;
   50280           0 :   self->GetMozBorderStartWidth(result, rv);
   50281           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50282           0 :     return false;
   50283             :   }
   50284           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50285           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50286           0 :     return false;
   50287             :   }
   50288           0 :   return true;
   50289             : }
   50290             : 
   50291             : static bool
   50292           0 : set__moz_border_start_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50293             : {
   50294           0 :   binding_detail::FakeString arg0;
   50295           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50296           0 :     return false;
   50297             :   }
   50298           0 :   binding_detail::FastErrorResult rv;
   50299           0 :   self->SetMozBorderStartWidth(NonNullHelper(Constify(arg0)), rv);
   50300           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50301           0 :     return false;
   50302             :   }
   50303           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50304             : 
   50305           0 :   return true;
   50306             : }
   50307             : 
   50308             : static const JSJitInfo _moz_border_start_width_getterinfo = {
   50309             :   { (JSJitGetterOp)get__moz_border_start_width },
   50310             :   { prototypes::id::CSS2Properties },
   50311             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50312             :   JSJitInfo::Getter,
   50313             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50314             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50315             :   false,  /* isInfallible. False in setters. */
   50316             :   false,  /* isMovable.  Not relevant for setters. */
   50317             :   false, /* isEliminatable.  Not relevant for setters. */
   50318             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50319             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50320             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50321             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50322             : };
   50323             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50324             : static_assert(0 < 1, "There is no slot for us");
   50325             : static const JSJitInfo _moz_border_start_width_setterinfo = {
   50326             :   { (JSJitGetterOp)set__moz_border_start_width },
   50327             :   { prototypes::id::CSS2Properties },
   50328             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50329             :   JSJitInfo::Setter,
   50330             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50331             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50332             :   false,  /* isInfallible. False in setters. */
   50333             :   false,  /* isMovable.  Not relevant for setters. */
   50334             :   false, /* isEliminatable.  Not relevant for setters. */
   50335             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50336             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50337             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50338             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50339             : };
   50340             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50341             : static_assert(0 < 1, "There is no slot for us");
   50342             : 
   50343             : static bool
   50344           0 : get_MozHyphens(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50345             : {
   50346           0 :   binding_detail::FastErrorResult rv;
   50347           0 :   DOMString result;
   50348           0 :   self->GetMozHyphens(result, rv);
   50349           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50350           0 :     return false;
   50351             :   }
   50352           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50353           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50354           0 :     return false;
   50355             :   }
   50356           0 :   return true;
   50357             : }
   50358             : 
   50359             : static bool
   50360           0 : set_MozHyphens(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50361             : {
   50362           0 :   binding_detail::FakeString arg0;
   50363           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50364           0 :     return false;
   50365             :   }
   50366           0 :   binding_detail::FastErrorResult rv;
   50367           0 :   self->SetMozHyphens(NonNullHelper(Constify(arg0)), rv);
   50368           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50369           0 :     return false;
   50370             :   }
   50371           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50372             : 
   50373           0 :   return true;
   50374             : }
   50375             : 
   50376             : static const JSJitInfo MozHyphens_getterinfo = {
   50377             :   { (JSJitGetterOp)get_MozHyphens },
   50378             :   { prototypes::id::CSS2Properties },
   50379             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50380             :   JSJitInfo::Getter,
   50381             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50382             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50383             :   false,  /* isInfallible. False in setters. */
   50384             :   false,  /* isMovable.  Not relevant for setters. */
   50385             :   false, /* isEliminatable.  Not relevant for setters. */
   50386             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50387             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50388             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50389             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50390             : };
   50391             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50392             : static_assert(0 < 1, "There is no slot for us");
   50393             : static const JSJitInfo MozHyphens_setterinfo = {
   50394             :   { (JSJitGetterOp)set_MozHyphens },
   50395             :   { prototypes::id::CSS2Properties },
   50396             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50397             :   JSJitInfo::Setter,
   50398             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50399             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50400             :   false,  /* isInfallible. False in setters. */
   50401             :   false,  /* isMovable.  Not relevant for setters. */
   50402             :   false, /* isEliminatable.  Not relevant for setters. */
   50403             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50404             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50405             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50406             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50407             : };
   50408             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50409             : static_assert(0 < 1, "There is no slot for us");
   50410             : 
   50411             : static bool
   50412           0 : get__moz_hyphens(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50413             : {
   50414           0 :   binding_detail::FastErrorResult rv;
   50415           0 :   DOMString result;
   50416           0 :   self->GetMozHyphens(result, rv);
   50417           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50418           0 :     return false;
   50419             :   }
   50420           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50421           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50422           0 :     return false;
   50423             :   }
   50424           0 :   return true;
   50425             : }
   50426             : 
   50427             : static bool
   50428           0 : set__moz_hyphens(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50429             : {
   50430           0 :   binding_detail::FakeString arg0;
   50431           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50432           0 :     return false;
   50433             :   }
   50434           0 :   binding_detail::FastErrorResult rv;
   50435           0 :   self->SetMozHyphens(NonNullHelper(Constify(arg0)), rv);
   50436           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50437           0 :     return false;
   50438             :   }
   50439           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50440             : 
   50441           0 :   return true;
   50442             : }
   50443             : 
   50444             : static const JSJitInfo _moz_hyphens_getterinfo = {
   50445             :   { (JSJitGetterOp)get__moz_hyphens },
   50446             :   { prototypes::id::CSS2Properties },
   50447             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50448             :   JSJitInfo::Getter,
   50449             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50450             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50451             :   false,  /* isInfallible. False in setters. */
   50452             :   false,  /* isMovable.  Not relevant for setters. */
   50453             :   false, /* isEliminatable.  Not relevant for setters. */
   50454             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50455             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50456             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50457             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50458             : };
   50459             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50460             : static_assert(0 < 1, "There is no slot for us");
   50461             : static const JSJitInfo _moz_hyphens_setterinfo = {
   50462             :   { (JSJitGetterOp)set__moz_hyphens },
   50463             :   { prototypes::id::CSS2Properties },
   50464             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50465             :   JSJitInfo::Setter,
   50466             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50467             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50468             :   false,  /* isInfallible. False in setters. */
   50469             :   false,  /* isMovable.  Not relevant for setters. */
   50470             :   false, /* isEliminatable.  Not relevant for setters. */
   50471             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50472             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50473             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50474             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50475             : };
   50476             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50477             : static_assert(0 < 1, "There is no slot for us");
   50478             : 
   50479             : static bool
   50480           0 : get_MozColumnCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50481             : {
   50482           0 :   binding_detail::FastErrorResult rv;
   50483           0 :   DOMString result;
   50484           0 :   self->GetMozColumnCount(result, rv);
   50485           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50486           0 :     return false;
   50487             :   }
   50488           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50489           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50490           0 :     return false;
   50491             :   }
   50492           0 :   return true;
   50493             : }
   50494             : 
   50495             : static bool
   50496           0 : set_MozColumnCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50497             : {
   50498           0 :   binding_detail::FakeString arg0;
   50499           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50500           0 :     return false;
   50501             :   }
   50502           0 :   binding_detail::FastErrorResult rv;
   50503           0 :   self->SetMozColumnCount(NonNullHelper(Constify(arg0)), rv);
   50504           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50505           0 :     return false;
   50506             :   }
   50507           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50508             : 
   50509           0 :   return true;
   50510             : }
   50511             : 
   50512             : static const JSJitInfo MozColumnCount_getterinfo = {
   50513             :   { (JSJitGetterOp)get_MozColumnCount },
   50514             :   { prototypes::id::CSS2Properties },
   50515             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50516             :   JSJitInfo::Getter,
   50517             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50518             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50519             :   false,  /* isInfallible. False in setters. */
   50520             :   false,  /* isMovable.  Not relevant for setters. */
   50521             :   false, /* isEliminatable.  Not relevant for setters. */
   50522             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50523             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50524             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50525             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50526             : };
   50527             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50528             : static_assert(0 < 1, "There is no slot for us");
   50529             : static const JSJitInfo MozColumnCount_setterinfo = {
   50530             :   { (JSJitGetterOp)set_MozColumnCount },
   50531             :   { prototypes::id::CSS2Properties },
   50532             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50533             :   JSJitInfo::Setter,
   50534             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50535             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50536             :   false,  /* isInfallible. False in setters. */
   50537             :   false,  /* isMovable.  Not relevant for setters. */
   50538             :   false, /* isEliminatable.  Not relevant for setters. */
   50539             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50540             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50541             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50542             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50543             : };
   50544             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50545             : static_assert(0 < 1, "There is no slot for us");
   50546             : 
   50547             : static bool
   50548           0 : get__moz_column_count(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50549             : {
   50550           0 :   binding_detail::FastErrorResult rv;
   50551           0 :   DOMString result;
   50552           0 :   self->GetMozColumnCount(result, rv);
   50553           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50554           0 :     return false;
   50555             :   }
   50556           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50557           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50558           0 :     return false;
   50559             :   }
   50560           0 :   return true;
   50561             : }
   50562             : 
   50563             : static bool
   50564           0 : set__moz_column_count(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50565             : {
   50566           0 :   binding_detail::FakeString arg0;
   50567           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50568           0 :     return false;
   50569             :   }
   50570           0 :   binding_detail::FastErrorResult rv;
   50571           0 :   self->SetMozColumnCount(NonNullHelper(Constify(arg0)), rv);
   50572           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50573           0 :     return false;
   50574             :   }
   50575           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50576             : 
   50577           0 :   return true;
   50578             : }
   50579             : 
   50580             : static const JSJitInfo _moz_column_count_getterinfo = {
   50581             :   { (JSJitGetterOp)get__moz_column_count },
   50582             :   { prototypes::id::CSS2Properties },
   50583             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50584             :   JSJitInfo::Getter,
   50585             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50586             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50587             :   false,  /* isInfallible. False in setters. */
   50588             :   false,  /* isMovable.  Not relevant for setters. */
   50589             :   false, /* isEliminatable.  Not relevant for setters. */
   50590             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50591             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50592             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50593             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50594             : };
   50595             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50596             : static_assert(0 < 1, "There is no slot for us");
   50597             : static const JSJitInfo _moz_column_count_setterinfo = {
   50598             :   { (JSJitGetterOp)set__moz_column_count },
   50599             :   { prototypes::id::CSS2Properties },
   50600             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50601             :   JSJitInfo::Setter,
   50602             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50603             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50604             :   false,  /* isInfallible. False in setters. */
   50605             :   false,  /* isMovable.  Not relevant for setters. */
   50606             :   false, /* isEliminatable.  Not relevant for setters. */
   50607             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50608             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50609             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50610             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50611             : };
   50612             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50613             : static_assert(0 < 1, "There is no slot for us");
   50614             : 
   50615             : static bool
   50616           0 : get_MozColumnFill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50617             : {
   50618           0 :   binding_detail::FastErrorResult rv;
   50619           0 :   DOMString result;
   50620           0 :   self->GetMozColumnFill(result, rv);
   50621           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50622           0 :     return false;
   50623             :   }
   50624           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50625           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50626           0 :     return false;
   50627             :   }
   50628           0 :   return true;
   50629             : }
   50630             : 
   50631             : static bool
   50632           0 : set_MozColumnFill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50633             : {
   50634           0 :   binding_detail::FakeString arg0;
   50635           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50636           0 :     return false;
   50637             :   }
   50638           0 :   binding_detail::FastErrorResult rv;
   50639           0 :   self->SetMozColumnFill(NonNullHelper(Constify(arg0)), rv);
   50640           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50641           0 :     return false;
   50642             :   }
   50643           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50644             : 
   50645           0 :   return true;
   50646             : }
   50647             : 
   50648             : static const JSJitInfo MozColumnFill_getterinfo = {
   50649             :   { (JSJitGetterOp)get_MozColumnFill },
   50650             :   { prototypes::id::CSS2Properties },
   50651             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50652             :   JSJitInfo::Getter,
   50653             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50654             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50655             :   false,  /* isInfallible. False in setters. */
   50656             :   false,  /* isMovable.  Not relevant for setters. */
   50657             :   false, /* isEliminatable.  Not relevant for setters. */
   50658             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50659             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50660             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50661             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50662             : };
   50663             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50664             : static_assert(0 < 1, "There is no slot for us");
   50665             : static const JSJitInfo MozColumnFill_setterinfo = {
   50666             :   { (JSJitGetterOp)set_MozColumnFill },
   50667             :   { prototypes::id::CSS2Properties },
   50668             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50669             :   JSJitInfo::Setter,
   50670             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50671             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50672             :   false,  /* isInfallible. False in setters. */
   50673             :   false,  /* isMovable.  Not relevant for setters. */
   50674             :   false, /* isEliminatable.  Not relevant for setters. */
   50675             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50676             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50677             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50678             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50679             : };
   50680             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50681             : static_assert(0 < 1, "There is no slot for us");
   50682             : 
   50683             : static bool
   50684           0 : get__moz_column_fill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50685             : {
   50686           0 :   binding_detail::FastErrorResult rv;
   50687           0 :   DOMString result;
   50688           0 :   self->GetMozColumnFill(result, rv);
   50689           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50690           0 :     return false;
   50691             :   }
   50692           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50693           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50694           0 :     return false;
   50695             :   }
   50696           0 :   return true;
   50697             : }
   50698             : 
   50699             : static bool
   50700           0 : set__moz_column_fill(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50701             : {
   50702           0 :   binding_detail::FakeString arg0;
   50703           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50704           0 :     return false;
   50705             :   }
   50706           0 :   binding_detail::FastErrorResult rv;
   50707           0 :   self->SetMozColumnFill(NonNullHelper(Constify(arg0)), rv);
   50708           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50709           0 :     return false;
   50710             :   }
   50711           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50712             : 
   50713           0 :   return true;
   50714             : }
   50715             : 
   50716             : static const JSJitInfo _moz_column_fill_getterinfo = {
   50717             :   { (JSJitGetterOp)get__moz_column_fill },
   50718             :   { prototypes::id::CSS2Properties },
   50719             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50720             :   JSJitInfo::Getter,
   50721             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50722             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50723             :   false,  /* isInfallible. False in setters. */
   50724             :   false,  /* isMovable.  Not relevant for setters. */
   50725             :   false, /* isEliminatable.  Not relevant for setters. */
   50726             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50727             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50728             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50729             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50730             : };
   50731             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50732             : static_assert(0 < 1, "There is no slot for us");
   50733             : static const JSJitInfo _moz_column_fill_setterinfo = {
   50734             :   { (JSJitGetterOp)set__moz_column_fill },
   50735             :   { prototypes::id::CSS2Properties },
   50736             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50737             :   JSJitInfo::Setter,
   50738             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50739             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50740             :   false,  /* isInfallible. False in setters. */
   50741             :   false,  /* isMovable.  Not relevant for setters. */
   50742             :   false, /* isEliminatable.  Not relevant for setters. */
   50743             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50744             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50745             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50746             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50747             : };
   50748             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50749             : static_assert(0 < 1, "There is no slot for us");
   50750             : 
   50751             : static bool
   50752           0 : get_MozColumnGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50753             : {
   50754           0 :   binding_detail::FastErrorResult rv;
   50755           0 :   DOMString result;
   50756           0 :   self->GetMozColumnGap(result, rv);
   50757           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50758           0 :     return false;
   50759             :   }
   50760           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50761           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50762           0 :     return false;
   50763             :   }
   50764           0 :   return true;
   50765             : }
   50766             : 
   50767             : static bool
   50768           0 : set_MozColumnGap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50769             : {
   50770           0 :   binding_detail::FakeString arg0;
   50771           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50772           0 :     return false;
   50773             :   }
   50774           0 :   binding_detail::FastErrorResult rv;
   50775           0 :   self->SetMozColumnGap(NonNullHelper(Constify(arg0)), rv);
   50776           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50777           0 :     return false;
   50778             :   }
   50779           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50780             : 
   50781           0 :   return true;
   50782             : }
   50783             : 
   50784             : static const JSJitInfo MozColumnGap_getterinfo = {
   50785             :   { (JSJitGetterOp)get_MozColumnGap },
   50786             :   { prototypes::id::CSS2Properties },
   50787             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50788             :   JSJitInfo::Getter,
   50789             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50790             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50791             :   false,  /* isInfallible. False in setters. */
   50792             :   false,  /* isMovable.  Not relevant for setters. */
   50793             :   false, /* isEliminatable.  Not relevant for setters. */
   50794             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50795             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50796             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50797             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50798             : };
   50799             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50800             : static_assert(0 < 1, "There is no slot for us");
   50801             : static const JSJitInfo MozColumnGap_setterinfo = {
   50802             :   { (JSJitGetterOp)set_MozColumnGap },
   50803             :   { prototypes::id::CSS2Properties },
   50804             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50805             :   JSJitInfo::Setter,
   50806             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50807             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50808             :   false,  /* isInfallible. False in setters. */
   50809             :   false,  /* isMovable.  Not relevant for setters. */
   50810             :   false, /* isEliminatable.  Not relevant for setters. */
   50811             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50812             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50813             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50814             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50815             : };
   50816             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50817             : static_assert(0 < 1, "There is no slot for us");
   50818             : 
   50819             : static bool
   50820           0 : get__moz_column_gap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50821             : {
   50822           0 :   binding_detail::FastErrorResult rv;
   50823           0 :   DOMString result;
   50824           0 :   self->GetMozColumnGap(result, rv);
   50825           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50826           0 :     return false;
   50827             :   }
   50828           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50829           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50830           0 :     return false;
   50831             :   }
   50832           0 :   return true;
   50833             : }
   50834             : 
   50835             : static bool
   50836           0 : set__moz_column_gap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50837             : {
   50838           0 :   binding_detail::FakeString arg0;
   50839           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50840           0 :     return false;
   50841             :   }
   50842           0 :   binding_detail::FastErrorResult rv;
   50843           0 :   self->SetMozColumnGap(NonNullHelper(Constify(arg0)), rv);
   50844           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50845           0 :     return false;
   50846             :   }
   50847           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50848             : 
   50849           0 :   return true;
   50850             : }
   50851             : 
   50852             : static const JSJitInfo _moz_column_gap_getterinfo = {
   50853             :   { (JSJitGetterOp)get__moz_column_gap },
   50854             :   { prototypes::id::CSS2Properties },
   50855             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50856             :   JSJitInfo::Getter,
   50857             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50858             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50859             :   false,  /* isInfallible. False in setters. */
   50860             :   false,  /* isMovable.  Not relevant for setters. */
   50861             :   false, /* isEliminatable.  Not relevant for setters. */
   50862             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50863             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50864             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50865             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50866             : };
   50867             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50868             : static_assert(0 < 1, "There is no slot for us");
   50869             : static const JSJitInfo _moz_column_gap_setterinfo = {
   50870             :   { (JSJitGetterOp)set__moz_column_gap },
   50871             :   { prototypes::id::CSS2Properties },
   50872             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50873             :   JSJitInfo::Setter,
   50874             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50875             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50876             :   false,  /* isInfallible. False in setters. */
   50877             :   false,  /* isMovable.  Not relevant for setters. */
   50878             :   false, /* isEliminatable.  Not relevant for setters. */
   50879             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50880             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50881             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50882             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50883             : };
   50884             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50885             : static_assert(0 < 1, "There is no slot for us");
   50886             : 
   50887             : static bool
   50888           0 : get_MozColumnRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50889             : {
   50890           0 :   binding_detail::FastErrorResult rv;
   50891           0 :   DOMString result;
   50892           0 :   self->GetMozColumnRule(result, rv);
   50893           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50894           0 :     return false;
   50895             :   }
   50896           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50897           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50898           0 :     return false;
   50899             :   }
   50900           0 :   return true;
   50901             : }
   50902             : 
   50903             : static bool
   50904           0 : set_MozColumnRule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50905             : {
   50906           0 :   binding_detail::FakeString arg0;
   50907           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50908           0 :     return false;
   50909             :   }
   50910           0 :   binding_detail::FastErrorResult rv;
   50911           0 :   self->SetMozColumnRule(NonNullHelper(Constify(arg0)), rv);
   50912           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50913           0 :     return false;
   50914             :   }
   50915           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50916             : 
   50917           0 :   return true;
   50918             : }
   50919             : 
   50920             : static const JSJitInfo MozColumnRule_getterinfo = {
   50921             :   { (JSJitGetterOp)get_MozColumnRule },
   50922             :   { prototypes::id::CSS2Properties },
   50923             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50924             :   JSJitInfo::Getter,
   50925             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50926             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50927             :   false,  /* isInfallible. False in setters. */
   50928             :   false,  /* isMovable.  Not relevant for setters. */
   50929             :   false, /* isEliminatable.  Not relevant for setters. */
   50930             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50931             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50932             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50933             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50934             : };
   50935             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50936             : static_assert(0 < 1, "There is no slot for us");
   50937             : static const JSJitInfo MozColumnRule_setterinfo = {
   50938             :   { (JSJitGetterOp)set_MozColumnRule },
   50939             :   { prototypes::id::CSS2Properties },
   50940             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50941             :   JSJitInfo::Setter,
   50942             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50943             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   50944             :   false,  /* isInfallible. False in setters. */
   50945             :   false,  /* isMovable.  Not relevant for setters. */
   50946             :   false, /* isEliminatable.  Not relevant for setters. */
   50947             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50948             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   50949             :   false,  /* isTypedMethod.  Only relevant for methods. */
   50950             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   50951             : };
   50952             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   50953             : static_assert(0 < 1, "There is no slot for us");
   50954             : 
   50955             : static bool
   50956           0 : get__moz_column_rule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   50957             : {
   50958           0 :   binding_detail::FastErrorResult rv;
   50959           0 :   DOMString result;
   50960           0 :   self->GetMozColumnRule(result, rv);
   50961           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50962           0 :     return false;
   50963             :   }
   50964           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50965           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   50966           0 :     return false;
   50967             :   }
   50968           0 :   return true;
   50969             : }
   50970             : 
   50971             : static bool
   50972           0 : set__moz_column_rule(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   50973             : {
   50974           0 :   binding_detail::FakeString arg0;
   50975           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   50976           0 :     return false;
   50977             :   }
   50978           0 :   binding_detail::FastErrorResult rv;
   50979           0 :   self->SetMozColumnRule(NonNullHelper(Constify(arg0)), rv);
   50980           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   50981           0 :     return false;
   50982             :   }
   50983           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   50984             : 
   50985           0 :   return true;
   50986             : }
   50987             : 
   50988             : static const JSJitInfo _moz_column_rule_getterinfo = {
   50989             :   { (JSJitGetterOp)get__moz_column_rule },
   50990             :   { prototypes::id::CSS2Properties },
   50991             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   50992             :   JSJitInfo::Getter,
   50993             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   50994             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   50995             :   false,  /* isInfallible. False in setters. */
   50996             :   false,  /* isMovable.  Not relevant for setters. */
   50997             :   false, /* isEliminatable.  Not relevant for setters. */
   50998             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   50999             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51000             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51001             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51002             : };
   51003             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51004             : static_assert(0 < 1, "There is no slot for us");
   51005             : static const JSJitInfo _moz_column_rule_setterinfo = {
   51006             :   { (JSJitGetterOp)set__moz_column_rule },
   51007             :   { prototypes::id::CSS2Properties },
   51008             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51009             :   JSJitInfo::Setter,
   51010             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51011             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51012             :   false,  /* isInfallible. False in setters. */
   51013             :   false,  /* isMovable.  Not relevant for setters. */
   51014             :   false, /* isEliminatable.  Not relevant for setters. */
   51015             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51016             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51017             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51018             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51019             : };
   51020             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51021             : static_assert(0 < 1, "There is no slot for us");
   51022             : 
   51023             : static bool
   51024           0 : get_MozColumnRuleColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51025             : {
   51026           0 :   binding_detail::FastErrorResult rv;
   51027           0 :   DOMString result;
   51028           0 :   self->GetMozColumnRuleColor(result, rv);
   51029           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51030           0 :     return false;
   51031             :   }
   51032           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51033           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51034           0 :     return false;
   51035             :   }
   51036           0 :   return true;
   51037             : }
   51038             : 
   51039             : static bool
   51040           0 : set_MozColumnRuleColor(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51041             : {
   51042           0 :   binding_detail::FakeString arg0;
   51043           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51044           0 :     return false;
   51045             :   }
   51046           0 :   binding_detail::FastErrorResult rv;
   51047           0 :   self->SetMozColumnRuleColor(NonNullHelper(Constify(arg0)), rv);
   51048           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51049           0 :     return false;
   51050             :   }
   51051           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51052             : 
   51053           0 :   return true;
   51054             : }
   51055             : 
   51056             : static const JSJitInfo MozColumnRuleColor_getterinfo = {
   51057             :   { (JSJitGetterOp)get_MozColumnRuleColor },
   51058             :   { prototypes::id::CSS2Properties },
   51059             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51060             :   JSJitInfo::Getter,
   51061             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51062             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51063             :   false,  /* isInfallible. False in setters. */
   51064             :   false,  /* isMovable.  Not relevant for setters. */
   51065             :   false, /* isEliminatable.  Not relevant for setters. */
   51066             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51067             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51068             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51069             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51070             : };
   51071             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51072             : static_assert(0 < 1, "There is no slot for us");
   51073             : static const JSJitInfo MozColumnRuleColor_setterinfo = {
   51074             :   { (JSJitGetterOp)set_MozColumnRuleColor },
   51075             :   { prototypes::id::CSS2Properties },
   51076             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51077             :   JSJitInfo::Setter,
   51078             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51079             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51080             :   false,  /* isInfallible. False in setters. */
   51081             :   false,  /* isMovable.  Not relevant for setters. */
   51082             :   false, /* isEliminatable.  Not relevant for setters. */
   51083             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51084             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51085             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51086             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51087             : };
   51088             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51089             : static_assert(0 < 1, "There is no slot for us");
   51090             : 
   51091             : static bool
   51092           0 : get__moz_column_rule_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51093             : {
   51094           0 :   binding_detail::FastErrorResult rv;
   51095           0 :   DOMString result;
   51096           0 :   self->GetMozColumnRuleColor(result, rv);
   51097           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51098           0 :     return false;
   51099             :   }
   51100           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51101           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51102           0 :     return false;
   51103             :   }
   51104           0 :   return true;
   51105             : }
   51106             : 
   51107             : static bool
   51108           0 : set__moz_column_rule_color(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51109             : {
   51110           0 :   binding_detail::FakeString arg0;
   51111           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51112           0 :     return false;
   51113             :   }
   51114           0 :   binding_detail::FastErrorResult rv;
   51115           0 :   self->SetMozColumnRuleColor(NonNullHelper(Constify(arg0)), rv);
   51116           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51117           0 :     return false;
   51118             :   }
   51119           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51120             : 
   51121           0 :   return true;
   51122             : }
   51123             : 
   51124             : static const JSJitInfo _moz_column_rule_color_getterinfo = {
   51125             :   { (JSJitGetterOp)get__moz_column_rule_color },
   51126             :   { prototypes::id::CSS2Properties },
   51127             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51128             :   JSJitInfo::Getter,
   51129             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51130             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51131             :   false,  /* isInfallible. False in setters. */
   51132             :   false,  /* isMovable.  Not relevant for setters. */
   51133             :   false, /* isEliminatable.  Not relevant for setters. */
   51134             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51135             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51136             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51137             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51138             : };
   51139             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51140             : static_assert(0 < 1, "There is no slot for us");
   51141             : static const JSJitInfo _moz_column_rule_color_setterinfo = {
   51142             :   { (JSJitGetterOp)set__moz_column_rule_color },
   51143             :   { prototypes::id::CSS2Properties },
   51144             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51145             :   JSJitInfo::Setter,
   51146             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51147             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51148             :   false,  /* isInfallible. False in setters. */
   51149             :   false,  /* isMovable.  Not relevant for setters. */
   51150             :   false, /* isEliminatable.  Not relevant for setters. */
   51151             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51152             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51153             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51154             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51155             : };
   51156             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51157             : static_assert(0 < 1, "There is no slot for us");
   51158             : 
   51159             : static bool
   51160           0 : get_MozColumnRuleStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51161             : {
   51162           0 :   binding_detail::FastErrorResult rv;
   51163           0 :   DOMString result;
   51164           0 :   self->GetMozColumnRuleStyle(result, rv);
   51165           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51166           0 :     return false;
   51167             :   }
   51168           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51169           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51170           0 :     return false;
   51171             :   }
   51172           0 :   return true;
   51173             : }
   51174             : 
   51175             : static bool
   51176           0 : set_MozColumnRuleStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51177             : {
   51178           0 :   binding_detail::FakeString arg0;
   51179           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51180           0 :     return false;
   51181             :   }
   51182           0 :   binding_detail::FastErrorResult rv;
   51183           0 :   self->SetMozColumnRuleStyle(NonNullHelper(Constify(arg0)), rv);
   51184           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51185           0 :     return false;
   51186             :   }
   51187           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51188             : 
   51189           0 :   return true;
   51190             : }
   51191             : 
   51192             : static const JSJitInfo MozColumnRuleStyle_getterinfo = {
   51193             :   { (JSJitGetterOp)get_MozColumnRuleStyle },
   51194             :   { prototypes::id::CSS2Properties },
   51195             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51196             :   JSJitInfo::Getter,
   51197             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51198             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51199             :   false,  /* isInfallible. False in setters. */
   51200             :   false,  /* isMovable.  Not relevant for setters. */
   51201             :   false, /* isEliminatable.  Not relevant for setters. */
   51202             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51203             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51204             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51205             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51206             : };
   51207             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51208             : static_assert(0 < 1, "There is no slot for us");
   51209             : static const JSJitInfo MozColumnRuleStyle_setterinfo = {
   51210             :   { (JSJitGetterOp)set_MozColumnRuleStyle },
   51211             :   { prototypes::id::CSS2Properties },
   51212             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51213             :   JSJitInfo::Setter,
   51214             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51215             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51216             :   false,  /* isInfallible. False in setters. */
   51217             :   false,  /* isMovable.  Not relevant for setters. */
   51218             :   false, /* isEliminatable.  Not relevant for setters. */
   51219             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51220             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51221             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51222             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51223             : };
   51224             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51225             : static_assert(0 < 1, "There is no slot for us");
   51226             : 
   51227             : static bool
   51228           0 : get__moz_column_rule_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51229             : {
   51230           0 :   binding_detail::FastErrorResult rv;
   51231           0 :   DOMString result;
   51232           0 :   self->GetMozColumnRuleStyle(result, rv);
   51233           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51234           0 :     return false;
   51235             :   }
   51236           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51237           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51238           0 :     return false;
   51239             :   }
   51240           0 :   return true;
   51241             : }
   51242             : 
   51243             : static bool
   51244           0 : set__moz_column_rule_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51245             : {
   51246           0 :   binding_detail::FakeString arg0;
   51247           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51248           0 :     return false;
   51249             :   }
   51250           0 :   binding_detail::FastErrorResult rv;
   51251           0 :   self->SetMozColumnRuleStyle(NonNullHelper(Constify(arg0)), rv);
   51252           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51253           0 :     return false;
   51254             :   }
   51255           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51256             : 
   51257           0 :   return true;
   51258             : }
   51259             : 
   51260             : static const JSJitInfo _moz_column_rule_style_getterinfo = {
   51261             :   { (JSJitGetterOp)get__moz_column_rule_style },
   51262             :   { prototypes::id::CSS2Properties },
   51263             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51264             :   JSJitInfo::Getter,
   51265             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51266             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51267             :   false,  /* isInfallible. False in setters. */
   51268             :   false,  /* isMovable.  Not relevant for setters. */
   51269             :   false, /* isEliminatable.  Not relevant for setters. */
   51270             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51271             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51272             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51273             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51274             : };
   51275             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51276             : static_assert(0 < 1, "There is no slot for us");
   51277             : static const JSJitInfo _moz_column_rule_style_setterinfo = {
   51278             :   { (JSJitGetterOp)set__moz_column_rule_style },
   51279             :   { prototypes::id::CSS2Properties },
   51280             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51281             :   JSJitInfo::Setter,
   51282             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51283             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51284             :   false,  /* isInfallible. False in setters. */
   51285             :   false,  /* isMovable.  Not relevant for setters. */
   51286             :   false, /* isEliminatable.  Not relevant for setters. */
   51287             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51288             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51289             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51290             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51291             : };
   51292             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51293             : static_assert(0 < 1, "There is no slot for us");
   51294             : 
   51295             : static bool
   51296           0 : get_MozColumnRuleWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51297             : {
   51298           0 :   binding_detail::FastErrorResult rv;
   51299           0 :   DOMString result;
   51300           0 :   self->GetMozColumnRuleWidth(result, rv);
   51301           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51302           0 :     return false;
   51303             :   }
   51304           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51305           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51306           0 :     return false;
   51307             :   }
   51308           0 :   return true;
   51309             : }
   51310             : 
   51311             : static bool
   51312           0 : set_MozColumnRuleWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51313             : {
   51314           0 :   binding_detail::FakeString arg0;
   51315           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51316           0 :     return false;
   51317             :   }
   51318           0 :   binding_detail::FastErrorResult rv;
   51319           0 :   self->SetMozColumnRuleWidth(NonNullHelper(Constify(arg0)), rv);
   51320           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51321           0 :     return false;
   51322             :   }
   51323           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51324             : 
   51325           0 :   return true;
   51326             : }
   51327             : 
   51328             : static const JSJitInfo MozColumnRuleWidth_getterinfo = {
   51329             :   { (JSJitGetterOp)get_MozColumnRuleWidth },
   51330             :   { prototypes::id::CSS2Properties },
   51331             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51332             :   JSJitInfo::Getter,
   51333             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51334             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51335             :   false,  /* isInfallible. False in setters. */
   51336             :   false,  /* isMovable.  Not relevant for setters. */
   51337             :   false, /* isEliminatable.  Not relevant for setters. */
   51338             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51339             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51340             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51341             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51342             : };
   51343             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51344             : static_assert(0 < 1, "There is no slot for us");
   51345             : static const JSJitInfo MozColumnRuleWidth_setterinfo = {
   51346             :   { (JSJitGetterOp)set_MozColumnRuleWidth },
   51347             :   { prototypes::id::CSS2Properties },
   51348             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51349             :   JSJitInfo::Setter,
   51350             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51351             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51352             :   false,  /* isInfallible. False in setters. */
   51353             :   false,  /* isMovable.  Not relevant for setters. */
   51354             :   false, /* isEliminatable.  Not relevant for setters. */
   51355             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51356             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51357             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51358             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51359             : };
   51360             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51361             : static_assert(0 < 1, "There is no slot for us");
   51362             : 
   51363             : static bool
   51364           0 : get__moz_column_rule_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51365             : {
   51366           0 :   binding_detail::FastErrorResult rv;
   51367           0 :   DOMString result;
   51368           0 :   self->GetMozColumnRuleWidth(result, rv);
   51369           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51370           0 :     return false;
   51371             :   }
   51372           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51373           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51374           0 :     return false;
   51375             :   }
   51376           0 :   return true;
   51377             : }
   51378             : 
   51379             : static bool
   51380           0 : set__moz_column_rule_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51381             : {
   51382           0 :   binding_detail::FakeString arg0;
   51383           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51384           0 :     return false;
   51385             :   }
   51386           0 :   binding_detail::FastErrorResult rv;
   51387           0 :   self->SetMozColumnRuleWidth(NonNullHelper(Constify(arg0)), rv);
   51388           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51389           0 :     return false;
   51390             :   }
   51391           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51392             : 
   51393           0 :   return true;
   51394             : }
   51395             : 
   51396             : static const JSJitInfo _moz_column_rule_width_getterinfo = {
   51397             :   { (JSJitGetterOp)get__moz_column_rule_width },
   51398             :   { prototypes::id::CSS2Properties },
   51399             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51400             :   JSJitInfo::Getter,
   51401             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51402             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51403             :   false,  /* isInfallible. False in setters. */
   51404             :   false,  /* isMovable.  Not relevant for setters. */
   51405             :   false, /* isEliminatable.  Not relevant for setters. */
   51406             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51407             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51408             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51409             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51410             : };
   51411             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51412             : static_assert(0 < 1, "There is no slot for us");
   51413             : static const JSJitInfo _moz_column_rule_width_setterinfo = {
   51414             :   { (JSJitGetterOp)set__moz_column_rule_width },
   51415             :   { prototypes::id::CSS2Properties },
   51416             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51417             :   JSJitInfo::Setter,
   51418             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51419             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51420             :   false,  /* isInfallible. False in setters. */
   51421             :   false,  /* isMovable.  Not relevant for setters. */
   51422             :   false, /* isEliminatable.  Not relevant for setters. */
   51423             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51424             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51425             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51426             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51427             : };
   51428             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51429             : static_assert(0 < 1, "There is no slot for us");
   51430             : 
   51431             : static bool
   51432           0 : get_MozColumnWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51433             : {
   51434           0 :   binding_detail::FastErrorResult rv;
   51435           0 :   DOMString result;
   51436           0 :   self->GetMozColumnWidth(result, rv);
   51437           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51438           0 :     return false;
   51439             :   }
   51440           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51441           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51442           0 :     return false;
   51443             :   }
   51444           0 :   return true;
   51445             : }
   51446             : 
   51447             : static bool
   51448           0 : set_MozColumnWidth(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51449             : {
   51450           0 :   binding_detail::FakeString arg0;
   51451           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51452           0 :     return false;
   51453             :   }
   51454           0 :   binding_detail::FastErrorResult rv;
   51455           0 :   self->SetMozColumnWidth(NonNullHelper(Constify(arg0)), rv);
   51456           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51457           0 :     return false;
   51458             :   }
   51459           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51460             : 
   51461           0 :   return true;
   51462             : }
   51463             : 
   51464             : static const JSJitInfo MozColumnWidth_getterinfo = {
   51465             :   { (JSJitGetterOp)get_MozColumnWidth },
   51466             :   { prototypes::id::CSS2Properties },
   51467             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51468             :   JSJitInfo::Getter,
   51469             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51470             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51471             :   false,  /* isInfallible. False in setters. */
   51472             :   false,  /* isMovable.  Not relevant for setters. */
   51473             :   false, /* isEliminatable.  Not relevant for setters. */
   51474             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51475             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51476             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51477             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51478             : };
   51479             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51480             : static_assert(0 < 1, "There is no slot for us");
   51481             : static const JSJitInfo MozColumnWidth_setterinfo = {
   51482             :   { (JSJitGetterOp)set_MozColumnWidth },
   51483             :   { prototypes::id::CSS2Properties },
   51484             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51485             :   JSJitInfo::Setter,
   51486             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51487             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51488             :   false,  /* isInfallible. False in setters. */
   51489             :   false,  /* isMovable.  Not relevant for setters. */
   51490             :   false, /* isEliminatable.  Not relevant for setters. */
   51491             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51492             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51493             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51494             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51495             : };
   51496             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51497             : static_assert(0 < 1, "There is no slot for us");
   51498             : 
   51499             : static bool
   51500           0 : get__moz_column_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51501             : {
   51502           0 :   binding_detail::FastErrorResult rv;
   51503           0 :   DOMString result;
   51504           0 :   self->GetMozColumnWidth(result, rv);
   51505           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51506           0 :     return false;
   51507             :   }
   51508           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51509           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51510           0 :     return false;
   51511             :   }
   51512           0 :   return true;
   51513             : }
   51514             : 
   51515             : static bool
   51516           0 : set__moz_column_width(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51517             : {
   51518           0 :   binding_detail::FakeString arg0;
   51519           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51520           0 :     return false;
   51521             :   }
   51522           0 :   binding_detail::FastErrorResult rv;
   51523           0 :   self->SetMozColumnWidth(NonNullHelper(Constify(arg0)), rv);
   51524           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51525           0 :     return false;
   51526             :   }
   51527           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51528             : 
   51529           0 :   return true;
   51530             : }
   51531             : 
   51532             : static const JSJitInfo _moz_column_width_getterinfo = {
   51533             :   { (JSJitGetterOp)get__moz_column_width },
   51534             :   { prototypes::id::CSS2Properties },
   51535             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51536             :   JSJitInfo::Getter,
   51537             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51538             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51539             :   false,  /* isInfallible. False in setters. */
   51540             :   false,  /* isMovable.  Not relevant for setters. */
   51541             :   false, /* isEliminatable.  Not relevant for setters. */
   51542             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51543             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51544             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51545             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51546             : };
   51547             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51548             : static_assert(0 < 1, "There is no slot for us");
   51549             : static const JSJitInfo _moz_column_width_setterinfo = {
   51550             :   { (JSJitGetterOp)set__moz_column_width },
   51551             :   { prototypes::id::CSS2Properties },
   51552             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51553             :   JSJitInfo::Setter,
   51554             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51555             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51556             :   false,  /* isInfallible. False in setters. */
   51557             :   false,  /* isMovable.  Not relevant for setters. */
   51558             :   false, /* isEliminatable.  Not relevant for setters. */
   51559             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51560             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51561             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51562             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51563             : };
   51564             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51565             : static_assert(0 < 1, "There is no slot for us");
   51566             : 
   51567             : static bool
   51568           0 : get_MozColumns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51569             : {
   51570           0 :   binding_detail::FastErrorResult rv;
   51571           0 :   DOMString result;
   51572           0 :   self->GetMozColumns(result, rv);
   51573           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51574           0 :     return false;
   51575             :   }
   51576           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51577           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51578           0 :     return false;
   51579             :   }
   51580           0 :   return true;
   51581             : }
   51582             : 
   51583             : static bool
   51584           0 : set_MozColumns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51585             : {
   51586           0 :   binding_detail::FakeString arg0;
   51587           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51588           0 :     return false;
   51589             :   }
   51590           0 :   binding_detail::FastErrorResult rv;
   51591           0 :   self->SetMozColumns(NonNullHelper(Constify(arg0)), rv);
   51592           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51593           0 :     return false;
   51594             :   }
   51595           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51596             : 
   51597           0 :   return true;
   51598             : }
   51599             : 
   51600             : static const JSJitInfo MozColumns_getterinfo = {
   51601             :   { (JSJitGetterOp)get_MozColumns },
   51602             :   { prototypes::id::CSS2Properties },
   51603             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51604             :   JSJitInfo::Getter,
   51605             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51606             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51607             :   false,  /* isInfallible. False in setters. */
   51608             :   false,  /* isMovable.  Not relevant for setters. */
   51609             :   false, /* isEliminatable.  Not relevant for setters. */
   51610             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51611             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51612             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51613             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51614             : };
   51615             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51616             : static_assert(0 < 1, "There is no slot for us");
   51617             : static const JSJitInfo MozColumns_setterinfo = {
   51618             :   { (JSJitGetterOp)set_MozColumns },
   51619             :   { prototypes::id::CSS2Properties },
   51620             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51621             :   JSJitInfo::Setter,
   51622             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51623             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51624             :   false,  /* isInfallible. False in setters. */
   51625             :   false,  /* isMovable.  Not relevant for setters. */
   51626             :   false, /* isEliminatable.  Not relevant for setters. */
   51627             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51628             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51629             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51630             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51631             : };
   51632             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51633             : static_assert(0 < 1, "There is no slot for us");
   51634             : 
   51635             : static bool
   51636           0 : get__moz_columns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51637             : {
   51638           0 :   binding_detail::FastErrorResult rv;
   51639           0 :   DOMString result;
   51640           0 :   self->GetMozColumns(result, rv);
   51641           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51642           0 :     return false;
   51643             :   }
   51644           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51645           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51646           0 :     return false;
   51647             :   }
   51648           0 :   return true;
   51649             : }
   51650             : 
   51651             : static bool
   51652           0 : set__moz_columns(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51653             : {
   51654           0 :   binding_detail::FakeString arg0;
   51655           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51656           0 :     return false;
   51657             :   }
   51658           0 :   binding_detail::FastErrorResult rv;
   51659           0 :   self->SetMozColumns(NonNullHelper(Constify(arg0)), rv);
   51660           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51661           0 :     return false;
   51662             :   }
   51663           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51664             : 
   51665           0 :   return true;
   51666             : }
   51667             : 
   51668             : static const JSJitInfo _moz_columns_getterinfo = {
   51669             :   { (JSJitGetterOp)get__moz_columns },
   51670             :   { prototypes::id::CSS2Properties },
   51671             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51672             :   JSJitInfo::Getter,
   51673             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51674             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51675             :   false,  /* isInfallible. False in setters. */
   51676             :   false,  /* isMovable.  Not relevant for setters. */
   51677             :   false, /* isEliminatable.  Not relevant for setters. */
   51678             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51679             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51680             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51681             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51682             : };
   51683             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51684             : static_assert(0 < 1, "There is no slot for us");
   51685             : static const JSJitInfo _moz_columns_setterinfo = {
   51686             :   { (JSJitGetterOp)set__moz_columns },
   51687             :   { prototypes::id::CSS2Properties },
   51688             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51689             :   JSJitInfo::Setter,
   51690             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51691             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51692             :   false,  /* isInfallible. False in setters. */
   51693             :   false,  /* isMovable.  Not relevant for setters. */
   51694             :   false, /* isEliminatable.  Not relevant for setters. */
   51695             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51696             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51697             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51698             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51699             : };
   51700             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51701             : static_assert(0 < 1, "There is no slot for us");
   51702             : 
   51703             : static bool
   51704           0 : get_WebkitAnimation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51705             : {
   51706           0 :   binding_detail::FastErrorResult rv;
   51707           0 :   DOMString result;
   51708           0 :   self->GetWebkitAnimation(result, rv);
   51709           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51710           0 :     return false;
   51711             :   }
   51712           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51713           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51714           0 :     return false;
   51715             :   }
   51716           0 :   return true;
   51717             : }
   51718             : 
   51719             : static bool
   51720           0 : set_WebkitAnimation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51721             : {
   51722           0 :   binding_detail::FakeString arg0;
   51723           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51724           0 :     return false;
   51725             :   }
   51726           0 :   binding_detail::FastErrorResult rv;
   51727           0 :   self->SetWebkitAnimation(NonNullHelper(Constify(arg0)), rv);
   51728           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51729           0 :     return false;
   51730             :   }
   51731           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51732             : 
   51733           0 :   return true;
   51734             : }
   51735             : 
   51736             : static const JSJitInfo WebkitAnimation_getterinfo = {
   51737             :   { (JSJitGetterOp)get_WebkitAnimation },
   51738             :   { prototypes::id::CSS2Properties },
   51739             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51740             :   JSJitInfo::Getter,
   51741             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51742             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51743             :   false,  /* isInfallible. False in setters. */
   51744             :   false,  /* isMovable.  Not relevant for setters. */
   51745             :   false, /* isEliminatable.  Not relevant for setters. */
   51746             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51747             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51748             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51749             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51750             : };
   51751             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51752             : static_assert(0 < 1, "There is no slot for us");
   51753             : static const JSJitInfo WebkitAnimation_setterinfo = {
   51754             :   { (JSJitGetterOp)set_WebkitAnimation },
   51755             :   { prototypes::id::CSS2Properties },
   51756             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51757             :   JSJitInfo::Setter,
   51758             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51759             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51760             :   false,  /* isInfallible. False in setters. */
   51761             :   false,  /* isMovable.  Not relevant for setters. */
   51762             :   false, /* isEliminatable.  Not relevant for setters. */
   51763             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51764             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51765             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51766             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51767             : };
   51768             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51769             : static_assert(0 < 1, "There is no slot for us");
   51770             : 
   51771             : static bool
   51772           0 : get_webkitAnimation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51773             : {
   51774           0 :   binding_detail::FastErrorResult rv;
   51775           0 :   DOMString result;
   51776           0 :   self->GetWebkitAnimation(result, rv);
   51777           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51778           0 :     return false;
   51779             :   }
   51780           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51781           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51782           0 :     return false;
   51783             :   }
   51784           0 :   return true;
   51785             : }
   51786             : 
   51787             : static bool
   51788           0 : set_webkitAnimation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51789             : {
   51790           0 :   binding_detail::FakeString arg0;
   51791           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51792           0 :     return false;
   51793             :   }
   51794           0 :   binding_detail::FastErrorResult rv;
   51795           0 :   self->SetWebkitAnimation(NonNullHelper(Constify(arg0)), rv);
   51796           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51797           0 :     return false;
   51798             :   }
   51799           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51800             : 
   51801           0 :   return true;
   51802             : }
   51803             : 
   51804             : static const JSJitInfo webkitAnimation_getterinfo = {
   51805             :   { (JSJitGetterOp)get_webkitAnimation },
   51806             :   { prototypes::id::CSS2Properties },
   51807             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51808             :   JSJitInfo::Getter,
   51809             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51810             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51811             :   false,  /* isInfallible. False in setters. */
   51812             :   false,  /* isMovable.  Not relevant for setters. */
   51813             :   false, /* isEliminatable.  Not relevant for setters. */
   51814             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51815             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51816             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51817             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51818             : };
   51819             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51820             : static_assert(0 < 1, "There is no slot for us");
   51821             : static const JSJitInfo webkitAnimation_setterinfo = {
   51822             :   { (JSJitGetterOp)set_webkitAnimation },
   51823             :   { prototypes::id::CSS2Properties },
   51824             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51825             :   JSJitInfo::Setter,
   51826             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51827             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51828             :   false,  /* isInfallible. False in setters. */
   51829             :   false,  /* isMovable.  Not relevant for setters. */
   51830             :   false, /* isEliminatable.  Not relevant for setters. */
   51831             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51832             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51833             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51834             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51835             : };
   51836             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51837             : static_assert(0 < 1, "There is no slot for us");
   51838             : 
   51839             : static bool
   51840           0 : get__webkit_animation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51841             : {
   51842           0 :   binding_detail::FastErrorResult rv;
   51843           0 :   DOMString result;
   51844           0 :   self->GetWebkitAnimation(result, rv);
   51845           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51846           0 :     return false;
   51847             :   }
   51848           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51849           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51850           0 :     return false;
   51851             :   }
   51852           0 :   return true;
   51853             : }
   51854             : 
   51855             : static bool
   51856           0 : set__webkit_animation(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51857             : {
   51858           0 :   binding_detail::FakeString arg0;
   51859           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51860           0 :     return false;
   51861             :   }
   51862           0 :   binding_detail::FastErrorResult rv;
   51863           0 :   self->SetWebkitAnimation(NonNullHelper(Constify(arg0)), rv);
   51864           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51865           0 :     return false;
   51866             :   }
   51867           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51868             : 
   51869           0 :   return true;
   51870             : }
   51871             : 
   51872             : static const JSJitInfo _webkit_animation_getterinfo = {
   51873             :   { (JSJitGetterOp)get__webkit_animation },
   51874             :   { prototypes::id::CSS2Properties },
   51875             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51876             :   JSJitInfo::Getter,
   51877             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51878             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51879             :   false,  /* isInfallible. False in setters. */
   51880             :   false,  /* isMovable.  Not relevant for setters. */
   51881             :   false, /* isEliminatable.  Not relevant for setters. */
   51882             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51883             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51884             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51885             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51886             : };
   51887             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51888             : static_assert(0 < 1, "There is no slot for us");
   51889             : static const JSJitInfo _webkit_animation_setterinfo = {
   51890             :   { (JSJitGetterOp)set__webkit_animation },
   51891             :   { prototypes::id::CSS2Properties },
   51892             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51893             :   JSJitInfo::Setter,
   51894             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51895             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51896             :   false,  /* isInfallible. False in setters. */
   51897             :   false,  /* isMovable.  Not relevant for setters. */
   51898             :   false, /* isEliminatable.  Not relevant for setters. */
   51899             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51900             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51901             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51902             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51903             : };
   51904             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51905             : static_assert(0 < 1, "There is no slot for us");
   51906             : 
   51907             : static bool
   51908           0 : get_WebkitAnimationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51909             : {
   51910           0 :   binding_detail::FastErrorResult rv;
   51911           0 :   DOMString result;
   51912           0 :   self->GetWebkitAnimationDelay(result, rv);
   51913           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51914           0 :     return false;
   51915             :   }
   51916           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51917           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51918           0 :     return false;
   51919             :   }
   51920           0 :   return true;
   51921             : }
   51922             : 
   51923             : static bool
   51924           0 : set_WebkitAnimationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51925             : {
   51926           0 :   binding_detail::FakeString arg0;
   51927           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51928           0 :     return false;
   51929             :   }
   51930           0 :   binding_detail::FastErrorResult rv;
   51931           0 :   self->SetWebkitAnimationDelay(NonNullHelper(Constify(arg0)), rv);
   51932           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51933           0 :     return false;
   51934             :   }
   51935           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51936             : 
   51937           0 :   return true;
   51938             : }
   51939             : 
   51940             : static const JSJitInfo WebkitAnimationDelay_getterinfo = {
   51941             :   { (JSJitGetterOp)get_WebkitAnimationDelay },
   51942             :   { prototypes::id::CSS2Properties },
   51943             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51944             :   JSJitInfo::Getter,
   51945             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51946             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   51947             :   false,  /* isInfallible. False in setters. */
   51948             :   false,  /* isMovable.  Not relevant for setters. */
   51949             :   false, /* isEliminatable.  Not relevant for setters. */
   51950             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51951             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51952             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51953             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51954             : };
   51955             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51956             : static_assert(0 < 1, "There is no slot for us");
   51957             : static const JSJitInfo WebkitAnimationDelay_setterinfo = {
   51958             :   { (JSJitGetterOp)set_WebkitAnimationDelay },
   51959             :   { prototypes::id::CSS2Properties },
   51960             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   51961             :   JSJitInfo::Setter,
   51962             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   51963             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   51964             :   false,  /* isInfallible. False in setters. */
   51965             :   false,  /* isMovable.  Not relevant for setters. */
   51966             :   false, /* isEliminatable.  Not relevant for setters. */
   51967             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   51968             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   51969             :   false,  /* isTypedMethod.  Only relevant for methods. */
   51970             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   51971             : };
   51972             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   51973             : static_assert(0 < 1, "There is no slot for us");
   51974             : 
   51975             : static bool
   51976           0 : get_webkitAnimationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   51977             : {
   51978           0 :   binding_detail::FastErrorResult rv;
   51979           0 :   DOMString result;
   51980           0 :   self->GetWebkitAnimationDelay(result, rv);
   51981           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   51982           0 :     return false;
   51983             :   }
   51984           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   51985           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   51986           0 :     return false;
   51987             :   }
   51988           0 :   return true;
   51989             : }
   51990             : 
   51991             : static bool
   51992           0 : set_webkitAnimationDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   51993             : {
   51994           0 :   binding_detail::FakeString arg0;
   51995           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   51996           0 :     return false;
   51997             :   }
   51998           0 :   binding_detail::FastErrorResult rv;
   51999           0 :   self->SetWebkitAnimationDelay(NonNullHelper(Constify(arg0)), rv);
   52000           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52001           0 :     return false;
   52002             :   }
   52003           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52004             : 
   52005           0 :   return true;
   52006             : }
   52007             : 
   52008             : static const JSJitInfo webkitAnimationDelay_getterinfo = {
   52009             :   { (JSJitGetterOp)get_webkitAnimationDelay },
   52010             :   { prototypes::id::CSS2Properties },
   52011             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52012             :   JSJitInfo::Getter,
   52013             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52014             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52015             :   false,  /* isInfallible. False in setters. */
   52016             :   false,  /* isMovable.  Not relevant for setters. */
   52017             :   false, /* isEliminatable.  Not relevant for setters. */
   52018             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52019             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52020             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52021             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52022             : };
   52023             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52024             : static_assert(0 < 1, "There is no slot for us");
   52025             : static const JSJitInfo webkitAnimationDelay_setterinfo = {
   52026             :   { (JSJitGetterOp)set_webkitAnimationDelay },
   52027             :   { prototypes::id::CSS2Properties },
   52028             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52029             :   JSJitInfo::Setter,
   52030             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52031             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52032             :   false,  /* isInfallible. False in setters. */
   52033             :   false,  /* isMovable.  Not relevant for setters. */
   52034             :   false, /* isEliminatable.  Not relevant for setters. */
   52035             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52036             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52037             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52038             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52039             : };
   52040             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52041             : static_assert(0 < 1, "There is no slot for us");
   52042             : 
   52043             : static bool
   52044           0 : get__webkit_animation_delay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52045             : {
   52046           0 :   binding_detail::FastErrorResult rv;
   52047           0 :   DOMString result;
   52048           0 :   self->GetWebkitAnimationDelay(result, rv);
   52049           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52050           0 :     return false;
   52051             :   }
   52052           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52053           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52054           0 :     return false;
   52055             :   }
   52056           0 :   return true;
   52057             : }
   52058             : 
   52059             : static bool
   52060           0 : set__webkit_animation_delay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52061             : {
   52062           0 :   binding_detail::FakeString arg0;
   52063           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52064           0 :     return false;
   52065             :   }
   52066           0 :   binding_detail::FastErrorResult rv;
   52067           0 :   self->SetWebkitAnimationDelay(NonNullHelper(Constify(arg0)), rv);
   52068           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52069           0 :     return false;
   52070             :   }
   52071           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52072             : 
   52073           0 :   return true;
   52074             : }
   52075             : 
   52076             : static const JSJitInfo _webkit_animation_delay_getterinfo = {
   52077             :   { (JSJitGetterOp)get__webkit_animation_delay },
   52078             :   { prototypes::id::CSS2Properties },
   52079             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52080             :   JSJitInfo::Getter,
   52081             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52082             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52083             :   false,  /* isInfallible. False in setters. */
   52084             :   false,  /* isMovable.  Not relevant for setters. */
   52085             :   false, /* isEliminatable.  Not relevant for setters. */
   52086             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52087             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52088             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52089             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52090             : };
   52091             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52092             : static_assert(0 < 1, "There is no slot for us");
   52093             : static const JSJitInfo _webkit_animation_delay_setterinfo = {
   52094             :   { (JSJitGetterOp)set__webkit_animation_delay },
   52095             :   { prototypes::id::CSS2Properties },
   52096             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52097             :   JSJitInfo::Setter,
   52098             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52099             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52100             :   false,  /* isInfallible. False in setters. */
   52101             :   false,  /* isMovable.  Not relevant for setters. */
   52102             :   false, /* isEliminatable.  Not relevant for setters. */
   52103             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52104             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52105             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52106             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52107             : };
   52108             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52109             : static_assert(0 < 1, "There is no slot for us");
   52110             : 
   52111             : static bool
   52112           0 : get_WebkitAnimationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52113             : {
   52114           0 :   binding_detail::FastErrorResult rv;
   52115           0 :   DOMString result;
   52116           0 :   self->GetWebkitAnimationDirection(result, rv);
   52117           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52118           0 :     return false;
   52119             :   }
   52120           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52121           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52122           0 :     return false;
   52123             :   }
   52124           0 :   return true;
   52125             : }
   52126             : 
   52127             : static bool
   52128           0 : set_WebkitAnimationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52129             : {
   52130           0 :   binding_detail::FakeString arg0;
   52131           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52132           0 :     return false;
   52133             :   }
   52134           0 :   binding_detail::FastErrorResult rv;
   52135           0 :   self->SetWebkitAnimationDirection(NonNullHelper(Constify(arg0)), rv);
   52136           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52137           0 :     return false;
   52138             :   }
   52139           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52140             : 
   52141           0 :   return true;
   52142             : }
   52143             : 
   52144             : static const JSJitInfo WebkitAnimationDirection_getterinfo = {
   52145             :   { (JSJitGetterOp)get_WebkitAnimationDirection },
   52146             :   { prototypes::id::CSS2Properties },
   52147             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52148             :   JSJitInfo::Getter,
   52149             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52150             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52151             :   false,  /* isInfallible. False in setters. */
   52152             :   false,  /* isMovable.  Not relevant for setters. */
   52153             :   false, /* isEliminatable.  Not relevant for setters. */
   52154             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52155             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52156             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52157             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52158             : };
   52159             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52160             : static_assert(0 < 1, "There is no slot for us");
   52161             : static const JSJitInfo WebkitAnimationDirection_setterinfo = {
   52162             :   { (JSJitGetterOp)set_WebkitAnimationDirection },
   52163             :   { prototypes::id::CSS2Properties },
   52164             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52165             :   JSJitInfo::Setter,
   52166             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52167             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52168             :   false,  /* isInfallible. False in setters. */
   52169             :   false,  /* isMovable.  Not relevant for setters. */
   52170             :   false, /* isEliminatable.  Not relevant for setters. */
   52171             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52172             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52173             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52174             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52175             : };
   52176             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52177             : static_assert(0 < 1, "There is no slot for us");
   52178             : 
   52179             : static bool
   52180           0 : get_webkitAnimationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52181             : {
   52182           0 :   binding_detail::FastErrorResult rv;
   52183           0 :   DOMString result;
   52184           0 :   self->GetWebkitAnimationDirection(result, rv);
   52185           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52186           0 :     return false;
   52187             :   }
   52188           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52189           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52190           0 :     return false;
   52191             :   }
   52192           0 :   return true;
   52193             : }
   52194             : 
   52195             : static bool
   52196           0 : set_webkitAnimationDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52197             : {
   52198           0 :   binding_detail::FakeString arg0;
   52199           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52200           0 :     return false;
   52201             :   }
   52202           0 :   binding_detail::FastErrorResult rv;
   52203           0 :   self->SetWebkitAnimationDirection(NonNullHelper(Constify(arg0)), rv);
   52204           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52205           0 :     return false;
   52206             :   }
   52207           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52208             : 
   52209           0 :   return true;
   52210             : }
   52211             : 
   52212             : static const JSJitInfo webkitAnimationDirection_getterinfo = {
   52213             :   { (JSJitGetterOp)get_webkitAnimationDirection },
   52214             :   { prototypes::id::CSS2Properties },
   52215             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52216             :   JSJitInfo::Getter,
   52217             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52218             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52219             :   false,  /* isInfallible. False in setters. */
   52220             :   false,  /* isMovable.  Not relevant for setters. */
   52221             :   false, /* isEliminatable.  Not relevant for setters. */
   52222             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52223             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52224             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52225             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52226             : };
   52227             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52228             : static_assert(0 < 1, "There is no slot for us");
   52229             : static const JSJitInfo webkitAnimationDirection_setterinfo = {
   52230             :   { (JSJitGetterOp)set_webkitAnimationDirection },
   52231             :   { prototypes::id::CSS2Properties },
   52232             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52233             :   JSJitInfo::Setter,
   52234             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52235             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52236             :   false,  /* isInfallible. False in setters. */
   52237             :   false,  /* isMovable.  Not relevant for setters. */
   52238             :   false, /* isEliminatable.  Not relevant for setters. */
   52239             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52240             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52241             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52242             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52243             : };
   52244             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52245             : static_assert(0 < 1, "There is no slot for us");
   52246             : 
   52247             : static bool
   52248           0 : get__webkit_animation_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52249             : {
   52250           0 :   binding_detail::FastErrorResult rv;
   52251           0 :   DOMString result;
   52252           0 :   self->GetWebkitAnimationDirection(result, rv);
   52253           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52254           0 :     return false;
   52255             :   }
   52256           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52257           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52258           0 :     return false;
   52259             :   }
   52260           0 :   return true;
   52261             : }
   52262             : 
   52263             : static bool
   52264           0 : set__webkit_animation_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52265             : {
   52266           0 :   binding_detail::FakeString arg0;
   52267           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52268           0 :     return false;
   52269             :   }
   52270           0 :   binding_detail::FastErrorResult rv;
   52271           0 :   self->SetWebkitAnimationDirection(NonNullHelper(Constify(arg0)), rv);
   52272           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52273           0 :     return false;
   52274             :   }
   52275           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52276             : 
   52277           0 :   return true;
   52278             : }
   52279             : 
   52280             : static const JSJitInfo _webkit_animation_direction_getterinfo = {
   52281             :   { (JSJitGetterOp)get__webkit_animation_direction },
   52282             :   { prototypes::id::CSS2Properties },
   52283             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52284             :   JSJitInfo::Getter,
   52285             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52286             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52287             :   false,  /* isInfallible. False in setters. */
   52288             :   false,  /* isMovable.  Not relevant for setters. */
   52289             :   false, /* isEliminatable.  Not relevant for setters. */
   52290             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52291             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52292             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52293             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52294             : };
   52295             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52296             : static_assert(0 < 1, "There is no slot for us");
   52297             : static const JSJitInfo _webkit_animation_direction_setterinfo = {
   52298             :   { (JSJitGetterOp)set__webkit_animation_direction },
   52299             :   { prototypes::id::CSS2Properties },
   52300             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52301             :   JSJitInfo::Setter,
   52302             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52303             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52304             :   false,  /* isInfallible. False in setters. */
   52305             :   false,  /* isMovable.  Not relevant for setters. */
   52306             :   false, /* isEliminatable.  Not relevant for setters. */
   52307             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52308             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52309             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52310             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52311             : };
   52312             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52313             : static_assert(0 < 1, "There is no slot for us");
   52314             : 
   52315             : static bool
   52316           0 : get_WebkitAnimationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52317             : {
   52318           0 :   binding_detail::FastErrorResult rv;
   52319           0 :   DOMString result;
   52320           0 :   self->GetWebkitAnimationDuration(result, rv);
   52321           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52322           0 :     return false;
   52323             :   }
   52324           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52325           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52326           0 :     return false;
   52327             :   }
   52328           0 :   return true;
   52329             : }
   52330             : 
   52331             : static bool
   52332           0 : set_WebkitAnimationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52333             : {
   52334           0 :   binding_detail::FakeString arg0;
   52335           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52336           0 :     return false;
   52337             :   }
   52338           0 :   binding_detail::FastErrorResult rv;
   52339           0 :   self->SetWebkitAnimationDuration(NonNullHelper(Constify(arg0)), rv);
   52340           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52341           0 :     return false;
   52342             :   }
   52343           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52344             : 
   52345           0 :   return true;
   52346             : }
   52347             : 
   52348             : static const JSJitInfo WebkitAnimationDuration_getterinfo = {
   52349             :   { (JSJitGetterOp)get_WebkitAnimationDuration },
   52350             :   { prototypes::id::CSS2Properties },
   52351             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52352             :   JSJitInfo::Getter,
   52353             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52354             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52355             :   false,  /* isInfallible. False in setters. */
   52356             :   false,  /* isMovable.  Not relevant for setters. */
   52357             :   false, /* isEliminatable.  Not relevant for setters. */
   52358             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52359             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52360             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52361             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52362             : };
   52363             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52364             : static_assert(0 < 1, "There is no slot for us");
   52365             : static const JSJitInfo WebkitAnimationDuration_setterinfo = {
   52366             :   { (JSJitGetterOp)set_WebkitAnimationDuration },
   52367             :   { prototypes::id::CSS2Properties },
   52368             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52369             :   JSJitInfo::Setter,
   52370             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52371             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52372             :   false,  /* isInfallible. False in setters. */
   52373             :   false,  /* isMovable.  Not relevant for setters. */
   52374             :   false, /* isEliminatable.  Not relevant for setters. */
   52375             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52376             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52377             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52378             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52379             : };
   52380             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52381             : static_assert(0 < 1, "There is no slot for us");
   52382             : 
   52383             : static bool
   52384           0 : get_webkitAnimationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52385             : {
   52386           0 :   binding_detail::FastErrorResult rv;
   52387           0 :   DOMString result;
   52388           0 :   self->GetWebkitAnimationDuration(result, rv);
   52389           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52390           0 :     return false;
   52391             :   }
   52392           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52393           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52394           0 :     return false;
   52395             :   }
   52396           0 :   return true;
   52397             : }
   52398             : 
   52399             : static bool
   52400           0 : set_webkitAnimationDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52401             : {
   52402           0 :   binding_detail::FakeString arg0;
   52403           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52404           0 :     return false;
   52405             :   }
   52406           0 :   binding_detail::FastErrorResult rv;
   52407           0 :   self->SetWebkitAnimationDuration(NonNullHelper(Constify(arg0)), rv);
   52408           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52409           0 :     return false;
   52410             :   }
   52411           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52412             : 
   52413           0 :   return true;
   52414             : }
   52415             : 
   52416             : static const JSJitInfo webkitAnimationDuration_getterinfo = {
   52417             :   { (JSJitGetterOp)get_webkitAnimationDuration },
   52418             :   { prototypes::id::CSS2Properties },
   52419             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52420             :   JSJitInfo::Getter,
   52421             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52422             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52423             :   false,  /* isInfallible. False in setters. */
   52424             :   false,  /* isMovable.  Not relevant for setters. */
   52425             :   false, /* isEliminatable.  Not relevant for setters. */
   52426             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52427             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52428             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52429             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52430             : };
   52431             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52432             : static_assert(0 < 1, "There is no slot for us");
   52433             : static const JSJitInfo webkitAnimationDuration_setterinfo = {
   52434             :   { (JSJitGetterOp)set_webkitAnimationDuration },
   52435             :   { prototypes::id::CSS2Properties },
   52436             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52437             :   JSJitInfo::Setter,
   52438             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52439             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52440             :   false,  /* isInfallible. False in setters. */
   52441             :   false,  /* isMovable.  Not relevant for setters. */
   52442             :   false, /* isEliminatable.  Not relevant for setters. */
   52443             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52444             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52445             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52446             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52447             : };
   52448             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52449             : static_assert(0 < 1, "There is no slot for us");
   52450             : 
   52451             : static bool
   52452           0 : get__webkit_animation_duration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52453             : {
   52454           0 :   binding_detail::FastErrorResult rv;
   52455           0 :   DOMString result;
   52456           0 :   self->GetWebkitAnimationDuration(result, rv);
   52457           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52458           0 :     return false;
   52459             :   }
   52460           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52461           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52462           0 :     return false;
   52463             :   }
   52464           0 :   return true;
   52465             : }
   52466             : 
   52467             : static bool
   52468           0 : set__webkit_animation_duration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52469             : {
   52470           0 :   binding_detail::FakeString arg0;
   52471           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52472           0 :     return false;
   52473             :   }
   52474           0 :   binding_detail::FastErrorResult rv;
   52475           0 :   self->SetWebkitAnimationDuration(NonNullHelper(Constify(arg0)), rv);
   52476           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52477           0 :     return false;
   52478             :   }
   52479           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52480             : 
   52481           0 :   return true;
   52482             : }
   52483             : 
   52484             : static const JSJitInfo _webkit_animation_duration_getterinfo = {
   52485             :   { (JSJitGetterOp)get__webkit_animation_duration },
   52486             :   { prototypes::id::CSS2Properties },
   52487             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52488             :   JSJitInfo::Getter,
   52489             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52490             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52491             :   false,  /* isInfallible. False in setters. */
   52492             :   false,  /* isMovable.  Not relevant for setters. */
   52493             :   false, /* isEliminatable.  Not relevant for setters. */
   52494             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52495             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52496             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52497             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52498             : };
   52499             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52500             : static_assert(0 < 1, "There is no slot for us");
   52501             : static const JSJitInfo _webkit_animation_duration_setterinfo = {
   52502             :   { (JSJitGetterOp)set__webkit_animation_duration },
   52503             :   { prototypes::id::CSS2Properties },
   52504             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52505             :   JSJitInfo::Setter,
   52506             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52507             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52508             :   false,  /* isInfallible. False in setters. */
   52509             :   false,  /* isMovable.  Not relevant for setters. */
   52510             :   false, /* isEliminatable.  Not relevant for setters. */
   52511             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52512             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52513             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52514             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52515             : };
   52516             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52517             : static_assert(0 < 1, "There is no slot for us");
   52518             : 
   52519             : static bool
   52520           0 : get_WebkitAnimationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52521             : {
   52522           0 :   binding_detail::FastErrorResult rv;
   52523           0 :   DOMString result;
   52524           0 :   self->GetWebkitAnimationFillMode(result, rv);
   52525           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52526           0 :     return false;
   52527             :   }
   52528           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52529           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52530           0 :     return false;
   52531             :   }
   52532           0 :   return true;
   52533             : }
   52534             : 
   52535             : static bool
   52536           0 : set_WebkitAnimationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52537             : {
   52538           0 :   binding_detail::FakeString arg0;
   52539           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52540           0 :     return false;
   52541             :   }
   52542           0 :   binding_detail::FastErrorResult rv;
   52543           0 :   self->SetWebkitAnimationFillMode(NonNullHelper(Constify(arg0)), rv);
   52544           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52545           0 :     return false;
   52546             :   }
   52547           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52548             : 
   52549           0 :   return true;
   52550             : }
   52551             : 
   52552             : static const JSJitInfo WebkitAnimationFillMode_getterinfo = {
   52553             :   { (JSJitGetterOp)get_WebkitAnimationFillMode },
   52554             :   { prototypes::id::CSS2Properties },
   52555             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52556             :   JSJitInfo::Getter,
   52557             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52558             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52559             :   false,  /* isInfallible. False in setters. */
   52560             :   false,  /* isMovable.  Not relevant for setters. */
   52561             :   false, /* isEliminatable.  Not relevant for setters. */
   52562             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52563             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52564             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52565             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52566             : };
   52567             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52568             : static_assert(0 < 1, "There is no slot for us");
   52569             : static const JSJitInfo WebkitAnimationFillMode_setterinfo = {
   52570             :   { (JSJitGetterOp)set_WebkitAnimationFillMode },
   52571             :   { prototypes::id::CSS2Properties },
   52572             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52573             :   JSJitInfo::Setter,
   52574             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52575             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52576             :   false,  /* isInfallible. False in setters. */
   52577             :   false,  /* isMovable.  Not relevant for setters. */
   52578             :   false, /* isEliminatable.  Not relevant for setters. */
   52579             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52580             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52581             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52582             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52583             : };
   52584             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52585             : static_assert(0 < 1, "There is no slot for us");
   52586             : 
   52587             : static bool
   52588           0 : get_webkitAnimationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52589             : {
   52590           0 :   binding_detail::FastErrorResult rv;
   52591           0 :   DOMString result;
   52592           0 :   self->GetWebkitAnimationFillMode(result, rv);
   52593           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52594           0 :     return false;
   52595             :   }
   52596           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52597           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52598           0 :     return false;
   52599             :   }
   52600           0 :   return true;
   52601             : }
   52602             : 
   52603             : static bool
   52604           0 : set_webkitAnimationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52605             : {
   52606           0 :   binding_detail::FakeString arg0;
   52607           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52608           0 :     return false;
   52609             :   }
   52610           0 :   binding_detail::FastErrorResult rv;
   52611           0 :   self->SetWebkitAnimationFillMode(NonNullHelper(Constify(arg0)), rv);
   52612           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52613           0 :     return false;
   52614             :   }
   52615           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52616             : 
   52617           0 :   return true;
   52618             : }
   52619             : 
   52620             : static const JSJitInfo webkitAnimationFillMode_getterinfo = {
   52621             :   { (JSJitGetterOp)get_webkitAnimationFillMode },
   52622             :   { prototypes::id::CSS2Properties },
   52623             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52624             :   JSJitInfo::Getter,
   52625             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52626             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52627             :   false,  /* isInfallible. False in setters. */
   52628             :   false,  /* isMovable.  Not relevant for setters. */
   52629             :   false, /* isEliminatable.  Not relevant for setters. */
   52630             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52631             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52632             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52633             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52634             : };
   52635             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52636             : static_assert(0 < 1, "There is no slot for us");
   52637             : static const JSJitInfo webkitAnimationFillMode_setterinfo = {
   52638             :   { (JSJitGetterOp)set_webkitAnimationFillMode },
   52639             :   { prototypes::id::CSS2Properties },
   52640             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52641             :   JSJitInfo::Setter,
   52642             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52643             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52644             :   false,  /* isInfallible. False in setters. */
   52645             :   false,  /* isMovable.  Not relevant for setters. */
   52646             :   false, /* isEliminatable.  Not relevant for setters. */
   52647             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52648             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52649             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52650             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52651             : };
   52652             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52653             : static_assert(0 < 1, "There is no slot for us");
   52654             : 
   52655             : static bool
   52656           0 : get__webkit_animation_fill_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52657             : {
   52658           0 :   binding_detail::FastErrorResult rv;
   52659           0 :   DOMString result;
   52660           0 :   self->GetWebkitAnimationFillMode(result, rv);
   52661           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52662           0 :     return false;
   52663             :   }
   52664           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52665           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52666           0 :     return false;
   52667             :   }
   52668           0 :   return true;
   52669             : }
   52670             : 
   52671             : static bool
   52672           0 : set__webkit_animation_fill_mode(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52673             : {
   52674           0 :   binding_detail::FakeString arg0;
   52675           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52676           0 :     return false;
   52677             :   }
   52678           0 :   binding_detail::FastErrorResult rv;
   52679           0 :   self->SetWebkitAnimationFillMode(NonNullHelper(Constify(arg0)), rv);
   52680           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52681           0 :     return false;
   52682             :   }
   52683           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52684             : 
   52685           0 :   return true;
   52686             : }
   52687             : 
   52688             : static const JSJitInfo _webkit_animation_fill_mode_getterinfo = {
   52689             :   { (JSJitGetterOp)get__webkit_animation_fill_mode },
   52690             :   { prototypes::id::CSS2Properties },
   52691             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52692             :   JSJitInfo::Getter,
   52693             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52694             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52695             :   false,  /* isInfallible. False in setters. */
   52696             :   false,  /* isMovable.  Not relevant for setters. */
   52697             :   false, /* isEliminatable.  Not relevant for setters. */
   52698             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52699             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52700             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52701             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52702             : };
   52703             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52704             : static_assert(0 < 1, "There is no slot for us");
   52705             : static const JSJitInfo _webkit_animation_fill_mode_setterinfo = {
   52706             :   { (JSJitGetterOp)set__webkit_animation_fill_mode },
   52707             :   { prototypes::id::CSS2Properties },
   52708             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52709             :   JSJitInfo::Setter,
   52710             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52711             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52712             :   false,  /* isInfallible. False in setters. */
   52713             :   false,  /* isMovable.  Not relevant for setters. */
   52714             :   false, /* isEliminatable.  Not relevant for setters. */
   52715             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52716             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52717             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52718             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52719             : };
   52720             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52721             : static_assert(0 < 1, "There is no slot for us");
   52722             : 
   52723             : static bool
   52724           0 : get_WebkitAnimationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52725             : {
   52726           0 :   binding_detail::FastErrorResult rv;
   52727           0 :   DOMString result;
   52728           0 :   self->GetWebkitAnimationIterationCount(result, rv);
   52729           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52730           0 :     return false;
   52731             :   }
   52732           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52733           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52734           0 :     return false;
   52735             :   }
   52736           0 :   return true;
   52737             : }
   52738             : 
   52739             : static bool
   52740           0 : set_WebkitAnimationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52741             : {
   52742           0 :   binding_detail::FakeString arg0;
   52743           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52744           0 :     return false;
   52745             :   }
   52746           0 :   binding_detail::FastErrorResult rv;
   52747           0 :   self->SetWebkitAnimationIterationCount(NonNullHelper(Constify(arg0)), rv);
   52748           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52749           0 :     return false;
   52750             :   }
   52751           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52752             : 
   52753           0 :   return true;
   52754             : }
   52755             : 
   52756             : static const JSJitInfo WebkitAnimationIterationCount_getterinfo = {
   52757             :   { (JSJitGetterOp)get_WebkitAnimationIterationCount },
   52758             :   { prototypes::id::CSS2Properties },
   52759             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52760             :   JSJitInfo::Getter,
   52761             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52762             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52763             :   false,  /* isInfallible. False in setters. */
   52764             :   false,  /* isMovable.  Not relevant for setters. */
   52765             :   false, /* isEliminatable.  Not relevant for setters. */
   52766             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52767             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52768             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52769             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52770             : };
   52771             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52772             : static_assert(0 < 1, "There is no slot for us");
   52773             : static const JSJitInfo WebkitAnimationIterationCount_setterinfo = {
   52774             :   { (JSJitGetterOp)set_WebkitAnimationIterationCount },
   52775             :   { prototypes::id::CSS2Properties },
   52776             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52777             :   JSJitInfo::Setter,
   52778             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52779             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52780             :   false,  /* isInfallible. False in setters. */
   52781             :   false,  /* isMovable.  Not relevant for setters. */
   52782             :   false, /* isEliminatable.  Not relevant for setters. */
   52783             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52784             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52785             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52786             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52787             : };
   52788             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52789             : static_assert(0 < 1, "There is no slot for us");
   52790             : 
   52791             : static bool
   52792           0 : get_webkitAnimationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52793             : {
   52794           0 :   binding_detail::FastErrorResult rv;
   52795           0 :   DOMString result;
   52796           0 :   self->GetWebkitAnimationIterationCount(result, rv);
   52797           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52798           0 :     return false;
   52799             :   }
   52800           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52801           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52802           0 :     return false;
   52803             :   }
   52804           0 :   return true;
   52805             : }
   52806             : 
   52807             : static bool
   52808           0 : set_webkitAnimationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52809             : {
   52810           0 :   binding_detail::FakeString arg0;
   52811           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52812           0 :     return false;
   52813             :   }
   52814           0 :   binding_detail::FastErrorResult rv;
   52815           0 :   self->SetWebkitAnimationIterationCount(NonNullHelper(Constify(arg0)), rv);
   52816           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52817           0 :     return false;
   52818             :   }
   52819           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52820             : 
   52821           0 :   return true;
   52822             : }
   52823             : 
   52824             : static const JSJitInfo webkitAnimationIterationCount_getterinfo = {
   52825             :   { (JSJitGetterOp)get_webkitAnimationIterationCount },
   52826             :   { prototypes::id::CSS2Properties },
   52827             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52828             :   JSJitInfo::Getter,
   52829             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52830             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52831             :   false,  /* isInfallible. False in setters. */
   52832             :   false,  /* isMovable.  Not relevant for setters. */
   52833             :   false, /* isEliminatable.  Not relevant for setters. */
   52834             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52835             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52836             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52837             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52838             : };
   52839             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52840             : static_assert(0 < 1, "There is no slot for us");
   52841             : static const JSJitInfo webkitAnimationIterationCount_setterinfo = {
   52842             :   { (JSJitGetterOp)set_webkitAnimationIterationCount },
   52843             :   { prototypes::id::CSS2Properties },
   52844             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52845             :   JSJitInfo::Setter,
   52846             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52847             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52848             :   false,  /* isInfallible. False in setters. */
   52849             :   false,  /* isMovable.  Not relevant for setters. */
   52850             :   false, /* isEliminatable.  Not relevant for setters. */
   52851             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52852             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52853             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52854             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52855             : };
   52856             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52857             : static_assert(0 < 1, "There is no slot for us");
   52858             : 
   52859             : static bool
   52860           0 : get__webkit_animation_iteration_count(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52861             : {
   52862           0 :   binding_detail::FastErrorResult rv;
   52863           0 :   DOMString result;
   52864           0 :   self->GetWebkitAnimationIterationCount(result, rv);
   52865           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52866           0 :     return false;
   52867             :   }
   52868           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52869           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52870           0 :     return false;
   52871             :   }
   52872           0 :   return true;
   52873             : }
   52874             : 
   52875             : static bool
   52876           0 : set__webkit_animation_iteration_count(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52877             : {
   52878           0 :   binding_detail::FakeString arg0;
   52879           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52880           0 :     return false;
   52881             :   }
   52882           0 :   binding_detail::FastErrorResult rv;
   52883           0 :   self->SetWebkitAnimationIterationCount(NonNullHelper(Constify(arg0)), rv);
   52884           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52885           0 :     return false;
   52886             :   }
   52887           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52888             : 
   52889           0 :   return true;
   52890             : }
   52891             : 
   52892             : static const JSJitInfo _webkit_animation_iteration_count_getterinfo = {
   52893             :   { (JSJitGetterOp)get__webkit_animation_iteration_count },
   52894             :   { prototypes::id::CSS2Properties },
   52895             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52896             :   JSJitInfo::Getter,
   52897             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52898             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52899             :   false,  /* isInfallible. False in setters. */
   52900             :   false,  /* isMovable.  Not relevant for setters. */
   52901             :   false, /* isEliminatable.  Not relevant for setters. */
   52902             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52903             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52904             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52905             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52906             : };
   52907             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52908             : static_assert(0 < 1, "There is no slot for us");
   52909             : static const JSJitInfo _webkit_animation_iteration_count_setterinfo = {
   52910             :   { (JSJitGetterOp)set__webkit_animation_iteration_count },
   52911             :   { prototypes::id::CSS2Properties },
   52912             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52913             :   JSJitInfo::Setter,
   52914             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52915             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52916             :   false,  /* isInfallible. False in setters. */
   52917             :   false,  /* isMovable.  Not relevant for setters. */
   52918             :   false, /* isEliminatable.  Not relevant for setters. */
   52919             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52920             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52921             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52922             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52923             : };
   52924             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52925             : static_assert(0 < 1, "There is no slot for us");
   52926             : 
   52927             : static bool
   52928           0 : get_WebkitAnimationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52929             : {
   52930           0 :   binding_detail::FastErrorResult rv;
   52931           0 :   DOMString result;
   52932           0 :   self->GetWebkitAnimationName(result, rv);
   52933           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52934           0 :     return false;
   52935             :   }
   52936           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52937           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   52938           0 :     return false;
   52939             :   }
   52940           0 :   return true;
   52941             : }
   52942             : 
   52943             : static bool
   52944           0 : set_WebkitAnimationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   52945             : {
   52946           0 :   binding_detail::FakeString arg0;
   52947           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   52948           0 :     return false;
   52949             :   }
   52950           0 :   binding_detail::FastErrorResult rv;
   52951           0 :   self->SetWebkitAnimationName(NonNullHelper(Constify(arg0)), rv);
   52952           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   52953           0 :     return false;
   52954             :   }
   52955           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   52956             : 
   52957           0 :   return true;
   52958             : }
   52959             : 
   52960             : static const JSJitInfo WebkitAnimationName_getterinfo = {
   52961             :   { (JSJitGetterOp)get_WebkitAnimationName },
   52962             :   { prototypes::id::CSS2Properties },
   52963             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52964             :   JSJitInfo::Getter,
   52965             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52966             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   52967             :   false,  /* isInfallible. False in setters. */
   52968             :   false,  /* isMovable.  Not relevant for setters. */
   52969             :   false, /* isEliminatable.  Not relevant for setters. */
   52970             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52971             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52972             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52973             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52974             : };
   52975             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52976             : static_assert(0 < 1, "There is no slot for us");
   52977             : static const JSJitInfo WebkitAnimationName_setterinfo = {
   52978             :   { (JSJitGetterOp)set_WebkitAnimationName },
   52979             :   { prototypes::id::CSS2Properties },
   52980             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   52981             :   JSJitInfo::Setter,
   52982             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   52983             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   52984             :   false,  /* isInfallible. False in setters. */
   52985             :   false,  /* isMovable.  Not relevant for setters. */
   52986             :   false, /* isEliminatable.  Not relevant for setters. */
   52987             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   52988             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   52989             :   false,  /* isTypedMethod.  Only relevant for methods. */
   52990             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   52991             : };
   52992             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   52993             : static_assert(0 < 1, "There is no slot for us");
   52994             : 
   52995             : static bool
   52996           0 : get_webkitAnimationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   52997             : {
   52998           0 :   binding_detail::FastErrorResult rv;
   52999           0 :   DOMString result;
   53000           0 :   self->GetWebkitAnimationName(result, rv);
   53001           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53002           0 :     return false;
   53003             :   }
   53004           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53005           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53006           0 :     return false;
   53007             :   }
   53008           0 :   return true;
   53009             : }
   53010             : 
   53011             : static bool
   53012           0 : set_webkitAnimationName(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53013             : {
   53014           0 :   binding_detail::FakeString arg0;
   53015           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53016           0 :     return false;
   53017             :   }
   53018           0 :   binding_detail::FastErrorResult rv;
   53019           0 :   self->SetWebkitAnimationName(NonNullHelper(Constify(arg0)), rv);
   53020           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53021           0 :     return false;
   53022             :   }
   53023           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53024             : 
   53025           0 :   return true;
   53026             : }
   53027             : 
   53028             : static const JSJitInfo webkitAnimationName_getterinfo = {
   53029             :   { (JSJitGetterOp)get_webkitAnimationName },
   53030             :   { prototypes::id::CSS2Properties },
   53031             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53032             :   JSJitInfo::Getter,
   53033             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53034             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53035             :   false,  /* isInfallible. False in setters. */
   53036             :   false,  /* isMovable.  Not relevant for setters. */
   53037             :   false, /* isEliminatable.  Not relevant for setters. */
   53038             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53039             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53040             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53041             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53042             : };
   53043             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53044             : static_assert(0 < 1, "There is no slot for us");
   53045             : static const JSJitInfo webkitAnimationName_setterinfo = {
   53046             :   { (JSJitGetterOp)set_webkitAnimationName },
   53047             :   { prototypes::id::CSS2Properties },
   53048             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53049             :   JSJitInfo::Setter,
   53050             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53051             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53052             :   false,  /* isInfallible. False in setters. */
   53053             :   false,  /* isMovable.  Not relevant for setters. */
   53054             :   false, /* isEliminatable.  Not relevant for setters. */
   53055             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53056             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53057             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53058             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53059             : };
   53060             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53061             : static_assert(0 < 1, "There is no slot for us");
   53062             : 
   53063             : static bool
   53064           0 : get__webkit_animation_name(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53065             : {
   53066           0 :   binding_detail::FastErrorResult rv;
   53067           0 :   DOMString result;
   53068           0 :   self->GetWebkitAnimationName(result, rv);
   53069           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53070           0 :     return false;
   53071             :   }
   53072           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53073           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53074           0 :     return false;
   53075             :   }
   53076           0 :   return true;
   53077             : }
   53078             : 
   53079             : static bool
   53080           0 : set__webkit_animation_name(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53081             : {
   53082           0 :   binding_detail::FakeString arg0;
   53083           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53084           0 :     return false;
   53085             :   }
   53086           0 :   binding_detail::FastErrorResult rv;
   53087           0 :   self->SetWebkitAnimationName(NonNullHelper(Constify(arg0)), rv);
   53088           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53089           0 :     return false;
   53090             :   }
   53091           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53092             : 
   53093           0 :   return true;
   53094             : }
   53095             : 
   53096             : static const JSJitInfo _webkit_animation_name_getterinfo = {
   53097             :   { (JSJitGetterOp)get__webkit_animation_name },
   53098             :   { prototypes::id::CSS2Properties },
   53099             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53100             :   JSJitInfo::Getter,
   53101             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53102             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53103             :   false,  /* isInfallible. False in setters. */
   53104             :   false,  /* isMovable.  Not relevant for setters. */
   53105             :   false, /* isEliminatable.  Not relevant for setters. */
   53106             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53107             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53108             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53109             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53110             : };
   53111             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53112             : static_assert(0 < 1, "There is no slot for us");
   53113             : static const JSJitInfo _webkit_animation_name_setterinfo = {
   53114             :   { (JSJitGetterOp)set__webkit_animation_name },
   53115             :   { prototypes::id::CSS2Properties },
   53116             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53117             :   JSJitInfo::Setter,
   53118             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53119             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53120             :   false,  /* isInfallible. False in setters. */
   53121             :   false,  /* isMovable.  Not relevant for setters. */
   53122             :   false, /* isEliminatable.  Not relevant for setters. */
   53123             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53124             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53125             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53126             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53127             : };
   53128             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53129             : static_assert(0 < 1, "There is no slot for us");
   53130             : 
   53131             : static bool
   53132           0 : get_WebkitAnimationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53133             : {
   53134           0 :   binding_detail::FastErrorResult rv;
   53135           0 :   DOMString result;
   53136           0 :   self->GetWebkitAnimationPlayState(result, rv);
   53137           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53138           0 :     return false;
   53139             :   }
   53140           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53141           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53142           0 :     return false;
   53143             :   }
   53144           0 :   return true;
   53145             : }
   53146             : 
   53147             : static bool
   53148           0 : set_WebkitAnimationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53149             : {
   53150           0 :   binding_detail::FakeString arg0;
   53151           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53152           0 :     return false;
   53153             :   }
   53154           0 :   binding_detail::FastErrorResult rv;
   53155           0 :   self->SetWebkitAnimationPlayState(NonNullHelper(Constify(arg0)), rv);
   53156           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53157           0 :     return false;
   53158             :   }
   53159           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53160             : 
   53161           0 :   return true;
   53162             : }
   53163             : 
   53164             : static const JSJitInfo WebkitAnimationPlayState_getterinfo = {
   53165             :   { (JSJitGetterOp)get_WebkitAnimationPlayState },
   53166             :   { prototypes::id::CSS2Properties },
   53167             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53168             :   JSJitInfo::Getter,
   53169             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53170             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53171             :   false,  /* isInfallible. False in setters. */
   53172             :   false,  /* isMovable.  Not relevant for setters. */
   53173             :   false, /* isEliminatable.  Not relevant for setters. */
   53174             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53175             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53176             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53177             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53178             : };
   53179             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53180             : static_assert(0 < 1, "There is no slot for us");
   53181             : static const JSJitInfo WebkitAnimationPlayState_setterinfo = {
   53182             :   { (JSJitGetterOp)set_WebkitAnimationPlayState },
   53183             :   { prototypes::id::CSS2Properties },
   53184             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53185             :   JSJitInfo::Setter,
   53186             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53187             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53188             :   false,  /* isInfallible. False in setters. */
   53189             :   false,  /* isMovable.  Not relevant for setters. */
   53190             :   false, /* isEliminatable.  Not relevant for setters. */
   53191             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53192             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53193             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53194             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53195             : };
   53196             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53197             : static_assert(0 < 1, "There is no slot for us");
   53198             : 
   53199             : static bool
   53200           0 : get_webkitAnimationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53201             : {
   53202           0 :   binding_detail::FastErrorResult rv;
   53203           0 :   DOMString result;
   53204           0 :   self->GetWebkitAnimationPlayState(result, rv);
   53205           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53206           0 :     return false;
   53207             :   }
   53208           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53209           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53210           0 :     return false;
   53211             :   }
   53212           0 :   return true;
   53213             : }
   53214             : 
   53215             : static bool
   53216           0 : set_webkitAnimationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53217             : {
   53218           0 :   binding_detail::FakeString arg0;
   53219           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53220           0 :     return false;
   53221             :   }
   53222           0 :   binding_detail::FastErrorResult rv;
   53223           0 :   self->SetWebkitAnimationPlayState(NonNullHelper(Constify(arg0)), rv);
   53224           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53225           0 :     return false;
   53226             :   }
   53227           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53228             : 
   53229           0 :   return true;
   53230             : }
   53231             : 
   53232             : static const JSJitInfo webkitAnimationPlayState_getterinfo = {
   53233             :   { (JSJitGetterOp)get_webkitAnimationPlayState },
   53234             :   { prototypes::id::CSS2Properties },
   53235             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53236             :   JSJitInfo::Getter,
   53237             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53238             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53239             :   false,  /* isInfallible. False in setters. */
   53240             :   false,  /* isMovable.  Not relevant for setters. */
   53241             :   false, /* isEliminatable.  Not relevant for setters. */
   53242             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53243             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53244             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53245             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53246             : };
   53247             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53248             : static_assert(0 < 1, "There is no slot for us");
   53249             : static const JSJitInfo webkitAnimationPlayState_setterinfo = {
   53250             :   { (JSJitGetterOp)set_webkitAnimationPlayState },
   53251             :   { prototypes::id::CSS2Properties },
   53252             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53253             :   JSJitInfo::Setter,
   53254             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53255             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53256             :   false,  /* isInfallible. False in setters. */
   53257             :   false,  /* isMovable.  Not relevant for setters. */
   53258             :   false, /* isEliminatable.  Not relevant for setters. */
   53259             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53260             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53261             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53262             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53263             : };
   53264             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53265             : static_assert(0 < 1, "There is no slot for us");
   53266             : 
   53267             : static bool
   53268           0 : get__webkit_animation_play_state(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53269             : {
   53270           0 :   binding_detail::FastErrorResult rv;
   53271           0 :   DOMString result;
   53272           0 :   self->GetWebkitAnimationPlayState(result, rv);
   53273           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53274           0 :     return false;
   53275             :   }
   53276           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53277           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53278           0 :     return false;
   53279             :   }
   53280           0 :   return true;
   53281             : }
   53282             : 
   53283             : static bool
   53284           0 : set__webkit_animation_play_state(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53285             : {
   53286           0 :   binding_detail::FakeString arg0;
   53287           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53288           0 :     return false;
   53289             :   }
   53290           0 :   binding_detail::FastErrorResult rv;
   53291           0 :   self->SetWebkitAnimationPlayState(NonNullHelper(Constify(arg0)), rv);
   53292           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53293           0 :     return false;
   53294             :   }
   53295           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53296             : 
   53297           0 :   return true;
   53298             : }
   53299             : 
   53300             : static const JSJitInfo _webkit_animation_play_state_getterinfo = {
   53301             :   { (JSJitGetterOp)get__webkit_animation_play_state },
   53302             :   { prototypes::id::CSS2Properties },
   53303             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53304             :   JSJitInfo::Getter,
   53305             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53306             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53307             :   false,  /* isInfallible. False in setters. */
   53308             :   false,  /* isMovable.  Not relevant for setters. */
   53309             :   false, /* isEliminatable.  Not relevant for setters. */
   53310             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53311             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53312             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53313             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53314             : };
   53315             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53316             : static_assert(0 < 1, "There is no slot for us");
   53317             : static const JSJitInfo _webkit_animation_play_state_setterinfo = {
   53318             :   { (JSJitGetterOp)set__webkit_animation_play_state },
   53319             :   { prototypes::id::CSS2Properties },
   53320             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53321             :   JSJitInfo::Setter,
   53322             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53323             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53324             :   false,  /* isInfallible. False in setters. */
   53325             :   false,  /* isMovable.  Not relevant for setters. */
   53326             :   false, /* isEliminatable.  Not relevant for setters. */
   53327             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53328             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53329             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53330             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53331             : };
   53332             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53333             : static_assert(0 < 1, "There is no slot for us");
   53334             : 
   53335             : static bool
   53336           0 : get_WebkitAnimationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53337             : {
   53338           0 :   binding_detail::FastErrorResult rv;
   53339           0 :   DOMString result;
   53340           0 :   self->GetWebkitAnimationTimingFunction(result, rv);
   53341           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53342           0 :     return false;
   53343             :   }
   53344           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53345           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53346           0 :     return false;
   53347             :   }
   53348           0 :   return true;
   53349             : }
   53350             : 
   53351             : static bool
   53352           0 : set_WebkitAnimationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53353             : {
   53354           0 :   binding_detail::FakeString arg0;
   53355           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53356           0 :     return false;
   53357             :   }
   53358           0 :   binding_detail::FastErrorResult rv;
   53359           0 :   self->SetWebkitAnimationTimingFunction(NonNullHelper(Constify(arg0)), rv);
   53360           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53361           0 :     return false;
   53362             :   }
   53363           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53364             : 
   53365           0 :   return true;
   53366             : }
   53367             : 
   53368             : static const JSJitInfo WebkitAnimationTimingFunction_getterinfo = {
   53369             :   { (JSJitGetterOp)get_WebkitAnimationTimingFunction },
   53370             :   { prototypes::id::CSS2Properties },
   53371             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53372             :   JSJitInfo::Getter,
   53373             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53374             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53375             :   false,  /* isInfallible. False in setters. */
   53376             :   false,  /* isMovable.  Not relevant for setters. */
   53377             :   false, /* isEliminatable.  Not relevant for setters. */
   53378             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53379             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53380             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53381             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53382             : };
   53383             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53384             : static_assert(0 < 1, "There is no slot for us");
   53385             : static const JSJitInfo WebkitAnimationTimingFunction_setterinfo = {
   53386             :   { (JSJitGetterOp)set_WebkitAnimationTimingFunction },
   53387             :   { prototypes::id::CSS2Properties },
   53388             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53389             :   JSJitInfo::Setter,
   53390             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53391             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53392             :   false,  /* isInfallible. False in setters. */
   53393             :   false,  /* isMovable.  Not relevant for setters. */
   53394             :   false, /* isEliminatable.  Not relevant for setters. */
   53395             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53396             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53397             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53398             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53399             : };
   53400             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53401             : static_assert(0 < 1, "There is no slot for us");
   53402             : 
   53403             : static bool
   53404           0 : get_webkitAnimationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53405             : {
   53406           0 :   binding_detail::FastErrorResult rv;
   53407           0 :   DOMString result;
   53408           0 :   self->GetWebkitAnimationTimingFunction(result, rv);
   53409           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53410           0 :     return false;
   53411             :   }
   53412           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53413           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53414           0 :     return false;
   53415             :   }
   53416           0 :   return true;
   53417             : }
   53418             : 
   53419             : static bool
   53420           0 : set_webkitAnimationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53421             : {
   53422           0 :   binding_detail::FakeString arg0;
   53423           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53424           0 :     return false;
   53425             :   }
   53426           0 :   binding_detail::FastErrorResult rv;
   53427           0 :   self->SetWebkitAnimationTimingFunction(NonNullHelper(Constify(arg0)), rv);
   53428           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53429           0 :     return false;
   53430             :   }
   53431           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53432             : 
   53433           0 :   return true;
   53434             : }
   53435             : 
   53436             : static const JSJitInfo webkitAnimationTimingFunction_getterinfo = {
   53437             :   { (JSJitGetterOp)get_webkitAnimationTimingFunction },
   53438             :   { prototypes::id::CSS2Properties },
   53439             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53440             :   JSJitInfo::Getter,
   53441             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53442             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53443             :   false,  /* isInfallible. False in setters. */
   53444             :   false,  /* isMovable.  Not relevant for setters. */
   53445             :   false, /* isEliminatable.  Not relevant for setters. */
   53446             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53447             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53448             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53449             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53450             : };
   53451             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53452             : static_assert(0 < 1, "There is no slot for us");
   53453             : static const JSJitInfo webkitAnimationTimingFunction_setterinfo = {
   53454             :   { (JSJitGetterOp)set_webkitAnimationTimingFunction },
   53455             :   { prototypes::id::CSS2Properties },
   53456             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53457             :   JSJitInfo::Setter,
   53458             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53459             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53460             :   false,  /* isInfallible. False in setters. */
   53461             :   false,  /* isMovable.  Not relevant for setters. */
   53462             :   false, /* isEliminatable.  Not relevant for setters. */
   53463             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53464             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53465             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53466             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53467             : };
   53468             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53469             : static_assert(0 < 1, "There is no slot for us");
   53470             : 
   53471             : static bool
   53472           0 : get__webkit_animation_timing_function(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53473             : {
   53474           0 :   binding_detail::FastErrorResult rv;
   53475           0 :   DOMString result;
   53476           0 :   self->GetWebkitAnimationTimingFunction(result, rv);
   53477           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53478           0 :     return false;
   53479             :   }
   53480           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53481           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53482           0 :     return false;
   53483             :   }
   53484           0 :   return true;
   53485             : }
   53486             : 
   53487             : static bool
   53488           0 : set__webkit_animation_timing_function(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53489             : {
   53490           0 :   binding_detail::FakeString arg0;
   53491           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53492           0 :     return false;
   53493             :   }
   53494           0 :   binding_detail::FastErrorResult rv;
   53495           0 :   self->SetWebkitAnimationTimingFunction(NonNullHelper(Constify(arg0)), rv);
   53496           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53497           0 :     return false;
   53498             :   }
   53499           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53500             : 
   53501           0 :   return true;
   53502             : }
   53503             : 
   53504             : static const JSJitInfo _webkit_animation_timing_function_getterinfo = {
   53505             :   { (JSJitGetterOp)get__webkit_animation_timing_function },
   53506             :   { prototypes::id::CSS2Properties },
   53507             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53508             :   JSJitInfo::Getter,
   53509             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53510             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53511             :   false,  /* isInfallible. False in setters. */
   53512             :   false,  /* isMovable.  Not relevant for setters. */
   53513             :   false, /* isEliminatable.  Not relevant for setters. */
   53514             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53515             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53516             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53517             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53518             : };
   53519             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53520             : static_assert(0 < 1, "There is no slot for us");
   53521             : static const JSJitInfo _webkit_animation_timing_function_setterinfo = {
   53522             :   { (JSJitGetterOp)set__webkit_animation_timing_function },
   53523             :   { prototypes::id::CSS2Properties },
   53524             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53525             :   JSJitInfo::Setter,
   53526             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53527             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53528             :   false,  /* isInfallible. False in setters. */
   53529             :   false,  /* isMovable.  Not relevant for setters. */
   53530             :   false, /* isEliminatable.  Not relevant for setters. */
   53531             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53532             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53533             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53534             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53535             : };
   53536             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53537             : static_assert(0 < 1, "There is no slot for us");
   53538             : 
   53539             : static bool
   53540           0 : get_WebkitFilter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53541             : {
   53542           0 :   binding_detail::FastErrorResult rv;
   53543           0 :   DOMString result;
   53544           0 :   self->GetWebkitFilter(result, rv);
   53545           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53546           0 :     return false;
   53547             :   }
   53548           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53549           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53550           0 :     return false;
   53551             :   }
   53552           0 :   return true;
   53553             : }
   53554             : 
   53555             : static bool
   53556           0 : set_WebkitFilter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53557             : {
   53558           0 :   binding_detail::FakeString arg0;
   53559           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53560           0 :     return false;
   53561             :   }
   53562           0 :   binding_detail::FastErrorResult rv;
   53563           0 :   self->SetWebkitFilter(NonNullHelper(Constify(arg0)), rv);
   53564           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53565           0 :     return false;
   53566             :   }
   53567           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53568             : 
   53569           0 :   return true;
   53570             : }
   53571             : 
   53572             : static const JSJitInfo WebkitFilter_getterinfo = {
   53573             :   { (JSJitGetterOp)get_WebkitFilter },
   53574             :   { prototypes::id::CSS2Properties },
   53575             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53576             :   JSJitInfo::Getter,
   53577             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53578             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53579             :   false,  /* isInfallible. False in setters. */
   53580             :   false,  /* isMovable.  Not relevant for setters. */
   53581             :   false, /* isEliminatable.  Not relevant for setters. */
   53582             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53583             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53584             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53585             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53586             : };
   53587             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53588             : static_assert(0 < 1, "There is no slot for us");
   53589             : static const JSJitInfo WebkitFilter_setterinfo = {
   53590             :   { (JSJitGetterOp)set_WebkitFilter },
   53591             :   { prototypes::id::CSS2Properties },
   53592             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53593             :   JSJitInfo::Setter,
   53594             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53595             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53596             :   false,  /* isInfallible. False in setters. */
   53597             :   false,  /* isMovable.  Not relevant for setters. */
   53598             :   false, /* isEliminatable.  Not relevant for setters. */
   53599             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53600             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53601             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53602             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53603             : };
   53604             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53605             : static_assert(0 < 1, "There is no slot for us");
   53606             : 
   53607             : static bool
   53608           0 : get_webkitFilter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53609             : {
   53610           0 :   binding_detail::FastErrorResult rv;
   53611           0 :   DOMString result;
   53612           0 :   self->GetWebkitFilter(result, rv);
   53613           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53614           0 :     return false;
   53615             :   }
   53616           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53617           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53618           0 :     return false;
   53619             :   }
   53620           0 :   return true;
   53621             : }
   53622             : 
   53623             : static bool
   53624           0 : set_webkitFilter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53625             : {
   53626           0 :   binding_detail::FakeString arg0;
   53627           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53628           0 :     return false;
   53629             :   }
   53630           0 :   binding_detail::FastErrorResult rv;
   53631           0 :   self->SetWebkitFilter(NonNullHelper(Constify(arg0)), rv);
   53632           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53633           0 :     return false;
   53634             :   }
   53635           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53636             : 
   53637           0 :   return true;
   53638             : }
   53639             : 
   53640             : static const JSJitInfo webkitFilter_getterinfo = {
   53641             :   { (JSJitGetterOp)get_webkitFilter },
   53642             :   { prototypes::id::CSS2Properties },
   53643             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53644             :   JSJitInfo::Getter,
   53645             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53646             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53647             :   false,  /* isInfallible. False in setters. */
   53648             :   false,  /* isMovable.  Not relevant for setters. */
   53649             :   false, /* isEliminatable.  Not relevant for setters. */
   53650             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53651             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53652             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53653             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53654             : };
   53655             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53656             : static_assert(0 < 1, "There is no slot for us");
   53657             : static const JSJitInfo webkitFilter_setterinfo = {
   53658             :   { (JSJitGetterOp)set_webkitFilter },
   53659             :   { prototypes::id::CSS2Properties },
   53660             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53661             :   JSJitInfo::Setter,
   53662             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53663             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53664             :   false,  /* isInfallible. False in setters. */
   53665             :   false,  /* isMovable.  Not relevant for setters. */
   53666             :   false, /* isEliminatable.  Not relevant for setters. */
   53667             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53668             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53669             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53670             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53671             : };
   53672             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53673             : static_assert(0 < 1, "There is no slot for us");
   53674             : 
   53675             : static bool
   53676           0 : get__webkit_filter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53677             : {
   53678           0 :   binding_detail::FastErrorResult rv;
   53679           0 :   DOMString result;
   53680           0 :   self->GetWebkitFilter(result, rv);
   53681           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53682           0 :     return false;
   53683             :   }
   53684           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53685           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53686           0 :     return false;
   53687             :   }
   53688           0 :   return true;
   53689             : }
   53690             : 
   53691             : static bool
   53692           0 : set__webkit_filter(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53693             : {
   53694           0 :   binding_detail::FakeString arg0;
   53695           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53696           0 :     return false;
   53697             :   }
   53698           0 :   binding_detail::FastErrorResult rv;
   53699           0 :   self->SetWebkitFilter(NonNullHelper(Constify(arg0)), rv);
   53700           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53701           0 :     return false;
   53702             :   }
   53703           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53704             : 
   53705           0 :   return true;
   53706             : }
   53707             : 
   53708             : static const JSJitInfo _webkit_filter_getterinfo = {
   53709             :   { (JSJitGetterOp)get__webkit_filter },
   53710             :   { prototypes::id::CSS2Properties },
   53711             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53712             :   JSJitInfo::Getter,
   53713             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53714             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53715             :   false,  /* isInfallible. False in setters. */
   53716             :   false,  /* isMovable.  Not relevant for setters. */
   53717             :   false, /* isEliminatable.  Not relevant for setters. */
   53718             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53719             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53720             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53721             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53722             : };
   53723             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53724             : static_assert(0 < 1, "There is no slot for us");
   53725             : static const JSJitInfo _webkit_filter_setterinfo = {
   53726             :   { (JSJitGetterOp)set__webkit_filter },
   53727             :   { prototypes::id::CSS2Properties },
   53728             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53729             :   JSJitInfo::Setter,
   53730             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53731             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53732             :   false,  /* isInfallible. False in setters. */
   53733             :   false,  /* isMovable.  Not relevant for setters. */
   53734             :   false, /* isEliminatable.  Not relevant for setters. */
   53735             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53736             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53737             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53738             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53739             : };
   53740             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53741             : static_assert(0 < 1, "There is no slot for us");
   53742             : 
   53743             : static bool
   53744           0 : get_WebkitTextSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53745             : {
   53746           0 :   binding_detail::FastErrorResult rv;
   53747           0 :   DOMString result;
   53748           0 :   self->GetWebkitTextSizeAdjust(result, rv);
   53749           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53750           0 :     return false;
   53751             :   }
   53752           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53753           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53754           0 :     return false;
   53755             :   }
   53756           0 :   return true;
   53757             : }
   53758             : 
   53759             : static bool
   53760           0 : set_WebkitTextSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53761             : {
   53762           0 :   binding_detail::FakeString arg0;
   53763           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53764           0 :     return false;
   53765             :   }
   53766           0 :   binding_detail::FastErrorResult rv;
   53767           0 :   self->SetWebkitTextSizeAdjust(NonNullHelper(Constify(arg0)), rv);
   53768           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53769           0 :     return false;
   53770             :   }
   53771           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53772             : 
   53773           0 :   return true;
   53774             : }
   53775             : 
   53776             : static const JSJitInfo WebkitTextSizeAdjust_getterinfo = {
   53777             :   { (JSJitGetterOp)get_WebkitTextSizeAdjust },
   53778             :   { prototypes::id::CSS2Properties },
   53779             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53780             :   JSJitInfo::Getter,
   53781             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53782             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53783             :   false,  /* isInfallible. False in setters. */
   53784             :   false,  /* isMovable.  Not relevant for setters. */
   53785             :   false, /* isEliminatable.  Not relevant for setters. */
   53786             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53787             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53788             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53789             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53790             : };
   53791             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53792             : static_assert(0 < 1, "There is no slot for us");
   53793             : static const JSJitInfo WebkitTextSizeAdjust_setterinfo = {
   53794             :   { (JSJitGetterOp)set_WebkitTextSizeAdjust },
   53795             :   { prototypes::id::CSS2Properties },
   53796             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53797             :   JSJitInfo::Setter,
   53798             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53799             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53800             :   false,  /* isInfallible. False in setters. */
   53801             :   false,  /* isMovable.  Not relevant for setters. */
   53802             :   false, /* isEliminatable.  Not relevant for setters. */
   53803             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53804             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53805             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53806             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53807             : };
   53808             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53809             : static_assert(0 < 1, "There is no slot for us");
   53810             : 
   53811             : static bool
   53812           0 : get_webkitTextSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53813             : {
   53814           0 :   binding_detail::FastErrorResult rv;
   53815           0 :   DOMString result;
   53816           0 :   self->GetWebkitTextSizeAdjust(result, rv);
   53817           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53818           0 :     return false;
   53819             :   }
   53820           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53821           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53822           0 :     return false;
   53823             :   }
   53824           0 :   return true;
   53825             : }
   53826             : 
   53827             : static bool
   53828           0 : set_webkitTextSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53829             : {
   53830           0 :   binding_detail::FakeString arg0;
   53831           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53832           0 :     return false;
   53833             :   }
   53834           0 :   binding_detail::FastErrorResult rv;
   53835           0 :   self->SetWebkitTextSizeAdjust(NonNullHelper(Constify(arg0)), rv);
   53836           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53837           0 :     return false;
   53838             :   }
   53839           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53840             : 
   53841           0 :   return true;
   53842             : }
   53843             : 
   53844             : static const JSJitInfo webkitTextSizeAdjust_getterinfo = {
   53845             :   { (JSJitGetterOp)get_webkitTextSizeAdjust },
   53846             :   { prototypes::id::CSS2Properties },
   53847             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53848             :   JSJitInfo::Getter,
   53849             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53850             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53851             :   false,  /* isInfallible. False in setters. */
   53852             :   false,  /* isMovable.  Not relevant for setters. */
   53853             :   false, /* isEliminatable.  Not relevant for setters. */
   53854             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53855             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53856             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53857             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53858             : };
   53859             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53860             : static_assert(0 < 1, "There is no slot for us");
   53861             : static const JSJitInfo webkitTextSizeAdjust_setterinfo = {
   53862             :   { (JSJitGetterOp)set_webkitTextSizeAdjust },
   53863             :   { prototypes::id::CSS2Properties },
   53864             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53865             :   JSJitInfo::Setter,
   53866             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53867             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53868             :   false,  /* isInfallible. False in setters. */
   53869             :   false,  /* isMovable.  Not relevant for setters. */
   53870             :   false, /* isEliminatable.  Not relevant for setters. */
   53871             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53872             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53873             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53874             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53875             : };
   53876             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53877             : static_assert(0 < 1, "There is no slot for us");
   53878             : 
   53879             : static bool
   53880           0 : get__webkit_text_size_adjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53881             : {
   53882           0 :   binding_detail::FastErrorResult rv;
   53883           0 :   DOMString result;
   53884           0 :   self->GetWebkitTextSizeAdjust(result, rv);
   53885           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53886           0 :     return false;
   53887             :   }
   53888           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53889           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53890           0 :     return false;
   53891             :   }
   53892           0 :   return true;
   53893             : }
   53894             : 
   53895             : static bool
   53896           0 : set__webkit_text_size_adjust(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53897             : {
   53898           0 :   binding_detail::FakeString arg0;
   53899           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53900           0 :     return false;
   53901             :   }
   53902           0 :   binding_detail::FastErrorResult rv;
   53903           0 :   self->SetWebkitTextSizeAdjust(NonNullHelper(Constify(arg0)), rv);
   53904           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53905           0 :     return false;
   53906             :   }
   53907           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53908             : 
   53909           0 :   return true;
   53910             : }
   53911             : 
   53912             : static const JSJitInfo _webkit_text_size_adjust_getterinfo = {
   53913             :   { (JSJitGetterOp)get__webkit_text_size_adjust },
   53914             :   { prototypes::id::CSS2Properties },
   53915             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53916             :   JSJitInfo::Getter,
   53917             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53918             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53919             :   false,  /* isInfallible. False in setters. */
   53920             :   false,  /* isMovable.  Not relevant for setters. */
   53921             :   false, /* isEliminatable.  Not relevant for setters. */
   53922             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53923             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53924             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53925             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53926             : };
   53927             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53928             : static_assert(0 < 1, "There is no slot for us");
   53929             : static const JSJitInfo _webkit_text_size_adjust_setterinfo = {
   53930             :   { (JSJitGetterOp)set__webkit_text_size_adjust },
   53931             :   { prototypes::id::CSS2Properties },
   53932             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53933             :   JSJitInfo::Setter,
   53934             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53935             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   53936             :   false,  /* isInfallible. False in setters. */
   53937             :   false,  /* isMovable.  Not relevant for setters. */
   53938             :   false, /* isEliminatable.  Not relevant for setters. */
   53939             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53940             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53941             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53942             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53943             : };
   53944             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53945             : static_assert(0 < 1, "There is no slot for us");
   53946             : 
   53947             : static bool
   53948           0 : get_WebkitTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   53949             : {
   53950           0 :   binding_detail::FastErrorResult rv;
   53951           0 :   DOMString result;
   53952           0 :   self->GetWebkitTransform(result, rv);
   53953           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53954           0 :     return false;
   53955             :   }
   53956           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53957           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   53958           0 :     return false;
   53959             :   }
   53960           0 :   return true;
   53961             : }
   53962             : 
   53963             : static bool
   53964           0 : set_WebkitTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   53965             : {
   53966           0 :   binding_detail::FakeString arg0;
   53967           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   53968           0 :     return false;
   53969             :   }
   53970           0 :   binding_detail::FastErrorResult rv;
   53971           0 :   self->SetWebkitTransform(NonNullHelper(Constify(arg0)), rv);
   53972           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   53973           0 :     return false;
   53974             :   }
   53975           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   53976             : 
   53977           0 :   return true;
   53978             : }
   53979             : 
   53980             : static const JSJitInfo WebkitTransform_getterinfo = {
   53981             :   { (JSJitGetterOp)get_WebkitTransform },
   53982             :   { prototypes::id::CSS2Properties },
   53983             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   53984             :   JSJitInfo::Getter,
   53985             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   53986             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   53987             :   false,  /* isInfallible. False in setters. */
   53988             :   false,  /* isMovable.  Not relevant for setters. */
   53989             :   false, /* isEliminatable.  Not relevant for setters. */
   53990             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   53991             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   53992             :   false,  /* isTypedMethod.  Only relevant for methods. */
   53993             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   53994             : };
   53995             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   53996             : static_assert(0 < 1, "There is no slot for us");
   53997             : static const JSJitInfo WebkitTransform_setterinfo = {
   53998             :   { (JSJitGetterOp)set_WebkitTransform },
   53999             :   { prototypes::id::CSS2Properties },
   54000             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54001             :   JSJitInfo::Setter,
   54002             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54003             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54004             :   false,  /* isInfallible. False in setters. */
   54005             :   false,  /* isMovable.  Not relevant for setters. */
   54006             :   false, /* isEliminatable.  Not relevant for setters. */
   54007             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54008             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54009             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54010             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54011             : };
   54012             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54013             : static_assert(0 < 1, "There is no slot for us");
   54014             : 
   54015             : static bool
   54016           0 : get_webkitTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54017             : {
   54018           0 :   binding_detail::FastErrorResult rv;
   54019           0 :   DOMString result;
   54020           0 :   self->GetWebkitTransform(result, rv);
   54021           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54022           0 :     return false;
   54023             :   }
   54024           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54025           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54026           0 :     return false;
   54027             :   }
   54028           0 :   return true;
   54029             : }
   54030             : 
   54031             : static bool
   54032           0 : set_webkitTransform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54033             : {
   54034           0 :   binding_detail::FakeString arg0;
   54035           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54036           0 :     return false;
   54037             :   }
   54038           0 :   binding_detail::FastErrorResult rv;
   54039           0 :   self->SetWebkitTransform(NonNullHelper(Constify(arg0)), rv);
   54040           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54041           0 :     return false;
   54042             :   }
   54043           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54044             : 
   54045           0 :   return true;
   54046             : }
   54047             : 
   54048             : static const JSJitInfo webkitTransform_getterinfo = {
   54049             :   { (JSJitGetterOp)get_webkitTransform },
   54050             :   { prototypes::id::CSS2Properties },
   54051             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54052             :   JSJitInfo::Getter,
   54053             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54054             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54055             :   false,  /* isInfallible. False in setters. */
   54056             :   false,  /* isMovable.  Not relevant for setters. */
   54057             :   false, /* isEliminatable.  Not relevant for setters. */
   54058             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54059             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54060             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54061             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54062             : };
   54063             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54064             : static_assert(0 < 1, "There is no slot for us");
   54065             : static const JSJitInfo webkitTransform_setterinfo = {
   54066             :   { (JSJitGetterOp)set_webkitTransform },
   54067             :   { prototypes::id::CSS2Properties },
   54068             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54069             :   JSJitInfo::Setter,
   54070             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54071             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54072             :   false,  /* isInfallible. False in setters. */
   54073             :   false,  /* isMovable.  Not relevant for setters. */
   54074             :   false, /* isEliminatable.  Not relevant for setters. */
   54075             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54076             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54077             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54078             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54079             : };
   54080             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54081             : static_assert(0 < 1, "There is no slot for us");
   54082             : 
   54083             : static bool
   54084           0 : get__webkit_transform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54085             : {
   54086           0 :   binding_detail::FastErrorResult rv;
   54087           0 :   DOMString result;
   54088           0 :   self->GetWebkitTransform(result, rv);
   54089           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54090           0 :     return false;
   54091             :   }
   54092           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54093           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54094           0 :     return false;
   54095             :   }
   54096           0 :   return true;
   54097             : }
   54098             : 
   54099             : static bool
   54100           0 : set__webkit_transform(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54101             : {
   54102           0 :   binding_detail::FakeString arg0;
   54103           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54104           0 :     return false;
   54105             :   }
   54106           0 :   binding_detail::FastErrorResult rv;
   54107           0 :   self->SetWebkitTransform(NonNullHelper(Constify(arg0)), rv);
   54108           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54109           0 :     return false;
   54110             :   }
   54111           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54112             : 
   54113           0 :   return true;
   54114             : }
   54115             : 
   54116             : static const JSJitInfo _webkit_transform_getterinfo = {
   54117             :   { (JSJitGetterOp)get__webkit_transform },
   54118             :   { prototypes::id::CSS2Properties },
   54119             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54120             :   JSJitInfo::Getter,
   54121             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54122             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54123             :   false,  /* isInfallible. False in setters. */
   54124             :   false,  /* isMovable.  Not relevant for setters. */
   54125             :   false, /* isEliminatable.  Not relevant for setters. */
   54126             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54127             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54128             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54129             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54130             : };
   54131             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54132             : static_assert(0 < 1, "There is no slot for us");
   54133             : static const JSJitInfo _webkit_transform_setterinfo = {
   54134             :   { (JSJitGetterOp)set__webkit_transform },
   54135             :   { prototypes::id::CSS2Properties },
   54136             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54137             :   JSJitInfo::Setter,
   54138             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54139             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54140             :   false,  /* isInfallible. False in setters. */
   54141             :   false,  /* isMovable.  Not relevant for setters. */
   54142             :   false, /* isEliminatable.  Not relevant for setters. */
   54143             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54144             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54145             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54146             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54147             : };
   54148             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54149             : static_assert(0 < 1, "There is no slot for us");
   54150             : 
   54151             : static bool
   54152           0 : get_WebkitTransformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54153             : {
   54154           0 :   binding_detail::FastErrorResult rv;
   54155           0 :   DOMString result;
   54156           0 :   self->GetWebkitTransformOrigin(result, rv);
   54157           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54158           0 :     return false;
   54159             :   }
   54160           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54161           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54162           0 :     return false;
   54163             :   }
   54164           0 :   return true;
   54165             : }
   54166             : 
   54167             : static bool
   54168           0 : set_WebkitTransformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54169             : {
   54170           0 :   binding_detail::FakeString arg0;
   54171           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54172           0 :     return false;
   54173             :   }
   54174           0 :   binding_detail::FastErrorResult rv;
   54175           0 :   self->SetWebkitTransformOrigin(NonNullHelper(Constify(arg0)), rv);
   54176           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54177           0 :     return false;
   54178             :   }
   54179           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54180             : 
   54181           0 :   return true;
   54182             : }
   54183             : 
   54184             : static const JSJitInfo WebkitTransformOrigin_getterinfo = {
   54185             :   { (JSJitGetterOp)get_WebkitTransformOrigin },
   54186             :   { prototypes::id::CSS2Properties },
   54187             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54188             :   JSJitInfo::Getter,
   54189             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54190             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54191             :   false,  /* isInfallible. False in setters. */
   54192             :   false,  /* isMovable.  Not relevant for setters. */
   54193             :   false, /* isEliminatable.  Not relevant for setters. */
   54194             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54195             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54196             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54197             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54198             : };
   54199             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54200             : static_assert(0 < 1, "There is no slot for us");
   54201             : static const JSJitInfo WebkitTransformOrigin_setterinfo = {
   54202             :   { (JSJitGetterOp)set_WebkitTransformOrigin },
   54203             :   { prototypes::id::CSS2Properties },
   54204             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54205             :   JSJitInfo::Setter,
   54206             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54207             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54208             :   false,  /* isInfallible. False in setters. */
   54209             :   false,  /* isMovable.  Not relevant for setters. */
   54210             :   false, /* isEliminatable.  Not relevant for setters. */
   54211             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54212             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54213             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54214             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54215             : };
   54216             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54217             : static_assert(0 < 1, "There is no slot for us");
   54218             : 
   54219             : static bool
   54220           0 : get_webkitTransformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54221             : {
   54222           0 :   binding_detail::FastErrorResult rv;
   54223           0 :   DOMString result;
   54224           0 :   self->GetWebkitTransformOrigin(result, rv);
   54225           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54226           0 :     return false;
   54227             :   }
   54228           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54229           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54230           0 :     return false;
   54231             :   }
   54232           0 :   return true;
   54233             : }
   54234             : 
   54235             : static bool
   54236           0 : set_webkitTransformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54237             : {
   54238           0 :   binding_detail::FakeString arg0;
   54239           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54240           0 :     return false;
   54241             :   }
   54242           0 :   binding_detail::FastErrorResult rv;
   54243           0 :   self->SetWebkitTransformOrigin(NonNullHelper(Constify(arg0)), rv);
   54244           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54245           0 :     return false;
   54246             :   }
   54247           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54248             : 
   54249           0 :   return true;
   54250             : }
   54251             : 
   54252             : static const JSJitInfo webkitTransformOrigin_getterinfo = {
   54253             :   { (JSJitGetterOp)get_webkitTransformOrigin },
   54254             :   { prototypes::id::CSS2Properties },
   54255             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54256             :   JSJitInfo::Getter,
   54257             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54258             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54259             :   false,  /* isInfallible. False in setters. */
   54260             :   false,  /* isMovable.  Not relevant for setters. */
   54261             :   false, /* isEliminatable.  Not relevant for setters. */
   54262             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54263             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54264             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54265             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54266             : };
   54267             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54268             : static_assert(0 < 1, "There is no slot for us");
   54269             : static const JSJitInfo webkitTransformOrigin_setterinfo = {
   54270             :   { (JSJitGetterOp)set_webkitTransformOrigin },
   54271             :   { prototypes::id::CSS2Properties },
   54272             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54273             :   JSJitInfo::Setter,
   54274             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54275             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54276             :   false,  /* isInfallible. False in setters. */
   54277             :   false,  /* isMovable.  Not relevant for setters. */
   54278             :   false, /* isEliminatable.  Not relevant for setters. */
   54279             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54280             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54281             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54282             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54283             : };
   54284             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54285             : static_assert(0 < 1, "There is no slot for us");
   54286             : 
   54287             : static bool
   54288           0 : get__webkit_transform_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54289             : {
   54290           0 :   binding_detail::FastErrorResult rv;
   54291           0 :   DOMString result;
   54292           0 :   self->GetWebkitTransformOrigin(result, rv);
   54293           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54294           0 :     return false;
   54295             :   }
   54296           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54297           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54298           0 :     return false;
   54299             :   }
   54300           0 :   return true;
   54301             : }
   54302             : 
   54303             : static bool
   54304           0 : set__webkit_transform_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54305             : {
   54306           0 :   binding_detail::FakeString arg0;
   54307           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54308           0 :     return false;
   54309             :   }
   54310           0 :   binding_detail::FastErrorResult rv;
   54311           0 :   self->SetWebkitTransformOrigin(NonNullHelper(Constify(arg0)), rv);
   54312           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54313           0 :     return false;
   54314             :   }
   54315           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54316             : 
   54317           0 :   return true;
   54318             : }
   54319             : 
   54320             : static const JSJitInfo _webkit_transform_origin_getterinfo = {
   54321             :   { (JSJitGetterOp)get__webkit_transform_origin },
   54322             :   { prototypes::id::CSS2Properties },
   54323             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54324             :   JSJitInfo::Getter,
   54325             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54326             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54327             :   false,  /* isInfallible. False in setters. */
   54328             :   false,  /* isMovable.  Not relevant for setters. */
   54329             :   false, /* isEliminatable.  Not relevant for setters. */
   54330             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54331             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54332             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54333             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54334             : };
   54335             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54336             : static_assert(0 < 1, "There is no slot for us");
   54337             : static const JSJitInfo _webkit_transform_origin_setterinfo = {
   54338             :   { (JSJitGetterOp)set__webkit_transform_origin },
   54339             :   { prototypes::id::CSS2Properties },
   54340             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54341             :   JSJitInfo::Setter,
   54342             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54343             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54344             :   false,  /* isInfallible. False in setters. */
   54345             :   false,  /* isMovable.  Not relevant for setters. */
   54346             :   false, /* isEliminatable.  Not relevant for setters. */
   54347             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54348             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54349             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54350             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54351             : };
   54352             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54353             : static_assert(0 < 1, "There is no slot for us");
   54354             : 
   54355             : static bool
   54356           0 : get_WebkitTransformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54357             : {
   54358           0 :   binding_detail::FastErrorResult rv;
   54359           0 :   DOMString result;
   54360           0 :   self->GetWebkitTransformStyle(result, rv);
   54361           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54362           0 :     return false;
   54363             :   }
   54364           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54365           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54366           0 :     return false;
   54367             :   }
   54368           0 :   return true;
   54369             : }
   54370             : 
   54371             : static bool
   54372           0 : set_WebkitTransformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54373             : {
   54374           0 :   binding_detail::FakeString arg0;
   54375           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54376           0 :     return false;
   54377             :   }
   54378           0 :   binding_detail::FastErrorResult rv;
   54379           0 :   self->SetWebkitTransformStyle(NonNullHelper(Constify(arg0)), rv);
   54380           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54381           0 :     return false;
   54382             :   }
   54383           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54384             : 
   54385           0 :   return true;
   54386             : }
   54387             : 
   54388             : static const JSJitInfo WebkitTransformStyle_getterinfo = {
   54389             :   { (JSJitGetterOp)get_WebkitTransformStyle },
   54390             :   { prototypes::id::CSS2Properties },
   54391             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54392             :   JSJitInfo::Getter,
   54393             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54394             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54395             :   false,  /* isInfallible. False in setters. */
   54396             :   false,  /* isMovable.  Not relevant for setters. */
   54397             :   false, /* isEliminatable.  Not relevant for setters. */
   54398             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54399             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54400             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54401             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54402             : };
   54403             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54404             : static_assert(0 < 1, "There is no slot for us");
   54405             : static const JSJitInfo WebkitTransformStyle_setterinfo = {
   54406             :   { (JSJitGetterOp)set_WebkitTransformStyle },
   54407             :   { prototypes::id::CSS2Properties },
   54408             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54409             :   JSJitInfo::Setter,
   54410             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54411             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54412             :   false,  /* isInfallible. False in setters. */
   54413             :   false,  /* isMovable.  Not relevant for setters. */
   54414             :   false, /* isEliminatable.  Not relevant for setters. */
   54415             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54416             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54417             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54418             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54419             : };
   54420             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54421             : static_assert(0 < 1, "There is no slot for us");
   54422             : 
   54423             : static bool
   54424           0 : get_webkitTransformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54425             : {
   54426           0 :   binding_detail::FastErrorResult rv;
   54427           0 :   DOMString result;
   54428           0 :   self->GetWebkitTransformStyle(result, rv);
   54429           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54430           0 :     return false;
   54431             :   }
   54432           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54433           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54434           0 :     return false;
   54435             :   }
   54436           0 :   return true;
   54437             : }
   54438             : 
   54439             : static bool
   54440           0 : set_webkitTransformStyle(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54441             : {
   54442           0 :   binding_detail::FakeString arg0;
   54443           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54444           0 :     return false;
   54445             :   }
   54446           0 :   binding_detail::FastErrorResult rv;
   54447           0 :   self->SetWebkitTransformStyle(NonNullHelper(Constify(arg0)), rv);
   54448           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54449           0 :     return false;
   54450             :   }
   54451           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54452             : 
   54453           0 :   return true;
   54454             : }
   54455             : 
   54456             : static const JSJitInfo webkitTransformStyle_getterinfo = {
   54457             :   { (JSJitGetterOp)get_webkitTransformStyle },
   54458             :   { prototypes::id::CSS2Properties },
   54459             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54460             :   JSJitInfo::Getter,
   54461             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54462             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54463             :   false,  /* isInfallible. False in setters. */
   54464             :   false,  /* isMovable.  Not relevant for setters. */
   54465             :   false, /* isEliminatable.  Not relevant for setters. */
   54466             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54467             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54468             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54469             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54470             : };
   54471             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54472             : static_assert(0 < 1, "There is no slot for us");
   54473             : static const JSJitInfo webkitTransformStyle_setterinfo = {
   54474             :   { (JSJitGetterOp)set_webkitTransformStyle },
   54475             :   { prototypes::id::CSS2Properties },
   54476             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54477             :   JSJitInfo::Setter,
   54478             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54479             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54480             :   false,  /* isInfallible. False in setters. */
   54481             :   false,  /* isMovable.  Not relevant for setters. */
   54482             :   false, /* isEliminatable.  Not relevant for setters. */
   54483             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54484             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54485             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54486             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54487             : };
   54488             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54489             : static_assert(0 < 1, "There is no slot for us");
   54490             : 
   54491             : static bool
   54492           0 : get__webkit_transform_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54493             : {
   54494           0 :   binding_detail::FastErrorResult rv;
   54495           0 :   DOMString result;
   54496           0 :   self->GetWebkitTransformStyle(result, rv);
   54497           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54498           0 :     return false;
   54499             :   }
   54500           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54501           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54502           0 :     return false;
   54503             :   }
   54504           0 :   return true;
   54505             : }
   54506             : 
   54507             : static bool
   54508           0 : set__webkit_transform_style(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54509             : {
   54510           0 :   binding_detail::FakeString arg0;
   54511           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54512           0 :     return false;
   54513             :   }
   54514           0 :   binding_detail::FastErrorResult rv;
   54515           0 :   self->SetWebkitTransformStyle(NonNullHelper(Constify(arg0)), rv);
   54516           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54517           0 :     return false;
   54518             :   }
   54519           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54520             : 
   54521           0 :   return true;
   54522             : }
   54523             : 
   54524             : static const JSJitInfo _webkit_transform_style_getterinfo = {
   54525             :   { (JSJitGetterOp)get__webkit_transform_style },
   54526             :   { prototypes::id::CSS2Properties },
   54527             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54528             :   JSJitInfo::Getter,
   54529             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54530             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54531             :   false,  /* isInfallible. False in setters. */
   54532             :   false,  /* isMovable.  Not relevant for setters. */
   54533             :   false, /* isEliminatable.  Not relevant for setters. */
   54534             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54535             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54536             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54537             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54538             : };
   54539             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54540             : static_assert(0 < 1, "There is no slot for us");
   54541             : static const JSJitInfo _webkit_transform_style_setterinfo = {
   54542             :   { (JSJitGetterOp)set__webkit_transform_style },
   54543             :   { prototypes::id::CSS2Properties },
   54544             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54545             :   JSJitInfo::Setter,
   54546             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54547             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54548             :   false,  /* isInfallible. False in setters. */
   54549             :   false,  /* isMovable.  Not relevant for setters. */
   54550             :   false, /* isEliminatable.  Not relevant for setters. */
   54551             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54552             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54553             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54554             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54555             : };
   54556             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54557             : static_assert(0 < 1, "There is no slot for us");
   54558             : 
   54559             : static bool
   54560           0 : get_WebkitBackfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54561             : {
   54562           0 :   binding_detail::FastErrorResult rv;
   54563           0 :   DOMString result;
   54564           0 :   self->GetWebkitBackfaceVisibility(result, rv);
   54565           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54566           0 :     return false;
   54567             :   }
   54568           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54569           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54570           0 :     return false;
   54571             :   }
   54572           0 :   return true;
   54573             : }
   54574             : 
   54575             : static bool
   54576           0 : set_WebkitBackfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54577             : {
   54578           0 :   binding_detail::FakeString arg0;
   54579           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54580           0 :     return false;
   54581             :   }
   54582           0 :   binding_detail::FastErrorResult rv;
   54583           0 :   self->SetWebkitBackfaceVisibility(NonNullHelper(Constify(arg0)), rv);
   54584           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54585           0 :     return false;
   54586             :   }
   54587           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54588             : 
   54589           0 :   return true;
   54590             : }
   54591             : 
   54592             : static const JSJitInfo WebkitBackfaceVisibility_getterinfo = {
   54593             :   { (JSJitGetterOp)get_WebkitBackfaceVisibility },
   54594             :   { prototypes::id::CSS2Properties },
   54595             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54596             :   JSJitInfo::Getter,
   54597             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54598             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54599             :   false,  /* isInfallible. False in setters. */
   54600             :   false,  /* isMovable.  Not relevant for setters. */
   54601             :   false, /* isEliminatable.  Not relevant for setters. */
   54602             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54603             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54604             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54605             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54606             : };
   54607             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54608             : static_assert(0 < 1, "There is no slot for us");
   54609             : static const JSJitInfo WebkitBackfaceVisibility_setterinfo = {
   54610             :   { (JSJitGetterOp)set_WebkitBackfaceVisibility },
   54611             :   { prototypes::id::CSS2Properties },
   54612             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54613             :   JSJitInfo::Setter,
   54614             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54615             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54616             :   false,  /* isInfallible. False in setters. */
   54617             :   false,  /* isMovable.  Not relevant for setters. */
   54618             :   false, /* isEliminatable.  Not relevant for setters. */
   54619             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54620             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54621             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54622             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54623             : };
   54624             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54625             : static_assert(0 < 1, "There is no slot for us");
   54626             : 
   54627             : static bool
   54628           0 : get_webkitBackfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54629             : {
   54630           0 :   binding_detail::FastErrorResult rv;
   54631           0 :   DOMString result;
   54632           0 :   self->GetWebkitBackfaceVisibility(result, rv);
   54633           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54634           0 :     return false;
   54635             :   }
   54636           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54637           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54638           0 :     return false;
   54639             :   }
   54640           0 :   return true;
   54641             : }
   54642             : 
   54643             : static bool
   54644           0 : set_webkitBackfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54645             : {
   54646           0 :   binding_detail::FakeString arg0;
   54647           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54648           0 :     return false;
   54649             :   }
   54650           0 :   binding_detail::FastErrorResult rv;
   54651           0 :   self->SetWebkitBackfaceVisibility(NonNullHelper(Constify(arg0)), rv);
   54652           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54653           0 :     return false;
   54654             :   }
   54655           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54656             : 
   54657           0 :   return true;
   54658             : }
   54659             : 
   54660             : static const JSJitInfo webkitBackfaceVisibility_getterinfo = {
   54661             :   { (JSJitGetterOp)get_webkitBackfaceVisibility },
   54662             :   { prototypes::id::CSS2Properties },
   54663             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54664             :   JSJitInfo::Getter,
   54665             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54666             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54667             :   false,  /* isInfallible. False in setters. */
   54668             :   false,  /* isMovable.  Not relevant for setters. */
   54669             :   false, /* isEliminatable.  Not relevant for setters. */
   54670             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54671             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54672             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54673             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54674             : };
   54675             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54676             : static_assert(0 < 1, "There is no slot for us");
   54677             : static const JSJitInfo webkitBackfaceVisibility_setterinfo = {
   54678             :   { (JSJitGetterOp)set_webkitBackfaceVisibility },
   54679             :   { prototypes::id::CSS2Properties },
   54680             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54681             :   JSJitInfo::Setter,
   54682             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54683             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54684             :   false,  /* isInfallible. False in setters. */
   54685             :   false,  /* isMovable.  Not relevant for setters. */
   54686             :   false, /* isEliminatable.  Not relevant for setters. */
   54687             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54688             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54689             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54690             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54691             : };
   54692             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54693             : static_assert(0 < 1, "There is no slot for us");
   54694             : 
   54695             : static bool
   54696           0 : get__webkit_backface_visibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54697             : {
   54698           0 :   binding_detail::FastErrorResult rv;
   54699           0 :   DOMString result;
   54700           0 :   self->GetWebkitBackfaceVisibility(result, rv);
   54701           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54702           0 :     return false;
   54703             :   }
   54704           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54705           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54706           0 :     return false;
   54707             :   }
   54708           0 :   return true;
   54709             : }
   54710             : 
   54711             : static bool
   54712           0 : set__webkit_backface_visibility(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54713             : {
   54714           0 :   binding_detail::FakeString arg0;
   54715           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54716           0 :     return false;
   54717             :   }
   54718           0 :   binding_detail::FastErrorResult rv;
   54719           0 :   self->SetWebkitBackfaceVisibility(NonNullHelper(Constify(arg0)), rv);
   54720           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54721           0 :     return false;
   54722             :   }
   54723           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54724             : 
   54725           0 :   return true;
   54726             : }
   54727             : 
   54728             : static const JSJitInfo _webkit_backface_visibility_getterinfo = {
   54729             :   { (JSJitGetterOp)get__webkit_backface_visibility },
   54730             :   { prototypes::id::CSS2Properties },
   54731             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54732             :   JSJitInfo::Getter,
   54733             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54734             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54735             :   false,  /* isInfallible. False in setters. */
   54736             :   false,  /* isMovable.  Not relevant for setters. */
   54737             :   false, /* isEliminatable.  Not relevant for setters. */
   54738             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54739             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54740             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54741             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54742             : };
   54743             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54744             : static_assert(0 < 1, "There is no slot for us");
   54745             : static const JSJitInfo _webkit_backface_visibility_setterinfo = {
   54746             :   { (JSJitGetterOp)set__webkit_backface_visibility },
   54747             :   { prototypes::id::CSS2Properties },
   54748             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54749             :   JSJitInfo::Setter,
   54750             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54751             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54752             :   false,  /* isInfallible. False in setters. */
   54753             :   false,  /* isMovable.  Not relevant for setters. */
   54754             :   false, /* isEliminatable.  Not relevant for setters. */
   54755             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54756             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54757             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54758             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54759             : };
   54760             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54761             : static_assert(0 < 1, "There is no slot for us");
   54762             : 
   54763             : static bool
   54764           0 : get_WebkitPerspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54765             : {
   54766           0 :   binding_detail::FastErrorResult rv;
   54767           0 :   DOMString result;
   54768           0 :   self->GetWebkitPerspective(result, rv);
   54769           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54770           0 :     return false;
   54771             :   }
   54772           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54773           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54774           0 :     return false;
   54775             :   }
   54776           0 :   return true;
   54777             : }
   54778             : 
   54779             : static bool
   54780           0 : set_WebkitPerspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54781             : {
   54782           0 :   binding_detail::FakeString arg0;
   54783           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54784           0 :     return false;
   54785             :   }
   54786           0 :   binding_detail::FastErrorResult rv;
   54787           0 :   self->SetWebkitPerspective(NonNullHelper(Constify(arg0)), rv);
   54788           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54789           0 :     return false;
   54790             :   }
   54791           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54792             : 
   54793           0 :   return true;
   54794             : }
   54795             : 
   54796             : static const JSJitInfo WebkitPerspective_getterinfo = {
   54797             :   { (JSJitGetterOp)get_WebkitPerspective },
   54798             :   { prototypes::id::CSS2Properties },
   54799             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54800             :   JSJitInfo::Getter,
   54801             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54802             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54803             :   false,  /* isInfallible. False in setters. */
   54804             :   false,  /* isMovable.  Not relevant for setters. */
   54805             :   false, /* isEliminatable.  Not relevant for setters. */
   54806             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54807             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54808             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54809             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54810             : };
   54811             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54812             : static_assert(0 < 1, "There is no slot for us");
   54813             : static const JSJitInfo WebkitPerspective_setterinfo = {
   54814             :   { (JSJitGetterOp)set_WebkitPerspective },
   54815             :   { prototypes::id::CSS2Properties },
   54816             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54817             :   JSJitInfo::Setter,
   54818             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54819             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54820             :   false,  /* isInfallible. False in setters. */
   54821             :   false,  /* isMovable.  Not relevant for setters. */
   54822             :   false, /* isEliminatable.  Not relevant for setters. */
   54823             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54824             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54825             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54826             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54827             : };
   54828             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54829             : static_assert(0 < 1, "There is no slot for us");
   54830             : 
   54831             : static bool
   54832           0 : get_webkitPerspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54833             : {
   54834           0 :   binding_detail::FastErrorResult rv;
   54835           0 :   DOMString result;
   54836           0 :   self->GetWebkitPerspective(result, rv);
   54837           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54838           0 :     return false;
   54839             :   }
   54840           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54841           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54842           0 :     return false;
   54843             :   }
   54844           0 :   return true;
   54845             : }
   54846             : 
   54847             : static bool
   54848           0 : set_webkitPerspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54849             : {
   54850           0 :   binding_detail::FakeString arg0;
   54851           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54852           0 :     return false;
   54853             :   }
   54854           0 :   binding_detail::FastErrorResult rv;
   54855           0 :   self->SetWebkitPerspective(NonNullHelper(Constify(arg0)), rv);
   54856           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54857           0 :     return false;
   54858             :   }
   54859           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54860             : 
   54861           0 :   return true;
   54862             : }
   54863             : 
   54864             : static const JSJitInfo webkitPerspective_getterinfo = {
   54865             :   { (JSJitGetterOp)get_webkitPerspective },
   54866             :   { prototypes::id::CSS2Properties },
   54867             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54868             :   JSJitInfo::Getter,
   54869             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54870             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54871             :   false,  /* isInfallible. False in setters. */
   54872             :   false,  /* isMovable.  Not relevant for setters. */
   54873             :   false, /* isEliminatable.  Not relevant for setters. */
   54874             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54875             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54876             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54877             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54878             : };
   54879             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54880             : static_assert(0 < 1, "There is no slot for us");
   54881             : static const JSJitInfo webkitPerspective_setterinfo = {
   54882             :   { (JSJitGetterOp)set_webkitPerspective },
   54883             :   { prototypes::id::CSS2Properties },
   54884             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54885             :   JSJitInfo::Setter,
   54886             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54887             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54888             :   false,  /* isInfallible. False in setters. */
   54889             :   false,  /* isMovable.  Not relevant for setters. */
   54890             :   false, /* isEliminatable.  Not relevant for setters. */
   54891             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54892             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54893             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54894             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54895             : };
   54896             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54897             : static_assert(0 < 1, "There is no slot for us");
   54898             : 
   54899             : static bool
   54900           0 : get__webkit_perspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54901             : {
   54902           0 :   binding_detail::FastErrorResult rv;
   54903           0 :   DOMString result;
   54904           0 :   self->GetWebkitPerspective(result, rv);
   54905           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54906           0 :     return false;
   54907             :   }
   54908           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54909           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54910           0 :     return false;
   54911             :   }
   54912           0 :   return true;
   54913             : }
   54914             : 
   54915             : static bool
   54916           0 : set__webkit_perspective(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54917             : {
   54918           0 :   binding_detail::FakeString arg0;
   54919           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54920           0 :     return false;
   54921             :   }
   54922           0 :   binding_detail::FastErrorResult rv;
   54923           0 :   self->SetWebkitPerspective(NonNullHelper(Constify(arg0)), rv);
   54924           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54925           0 :     return false;
   54926             :   }
   54927           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54928             : 
   54929           0 :   return true;
   54930             : }
   54931             : 
   54932             : static const JSJitInfo _webkit_perspective_getterinfo = {
   54933             :   { (JSJitGetterOp)get__webkit_perspective },
   54934             :   { prototypes::id::CSS2Properties },
   54935             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54936             :   JSJitInfo::Getter,
   54937             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54938             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   54939             :   false,  /* isInfallible. False in setters. */
   54940             :   false,  /* isMovable.  Not relevant for setters. */
   54941             :   false, /* isEliminatable.  Not relevant for setters. */
   54942             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54943             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54944             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54945             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54946             : };
   54947             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54948             : static_assert(0 < 1, "There is no slot for us");
   54949             : static const JSJitInfo _webkit_perspective_setterinfo = {
   54950             :   { (JSJitGetterOp)set__webkit_perspective },
   54951             :   { prototypes::id::CSS2Properties },
   54952             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   54953             :   JSJitInfo::Setter,
   54954             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   54955             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   54956             :   false,  /* isInfallible. False in setters. */
   54957             :   false,  /* isMovable.  Not relevant for setters. */
   54958             :   false, /* isEliminatable.  Not relevant for setters. */
   54959             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   54960             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   54961             :   false,  /* isTypedMethod.  Only relevant for methods. */
   54962             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   54963             : };
   54964             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   54965             : static_assert(0 < 1, "There is no slot for us");
   54966             : 
   54967             : static bool
   54968           0 : get_WebkitPerspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   54969             : {
   54970           0 :   binding_detail::FastErrorResult rv;
   54971           0 :   DOMString result;
   54972           0 :   self->GetWebkitPerspectiveOrigin(result, rv);
   54973           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54974           0 :     return false;
   54975             :   }
   54976           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54977           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   54978           0 :     return false;
   54979             :   }
   54980           0 :   return true;
   54981             : }
   54982             : 
   54983             : static bool
   54984           0 : set_WebkitPerspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   54985             : {
   54986           0 :   binding_detail::FakeString arg0;
   54987           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   54988           0 :     return false;
   54989             :   }
   54990           0 :   binding_detail::FastErrorResult rv;
   54991           0 :   self->SetWebkitPerspectiveOrigin(NonNullHelper(Constify(arg0)), rv);
   54992           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   54993           0 :     return false;
   54994             :   }
   54995           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   54996             : 
   54997           0 :   return true;
   54998             : }
   54999             : 
   55000             : static const JSJitInfo WebkitPerspectiveOrigin_getterinfo = {
   55001             :   { (JSJitGetterOp)get_WebkitPerspectiveOrigin },
   55002             :   { prototypes::id::CSS2Properties },
   55003             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55004             :   JSJitInfo::Getter,
   55005             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55006             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55007             :   false,  /* isInfallible. False in setters. */
   55008             :   false,  /* isMovable.  Not relevant for setters. */
   55009             :   false, /* isEliminatable.  Not relevant for setters. */
   55010             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55011             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55012             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55013             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55014             : };
   55015             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55016             : static_assert(0 < 1, "There is no slot for us");
   55017             : static const JSJitInfo WebkitPerspectiveOrigin_setterinfo = {
   55018             :   { (JSJitGetterOp)set_WebkitPerspectiveOrigin },
   55019             :   { prototypes::id::CSS2Properties },
   55020             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55021             :   JSJitInfo::Setter,
   55022             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55023             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55024             :   false,  /* isInfallible. False in setters. */
   55025             :   false,  /* isMovable.  Not relevant for setters. */
   55026             :   false, /* isEliminatable.  Not relevant for setters. */
   55027             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55028             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55029             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55030             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55031             : };
   55032             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55033             : static_assert(0 < 1, "There is no slot for us");
   55034             : 
   55035             : static bool
   55036           0 : get_webkitPerspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55037             : {
   55038           0 :   binding_detail::FastErrorResult rv;
   55039           0 :   DOMString result;
   55040           0 :   self->GetWebkitPerspectiveOrigin(result, rv);
   55041           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55042           0 :     return false;
   55043             :   }
   55044           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55045           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55046           0 :     return false;
   55047             :   }
   55048           0 :   return true;
   55049             : }
   55050             : 
   55051             : static bool
   55052           0 : set_webkitPerspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55053             : {
   55054           0 :   binding_detail::FakeString arg0;
   55055           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55056           0 :     return false;
   55057             :   }
   55058           0 :   binding_detail::FastErrorResult rv;
   55059           0 :   self->SetWebkitPerspectiveOrigin(NonNullHelper(Constify(arg0)), rv);
   55060           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55061           0 :     return false;
   55062             :   }
   55063           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55064             : 
   55065           0 :   return true;
   55066             : }
   55067             : 
   55068             : static const JSJitInfo webkitPerspectiveOrigin_getterinfo = {
   55069             :   { (JSJitGetterOp)get_webkitPerspectiveOrigin },
   55070             :   { prototypes::id::CSS2Properties },
   55071             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55072             :   JSJitInfo::Getter,
   55073             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55074             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55075             :   false,  /* isInfallible. False in setters. */
   55076             :   false,  /* isMovable.  Not relevant for setters. */
   55077             :   false, /* isEliminatable.  Not relevant for setters. */
   55078             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55079             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55080             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55081             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55082             : };
   55083             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55084             : static_assert(0 < 1, "There is no slot for us");
   55085             : static const JSJitInfo webkitPerspectiveOrigin_setterinfo = {
   55086             :   { (JSJitGetterOp)set_webkitPerspectiveOrigin },
   55087             :   { prototypes::id::CSS2Properties },
   55088             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55089             :   JSJitInfo::Setter,
   55090             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55091             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55092             :   false,  /* isInfallible. False in setters. */
   55093             :   false,  /* isMovable.  Not relevant for setters. */
   55094             :   false, /* isEliminatable.  Not relevant for setters. */
   55095             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55096             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55097             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55098             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55099             : };
   55100             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55101             : static_assert(0 < 1, "There is no slot for us");
   55102             : 
   55103             : static bool
   55104           0 : get__webkit_perspective_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55105             : {
   55106           0 :   binding_detail::FastErrorResult rv;
   55107           0 :   DOMString result;
   55108           0 :   self->GetWebkitPerspectiveOrigin(result, rv);
   55109           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55110           0 :     return false;
   55111             :   }
   55112           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55113           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55114           0 :     return false;
   55115             :   }
   55116           0 :   return true;
   55117             : }
   55118             : 
   55119             : static bool
   55120           0 : set__webkit_perspective_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55121             : {
   55122           0 :   binding_detail::FakeString arg0;
   55123           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55124           0 :     return false;
   55125             :   }
   55126           0 :   binding_detail::FastErrorResult rv;
   55127           0 :   self->SetWebkitPerspectiveOrigin(NonNullHelper(Constify(arg0)), rv);
   55128           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55129           0 :     return false;
   55130             :   }
   55131           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55132             : 
   55133           0 :   return true;
   55134             : }
   55135             : 
   55136             : static const JSJitInfo _webkit_perspective_origin_getterinfo = {
   55137             :   { (JSJitGetterOp)get__webkit_perspective_origin },
   55138             :   { prototypes::id::CSS2Properties },
   55139             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55140             :   JSJitInfo::Getter,
   55141             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55142             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55143             :   false,  /* isInfallible. False in setters. */
   55144             :   false,  /* isMovable.  Not relevant for setters. */
   55145             :   false, /* isEliminatable.  Not relevant for setters. */
   55146             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55147             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55148             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55149             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55150             : };
   55151             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55152             : static_assert(0 < 1, "There is no slot for us");
   55153             : static const JSJitInfo _webkit_perspective_origin_setterinfo = {
   55154             :   { (JSJitGetterOp)set__webkit_perspective_origin },
   55155             :   { prototypes::id::CSS2Properties },
   55156             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55157             :   JSJitInfo::Setter,
   55158             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55159             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55160             :   false,  /* isInfallible. False in setters. */
   55161             :   false,  /* isMovable.  Not relevant for setters. */
   55162             :   false, /* isEliminatable.  Not relevant for setters. */
   55163             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55164             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55165             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55166             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55167             : };
   55168             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55169             : static_assert(0 < 1, "There is no slot for us");
   55170             : 
   55171             : static bool
   55172           0 : get_WebkitTransition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55173             : {
   55174           0 :   binding_detail::FastErrorResult rv;
   55175           0 :   DOMString result;
   55176           0 :   self->GetWebkitTransition(result, rv);
   55177           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55178           0 :     return false;
   55179             :   }
   55180           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55181           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55182           0 :     return false;
   55183             :   }
   55184           0 :   return true;
   55185             : }
   55186             : 
   55187             : static bool
   55188           0 : set_WebkitTransition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55189             : {
   55190           0 :   binding_detail::FakeString arg0;
   55191           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55192           0 :     return false;
   55193             :   }
   55194           0 :   binding_detail::FastErrorResult rv;
   55195           0 :   self->SetWebkitTransition(NonNullHelper(Constify(arg0)), rv);
   55196           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55197           0 :     return false;
   55198             :   }
   55199           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55200             : 
   55201           0 :   return true;
   55202             : }
   55203             : 
   55204             : static const JSJitInfo WebkitTransition_getterinfo = {
   55205             :   { (JSJitGetterOp)get_WebkitTransition },
   55206             :   { prototypes::id::CSS2Properties },
   55207             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55208             :   JSJitInfo::Getter,
   55209             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55210             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55211             :   false,  /* isInfallible. False in setters. */
   55212             :   false,  /* isMovable.  Not relevant for setters. */
   55213             :   false, /* isEliminatable.  Not relevant for setters. */
   55214             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55215             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55216             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55217             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55218             : };
   55219             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55220             : static_assert(0 < 1, "There is no slot for us");
   55221             : static const JSJitInfo WebkitTransition_setterinfo = {
   55222             :   { (JSJitGetterOp)set_WebkitTransition },
   55223             :   { prototypes::id::CSS2Properties },
   55224             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55225             :   JSJitInfo::Setter,
   55226             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55227             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55228             :   false,  /* isInfallible. False in setters. */
   55229             :   false,  /* isMovable.  Not relevant for setters. */
   55230             :   false, /* isEliminatable.  Not relevant for setters. */
   55231             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55232             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55233             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55234             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55235             : };
   55236             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55237             : static_assert(0 < 1, "There is no slot for us");
   55238             : 
   55239             : static bool
   55240           0 : get_webkitTransition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55241             : {
   55242           0 :   binding_detail::FastErrorResult rv;
   55243           0 :   DOMString result;
   55244           0 :   self->GetWebkitTransition(result, rv);
   55245           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55246           0 :     return false;
   55247             :   }
   55248           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55249           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55250           0 :     return false;
   55251             :   }
   55252           0 :   return true;
   55253             : }
   55254             : 
   55255             : static bool
   55256           0 : set_webkitTransition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55257             : {
   55258           0 :   binding_detail::FakeString arg0;
   55259           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55260           0 :     return false;
   55261             :   }
   55262           0 :   binding_detail::FastErrorResult rv;
   55263           0 :   self->SetWebkitTransition(NonNullHelper(Constify(arg0)), rv);
   55264           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55265           0 :     return false;
   55266             :   }
   55267           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55268             : 
   55269           0 :   return true;
   55270             : }
   55271             : 
   55272             : static const JSJitInfo webkitTransition_getterinfo = {
   55273             :   { (JSJitGetterOp)get_webkitTransition },
   55274             :   { prototypes::id::CSS2Properties },
   55275             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55276             :   JSJitInfo::Getter,
   55277             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55278             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55279             :   false,  /* isInfallible. False in setters. */
   55280             :   false,  /* isMovable.  Not relevant for setters. */
   55281             :   false, /* isEliminatable.  Not relevant for setters. */
   55282             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55283             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55284             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55285             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55286             : };
   55287             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55288             : static_assert(0 < 1, "There is no slot for us");
   55289             : static const JSJitInfo webkitTransition_setterinfo = {
   55290             :   { (JSJitGetterOp)set_webkitTransition },
   55291             :   { prototypes::id::CSS2Properties },
   55292             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55293             :   JSJitInfo::Setter,
   55294             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55295             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55296             :   false,  /* isInfallible. False in setters. */
   55297             :   false,  /* isMovable.  Not relevant for setters. */
   55298             :   false, /* isEliminatable.  Not relevant for setters. */
   55299             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55300             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55301             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55302             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55303             : };
   55304             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55305             : static_assert(0 < 1, "There is no slot for us");
   55306             : 
   55307             : static bool
   55308           0 : get__webkit_transition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55309             : {
   55310           0 :   binding_detail::FastErrorResult rv;
   55311           0 :   DOMString result;
   55312           0 :   self->GetWebkitTransition(result, rv);
   55313           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55314           0 :     return false;
   55315             :   }
   55316           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55317           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55318           0 :     return false;
   55319             :   }
   55320           0 :   return true;
   55321             : }
   55322             : 
   55323             : static bool
   55324           0 : set__webkit_transition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55325             : {
   55326           0 :   binding_detail::FakeString arg0;
   55327           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55328           0 :     return false;
   55329             :   }
   55330           0 :   binding_detail::FastErrorResult rv;
   55331           0 :   self->SetWebkitTransition(NonNullHelper(Constify(arg0)), rv);
   55332           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55333           0 :     return false;
   55334             :   }
   55335           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55336             : 
   55337           0 :   return true;
   55338             : }
   55339             : 
   55340             : static const JSJitInfo _webkit_transition_getterinfo = {
   55341             :   { (JSJitGetterOp)get__webkit_transition },
   55342             :   { prototypes::id::CSS2Properties },
   55343             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55344             :   JSJitInfo::Getter,
   55345             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55346             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55347             :   false,  /* isInfallible. False in setters. */
   55348             :   false,  /* isMovable.  Not relevant for setters. */
   55349             :   false, /* isEliminatable.  Not relevant for setters. */
   55350             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55351             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55352             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55353             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55354             : };
   55355             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55356             : static_assert(0 < 1, "There is no slot for us");
   55357             : static const JSJitInfo _webkit_transition_setterinfo = {
   55358             :   { (JSJitGetterOp)set__webkit_transition },
   55359             :   { prototypes::id::CSS2Properties },
   55360             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55361             :   JSJitInfo::Setter,
   55362             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55363             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55364             :   false,  /* isInfallible. False in setters. */
   55365             :   false,  /* isMovable.  Not relevant for setters. */
   55366             :   false, /* isEliminatable.  Not relevant for setters. */
   55367             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55368             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55369             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55370             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55371             : };
   55372             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55373             : static_assert(0 < 1, "There is no slot for us");
   55374             : 
   55375             : static bool
   55376           0 : get_WebkitTransitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55377             : {
   55378           0 :   binding_detail::FastErrorResult rv;
   55379           0 :   DOMString result;
   55380           0 :   self->GetWebkitTransitionDelay(result, rv);
   55381           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55382           0 :     return false;
   55383             :   }
   55384           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55385           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55386           0 :     return false;
   55387             :   }
   55388           0 :   return true;
   55389             : }
   55390             : 
   55391             : static bool
   55392           0 : set_WebkitTransitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55393             : {
   55394           0 :   binding_detail::FakeString arg0;
   55395           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55396           0 :     return false;
   55397             :   }
   55398           0 :   binding_detail::FastErrorResult rv;
   55399           0 :   self->SetWebkitTransitionDelay(NonNullHelper(Constify(arg0)), rv);
   55400           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55401           0 :     return false;
   55402             :   }
   55403           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55404             : 
   55405           0 :   return true;
   55406             : }
   55407             : 
   55408             : static const JSJitInfo WebkitTransitionDelay_getterinfo = {
   55409             :   { (JSJitGetterOp)get_WebkitTransitionDelay },
   55410             :   { prototypes::id::CSS2Properties },
   55411             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55412             :   JSJitInfo::Getter,
   55413             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55414             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55415             :   false,  /* isInfallible. False in setters. */
   55416             :   false,  /* isMovable.  Not relevant for setters. */
   55417             :   false, /* isEliminatable.  Not relevant for setters. */
   55418             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55419             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55420             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55421             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55422             : };
   55423             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55424             : static_assert(0 < 1, "There is no slot for us");
   55425             : static const JSJitInfo WebkitTransitionDelay_setterinfo = {
   55426             :   { (JSJitGetterOp)set_WebkitTransitionDelay },
   55427             :   { prototypes::id::CSS2Properties },
   55428             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55429             :   JSJitInfo::Setter,
   55430             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55431             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55432             :   false,  /* isInfallible. False in setters. */
   55433             :   false,  /* isMovable.  Not relevant for setters. */
   55434             :   false, /* isEliminatable.  Not relevant for setters. */
   55435             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55436             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55437             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55438             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55439             : };
   55440             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55441             : static_assert(0 < 1, "There is no slot for us");
   55442             : 
   55443             : static bool
   55444           0 : get_webkitTransitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55445             : {
   55446           0 :   binding_detail::FastErrorResult rv;
   55447           0 :   DOMString result;
   55448           0 :   self->GetWebkitTransitionDelay(result, rv);
   55449           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55450           0 :     return false;
   55451             :   }
   55452           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55453           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55454           0 :     return false;
   55455             :   }
   55456           0 :   return true;
   55457             : }
   55458             : 
   55459             : static bool
   55460           0 : set_webkitTransitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55461             : {
   55462           0 :   binding_detail::FakeString arg0;
   55463           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55464           0 :     return false;
   55465             :   }
   55466           0 :   binding_detail::FastErrorResult rv;
   55467           0 :   self->SetWebkitTransitionDelay(NonNullHelper(Constify(arg0)), rv);
   55468           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55469           0 :     return false;
   55470             :   }
   55471           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55472             : 
   55473           0 :   return true;
   55474             : }
   55475             : 
   55476             : static const JSJitInfo webkitTransitionDelay_getterinfo = {
   55477             :   { (JSJitGetterOp)get_webkitTransitionDelay },
   55478             :   { prototypes::id::CSS2Properties },
   55479             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55480             :   JSJitInfo::Getter,
   55481             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55482             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55483             :   false,  /* isInfallible. False in setters. */
   55484             :   false,  /* isMovable.  Not relevant for setters. */
   55485             :   false, /* isEliminatable.  Not relevant for setters. */
   55486             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55487             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55488             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55489             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55490             : };
   55491             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55492             : static_assert(0 < 1, "There is no slot for us");
   55493             : static const JSJitInfo webkitTransitionDelay_setterinfo = {
   55494             :   { (JSJitGetterOp)set_webkitTransitionDelay },
   55495             :   { prototypes::id::CSS2Properties },
   55496             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55497             :   JSJitInfo::Setter,
   55498             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55499             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55500             :   false,  /* isInfallible. False in setters. */
   55501             :   false,  /* isMovable.  Not relevant for setters. */
   55502             :   false, /* isEliminatable.  Not relevant for setters. */
   55503             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55504             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55505             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55506             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55507             : };
   55508             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55509             : static_assert(0 < 1, "There is no slot for us");
   55510             : 
   55511             : static bool
   55512           0 : get__webkit_transition_delay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55513             : {
   55514           0 :   binding_detail::FastErrorResult rv;
   55515           0 :   DOMString result;
   55516           0 :   self->GetWebkitTransitionDelay(result, rv);
   55517           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55518           0 :     return false;
   55519             :   }
   55520           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55521           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55522           0 :     return false;
   55523             :   }
   55524           0 :   return true;
   55525             : }
   55526             : 
   55527             : static bool
   55528           0 : set__webkit_transition_delay(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55529             : {
   55530           0 :   binding_detail::FakeString arg0;
   55531           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55532           0 :     return false;
   55533             :   }
   55534           0 :   binding_detail::FastErrorResult rv;
   55535           0 :   self->SetWebkitTransitionDelay(NonNullHelper(Constify(arg0)), rv);
   55536           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55537           0 :     return false;
   55538             :   }
   55539           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55540             : 
   55541           0 :   return true;
   55542             : }
   55543             : 
   55544             : static const JSJitInfo _webkit_transition_delay_getterinfo = {
   55545             :   { (JSJitGetterOp)get__webkit_transition_delay },
   55546             :   { prototypes::id::CSS2Properties },
   55547             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55548             :   JSJitInfo::Getter,
   55549             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55550             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55551             :   false,  /* isInfallible. False in setters. */
   55552             :   false,  /* isMovable.  Not relevant for setters. */
   55553             :   false, /* isEliminatable.  Not relevant for setters. */
   55554             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55555             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55556             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55557             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55558             : };
   55559             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55560             : static_assert(0 < 1, "There is no slot for us");
   55561             : static const JSJitInfo _webkit_transition_delay_setterinfo = {
   55562             :   { (JSJitGetterOp)set__webkit_transition_delay },
   55563             :   { prototypes::id::CSS2Properties },
   55564             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55565             :   JSJitInfo::Setter,
   55566             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55567             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55568             :   false,  /* isInfallible. False in setters. */
   55569             :   false,  /* isMovable.  Not relevant for setters. */
   55570             :   false, /* isEliminatable.  Not relevant for setters. */
   55571             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55572             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55573             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55574             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55575             : };
   55576             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55577             : static_assert(0 < 1, "There is no slot for us");
   55578             : 
   55579             : static bool
   55580           0 : get_WebkitTransitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55581             : {
   55582           0 :   binding_detail::FastErrorResult rv;
   55583           0 :   DOMString result;
   55584           0 :   self->GetWebkitTransitionDuration(result, rv);
   55585           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55586           0 :     return false;
   55587             :   }
   55588           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55589           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55590           0 :     return false;
   55591             :   }
   55592           0 :   return true;
   55593             : }
   55594             : 
   55595             : static bool
   55596           0 : set_WebkitTransitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55597             : {
   55598           0 :   binding_detail::FakeString arg0;
   55599           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55600           0 :     return false;
   55601             :   }
   55602           0 :   binding_detail::FastErrorResult rv;
   55603           0 :   self->SetWebkitTransitionDuration(NonNullHelper(Constify(arg0)), rv);
   55604           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55605           0 :     return false;
   55606             :   }
   55607           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55608             : 
   55609           0 :   return true;
   55610             : }
   55611             : 
   55612             : static const JSJitInfo WebkitTransitionDuration_getterinfo = {
   55613             :   { (JSJitGetterOp)get_WebkitTransitionDuration },
   55614             :   { prototypes::id::CSS2Properties },
   55615             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55616             :   JSJitInfo::Getter,
   55617             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55618             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55619             :   false,  /* isInfallible. False in setters. */
   55620             :   false,  /* isMovable.  Not relevant for setters. */
   55621             :   false, /* isEliminatable.  Not relevant for setters. */
   55622             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55623             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55624             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55625             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55626             : };
   55627             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55628             : static_assert(0 < 1, "There is no slot for us");
   55629             : static const JSJitInfo WebkitTransitionDuration_setterinfo = {
   55630             :   { (JSJitGetterOp)set_WebkitTransitionDuration },
   55631             :   { prototypes::id::CSS2Properties },
   55632             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55633             :   JSJitInfo::Setter,
   55634             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55635             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55636             :   false,  /* isInfallible. False in setters. */
   55637             :   false,  /* isMovable.  Not relevant for setters. */
   55638             :   false, /* isEliminatable.  Not relevant for setters. */
   55639             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55640             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55641             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55642             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55643             : };
   55644             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55645             : static_assert(0 < 1, "There is no slot for us");
   55646             : 
   55647             : static bool
   55648           0 : get_webkitTransitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55649             : {
   55650           0 :   binding_detail::FastErrorResult rv;
   55651           0 :   DOMString result;
   55652           0 :   self->GetWebkitTransitionDuration(result, rv);
   55653           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55654           0 :     return false;
   55655             :   }
   55656           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55657           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55658           0 :     return false;
   55659             :   }
   55660           0 :   return true;
   55661             : }
   55662             : 
   55663             : static bool
   55664           0 : set_webkitTransitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55665             : {
   55666           0 :   binding_detail::FakeString arg0;
   55667           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55668           0 :     return false;
   55669             :   }
   55670           0 :   binding_detail::FastErrorResult rv;
   55671           0 :   self->SetWebkitTransitionDuration(NonNullHelper(Constify(arg0)), rv);
   55672           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55673           0 :     return false;
   55674             :   }
   55675           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55676             : 
   55677           0 :   return true;
   55678             : }
   55679             : 
   55680             : static const JSJitInfo webkitTransitionDuration_getterinfo = {
   55681             :   { (JSJitGetterOp)get_webkitTransitionDuration },
   55682             :   { prototypes::id::CSS2Properties },
   55683             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55684             :   JSJitInfo::Getter,
   55685             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55686             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55687             :   false,  /* isInfallible. False in setters. */
   55688             :   false,  /* isMovable.  Not relevant for setters. */
   55689             :   false, /* isEliminatable.  Not relevant for setters. */
   55690             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55691             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55692             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55693             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55694             : };
   55695             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55696             : static_assert(0 < 1, "There is no slot for us");
   55697             : static const JSJitInfo webkitTransitionDuration_setterinfo = {
   55698             :   { (JSJitGetterOp)set_webkitTransitionDuration },
   55699             :   { prototypes::id::CSS2Properties },
   55700             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55701             :   JSJitInfo::Setter,
   55702             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55703             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55704             :   false,  /* isInfallible. False in setters. */
   55705             :   false,  /* isMovable.  Not relevant for setters. */
   55706             :   false, /* isEliminatable.  Not relevant for setters. */
   55707             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55708             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55709             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55710             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55711             : };
   55712             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55713             : static_assert(0 < 1, "There is no slot for us");
   55714             : 
   55715             : static bool
   55716           0 : get__webkit_transition_duration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55717             : {
   55718           0 :   binding_detail::FastErrorResult rv;
   55719           0 :   DOMString result;
   55720           0 :   self->GetWebkitTransitionDuration(result, rv);
   55721           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55722           0 :     return false;
   55723             :   }
   55724           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55725           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55726           0 :     return false;
   55727             :   }
   55728           0 :   return true;
   55729             : }
   55730             : 
   55731             : static bool
   55732           0 : set__webkit_transition_duration(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55733             : {
   55734           0 :   binding_detail::FakeString arg0;
   55735           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55736           0 :     return false;
   55737             :   }
   55738           0 :   binding_detail::FastErrorResult rv;
   55739           0 :   self->SetWebkitTransitionDuration(NonNullHelper(Constify(arg0)), rv);
   55740           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55741           0 :     return false;
   55742             :   }
   55743           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55744             : 
   55745           0 :   return true;
   55746             : }
   55747             : 
   55748             : static const JSJitInfo _webkit_transition_duration_getterinfo = {
   55749             :   { (JSJitGetterOp)get__webkit_transition_duration },
   55750             :   { prototypes::id::CSS2Properties },
   55751             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55752             :   JSJitInfo::Getter,
   55753             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55754             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55755             :   false,  /* isInfallible. False in setters. */
   55756             :   false,  /* isMovable.  Not relevant for setters. */
   55757             :   false, /* isEliminatable.  Not relevant for setters. */
   55758             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55759             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55760             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55761             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55762             : };
   55763             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55764             : static_assert(0 < 1, "There is no slot for us");
   55765             : static const JSJitInfo _webkit_transition_duration_setterinfo = {
   55766             :   { (JSJitGetterOp)set__webkit_transition_duration },
   55767             :   { prototypes::id::CSS2Properties },
   55768             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55769             :   JSJitInfo::Setter,
   55770             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55771             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55772             :   false,  /* isInfallible. False in setters. */
   55773             :   false,  /* isMovable.  Not relevant for setters. */
   55774             :   false, /* isEliminatable.  Not relevant for setters. */
   55775             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55776             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55777             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55778             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55779             : };
   55780             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55781             : static_assert(0 < 1, "There is no slot for us");
   55782             : 
   55783             : static bool
   55784           0 : get_WebkitTransitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55785             : {
   55786           0 :   binding_detail::FastErrorResult rv;
   55787           0 :   DOMString result;
   55788           0 :   self->GetWebkitTransitionProperty(result, rv);
   55789           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55790           0 :     return false;
   55791             :   }
   55792           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55793           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55794           0 :     return false;
   55795             :   }
   55796           0 :   return true;
   55797             : }
   55798             : 
   55799             : static bool
   55800           0 : set_WebkitTransitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55801             : {
   55802           0 :   binding_detail::FakeString arg0;
   55803           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55804           0 :     return false;
   55805             :   }
   55806           0 :   binding_detail::FastErrorResult rv;
   55807           0 :   self->SetWebkitTransitionProperty(NonNullHelper(Constify(arg0)), rv);
   55808           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55809           0 :     return false;
   55810             :   }
   55811           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55812             : 
   55813           0 :   return true;
   55814             : }
   55815             : 
   55816             : static const JSJitInfo WebkitTransitionProperty_getterinfo = {
   55817             :   { (JSJitGetterOp)get_WebkitTransitionProperty },
   55818             :   { prototypes::id::CSS2Properties },
   55819             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55820             :   JSJitInfo::Getter,
   55821             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55822             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55823             :   false,  /* isInfallible. False in setters. */
   55824             :   false,  /* isMovable.  Not relevant for setters. */
   55825             :   false, /* isEliminatable.  Not relevant for setters. */
   55826             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55827             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55828             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55829             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55830             : };
   55831             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55832             : static_assert(0 < 1, "There is no slot for us");
   55833             : static const JSJitInfo WebkitTransitionProperty_setterinfo = {
   55834             :   { (JSJitGetterOp)set_WebkitTransitionProperty },
   55835             :   { prototypes::id::CSS2Properties },
   55836             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55837             :   JSJitInfo::Setter,
   55838             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55839             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55840             :   false,  /* isInfallible. False in setters. */
   55841             :   false,  /* isMovable.  Not relevant for setters. */
   55842             :   false, /* isEliminatable.  Not relevant for setters. */
   55843             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55844             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55845             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55846             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55847             : };
   55848             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55849             : static_assert(0 < 1, "There is no slot for us");
   55850             : 
   55851             : static bool
   55852           0 : get_webkitTransitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55853             : {
   55854           0 :   binding_detail::FastErrorResult rv;
   55855           0 :   DOMString result;
   55856           0 :   self->GetWebkitTransitionProperty(result, rv);
   55857           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55858           0 :     return false;
   55859             :   }
   55860           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55861           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55862           0 :     return false;
   55863             :   }
   55864           0 :   return true;
   55865             : }
   55866             : 
   55867             : static bool
   55868           0 : set_webkitTransitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55869             : {
   55870           0 :   binding_detail::FakeString arg0;
   55871           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55872           0 :     return false;
   55873             :   }
   55874           0 :   binding_detail::FastErrorResult rv;
   55875           0 :   self->SetWebkitTransitionProperty(NonNullHelper(Constify(arg0)), rv);
   55876           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55877           0 :     return false;
   55878             :   }
   55879           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55880             : 
   55881           0 :   return true;
   55882             : }
   55883             : 
   55884             : static const JSJitInfo webkitTransitionProperty_getterinfo = {
   55885             :   { (JSJitGetterOp)get_webkitTransitionProperty },
   55886             :   { prototypes::id::CSS2Properties },
   55887             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55888             :   JSJitInfo::Getter,
   55889             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55890             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55891             :   false,  /* isInfallible. False in setters. */
   55892             :   false,  /* isMovable.  Not relevant for setters. */
   55893             :   false, /* isEliminatable.  Not relevant for setters. */
   55894             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55895             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55896             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55897             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55898             : };
   55899             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55900             : static_assert(0 < 1, "There is no slot for us");
   55901             : static const JSJitInfo webkitTransitionProperty_setterinfo = {
   55902             :   { (JSJitGetterOp)set_webkitTransitionProperty },
   55903             :   { prototypes::id::CSS2Properties },
   55904             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55905             :   JSJitInfo::Setter,
   55906             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55907             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55908             :   false,  /* isInfallible. False in setters. */
   55909             :   false,  /* isMovable.  Not relevant for setters. */
   55910             :   false, /* isEliminatable.  Not relevant for setters. */
   55911             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55912             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55913             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55914             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55915             : };
   55916             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55917             : static_assert(0 < 1, "There is no slot for us");
   55918             : 
   55919             : static bool
   55920           0 : get__webkit_transition_property(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55921             : {
   55922           0 :   binding_detail::FastErrorResult rv;
   55923           0 :   DOMString result;
   55924           0 :   self->GetWebkitTransitionProperty(result, rv);
   55925           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55926           0 :     return false;
   55927             :   }
   55928           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55929           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55930           0 :     return false;
   55931             :   }
   55932           0 :   return true;
   55933             : }
   55934             : 
   55935             : static bool
   55936           0 : set__webkit_transition_property(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   55937             : {
   55938           0 :   binding_detail::FakeString arg0;
   55939           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   55940           0 :     return false;
   55941             :   }
   55942           0 :   binding_detail::FastErrorResult rv;
   55943           0 :   self->SetWebkitTransitionProperty(NonNullHelper(Constify(arg0)), rv);
   55944           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55945           0 :     return false;
   55946             :   }
   55947           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55948             : 
   55949           0 :   return true;
   55950             : }
   55951             : 
   55952             : static const JSJitInfo _webkit_transition_property_getterinfo = {
   55953             :   { (JSJitGetterOp)get__webkit_transition_property },
   55954             :   { prototypes::id::CSS2Properties },
   55955             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55956             :   JSJitInfo::Getter,
   55957             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55958             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   55959             :   false,  /* isInfallible. False in setters. */
   55960             :   false,  /* isMovable.  Not relevant for setters. */
   55961             :   false, /* isEliminatable.  Not relevant for setters. */
   55962             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55963             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55964             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55965             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55966             : };
   55967             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55968             : static_assert(0 < 1, "There is no slot for us");
   55969             : static const JSJitInfo _webkit_transition_property_setterinfo = {
   55970             :   { (JSJitGetterOp)set__webkit_transition_property },
   55971             :   { prototypes::id::CSS2Properties },
   55972             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   55973             :   JSJitInfo::Setter,
   55974             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   55975             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   55976             :   false,  /* isInfallible. False in setters. */
   55977             :   false,  /* isMovable.  Not relevant for setters. */
   55978             :   false, /* isEliminatable.  Not relevant for setters. */
   55979             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   55980             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   55981             :   false,  /* isTypedMethod.  Only relevant for methods. */
   55982             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   55983             : };
   55984             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   55985             : static_assert(0 < 1, "There is no slot for us");
   55986             : 
   55987             : static bool
   55988           0 : get_WebkitTransitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   55989             : {
   55990           0 :   binding_detail::FastErrorResult rv;
   55991           0 :   DOMString result;
   55992           0 :   self->GetWebkitTransitionTimingFunction(result, rv);
   55993           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   55994           0 :     return false;
   55995             :   }
   55996           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   55997           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   55998           0 :     return false;
   55999             :   }
   56000           0 :   return true;
   56001             : }
   56002             : 
   56003             : static bool
   56004           0 : set_WebkitTransitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56005             : {
   56006           0 :   binding_detail::FakeString arg0;
   56007           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56008           0 :     return false;
   56009             :   }
   56010           0 :   binding_detail::FastErrorResult rv;
   56011           0 :   self->SetWebkitTransitionTimingFunction(NonNullHelper(Constify(arg0)), rv);
   56012           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56013           0 :     return false;
   56014             :   }
   56015           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56016             : 
   56017           0 :   return true;
   56018             : }
   56019             : 
   56020             : static const JSJitInfo WebkitTransitionTimingFunction_getterinfo = {
   56021             :   { (JSJitGetterOp)get_WebkitTransitionTimingFunction },
   56022             :   { prototypes::id::CSS2Properties },
   56023             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56024             :   JSJitInfo::Getter,
   56025             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56026             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56027             :   false,  /* isInfallible. False in setters. */
   56028             :   false,  /* isMovable.  Not relevant for setters. */
   56029             :   false, /* isEliminatable.  Not relevant for setters. */
   56030             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56031             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56032             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56033             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56034             : };
   56035             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56036             : static_assert(0 < 1, "There is no slot for us");
   56037             : static const JSJitInfo WebkitTransitionTimingFunction_setterinfo = {
   56038             :   { (JSJitGetterOp)set_WebkitTransitionTimingFunction },
   56039             :   { prototypes::id::CSS2Properties },
   56040             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56041             :   JSJitInfo::Setter,
   56042             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56043             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56044             :   false,  /* isInfallible. False in setters. */
   56045             :   false,  /* isMovable.  Not relevant for setters. */
   56046             :   false, /* isEliminatable.  Not relevant for setters. */
   56047             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56048             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56049             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56050             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56051             : };
   56052             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56053             : static_assert(0 < 1, "There is no slot for us");
   56054             : 
   56055             : static bool
   56056           0 : get_webkitTransitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56057             : {
   56058           0 :   binding_detail::FastErrorResult rv;
   56059           0 :   DOMString result;
   56060           0 :   self->GetWebkitTransitionTimingFunction(result, rv);
   56061           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56062           0 :     return false;
   56063             :   }
   56064           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56065           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56066           0 :     return false;
   56067             :   }
   56068           0 :   return true;
   56069             : }
   56070             : 
   56071             : static bool
   56072           0 : set_webkitTransitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56073             : {
   56074           0 :   binding_detail::FakeString arg0;
   56075           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56076           0 :     return false;
   56077             :   }
   56078           0 :   binding_detail::FastErrorResult rv;
   56079           0 :   self->SetWebkitTransitionTimingFunction(NonNullHelper(Constify(arg0)), rv);
   56080           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56081           0 :     return false;
   56082             :   }
   56083           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56084             : 
   56085           0 :   return true;
   56086             : }
   56087             : 
   56088             : static const JSJitInfo webkitTransitionTimingFunction_getterinfo = {
   56089             :   { (JSJitGetterOp)get_webkitTransitionTimingFunction },
   56090             :   { prototypes::id::CSS2Properties },
   56091             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56092             :   JSJitInfo::Getter,
   56093             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56094             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56095             :   false,  /* isInfallible. False in setters. */
   56096             :   false,  /* isMovable.  Not relevant for setters. */
   56097             :   false, /* isEliminatable.  Not relevant for setters. */
   56098             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56099             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56100             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56101             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56102             : };
   56103             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56104             : static_assert(0 < 1, "There is no slot for us");
   56105             : static const JSJitInfo webkitTransitionTimingFunction_setterinfo = {
   56106             :   { (JSJitGetterOp)set_webkitTransitionTimingFunction },
   56107             :   { prototypes::id::CSS2Properties },
   56108             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56109             :   JSJitInfo::Setter,
   56110             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56111             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56112             :   false,  /* isInfallible. False in setters. */
   56113             :   false,  /* isMovable.  Not relevant for setters. */
   56114             :   false, /* isEliminatable.  Not relevant for setters. */
   56115             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56116             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56117             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56118             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56119             : };
   56120             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56121             : static_assert(0 < 1, "There is no slot for us");
   56122             : 
   56123             : static bool
   56124           0 : get__webkit_transition_timing_function(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56125             : {
   56126           0 :   binding_detail::FastErrorResult rv;
   56127           0 :   DOMString result;
   56128           0 :   self->GetWebkitTransitionTimingFunction(result, rv);
   56129           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56130           0 :     return false;
   56131             :   }
   56132           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56133           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56134           0 :     return false;
   56135             :   }
   56136           0 :   return true;
   56137             : }
   56138             : 
   56139             : static bool
   56140           0 : set__webkit_transition_timing_function(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56141             : {
   56142           0 :   binding_detail::FakeString arg0;
   56143           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56144           0 :     return false;
   56145             :   }
   56146           0 :   binding_detail::FastErrorResult rv;
   56147           0 :   self->SetWebkitTransitionTimingFunction(NonNullHelper(Constify(arg0)), rv);
   56148           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56149           0 :     return false;
   56150             :   }
   56151           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56152             : 
   56153           0 :   return true;
   56154             : }
   56155             : 
   56156             : static const JSJitInfo _webkit_transition_timing_function_getterinfo = {
   56157             :   { (JSJitGetterOp)get__webkit_transition_timing_function },
   56158             :   { prototypes::id::CSS2Properties },
   56159             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56160             :   JSJitInfo::Getter,
   56161             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56162             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56163             :   false,  /* isInfallible. False in setters. */
   56164             :   false,  /* isMovable.  Not relevant for setters. */
   56165             :   false, /* isEliminatable.  Not relevant for setters. */
   56166             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56167             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56168             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56169             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56170             : };
   56171             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56172             : static_assert(0 < 1, "There is no slot for us");
   56173             : static const JSJitInfo _webkit_transition_timing_function_setterinfo = {
   56174             :   { (JSJitGetterOp)set__webkit_transition_timing_function },
   56175             :   { prototypes::id::CSS2Properties },
   56176             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56177             :   JSJitInfo::Setter,
   56178             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56179             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56180             :   false,  /* isInfallible. False in setters. */
   56181             :   false,  /* isMovable.  Not relevant for setters. */
   56182             :   false, /* isEliminatable.  Not relevant for setters. */
   56183             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56184             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56185             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56186             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56187             : };
   56188             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56189             : static_assert(0 < 1, "There is no slot for us");
   56190             : 
   56191             : static bool
   56192           0 : get_WebkitBorderRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56193             : {
   56194           0 :   binding_detail::FastErrorResult rv;
   56195           0 :   DOMString result;
   56196           0 :   self->GetWebkitBorderRadius(result, rv);
   56197           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56198           0 :     return false;
   56199             :   }
   56200           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56201           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56202           0 :     return false;
   56203             :   }
   56204           0 :   return true;
   56205             : }
   56206             : 
   56207             : static bool
   56208           0 : set_WebkitBorderRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56209             : {
   56210           0 :   binding_detail::FakeString arg0;
   56211           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56212           0 :     return false;
   56213             :   }
   56214           0 :   binding_detail::FastErrorResult rv;
   56215           0 :   self->SetWebkitBorderRadius(NonNullHelper(Constify(arg0)), rv);
   56216           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56217           0 :     return false;
   56218             :   }
   56219           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56220             : 
   56221           0 :   return true;
   56222             : }
   56223             : 
   56224             : static const JSJitInfo WebkitBorderRadius_getterinfo = {
   56225             :   { (JSJitGetterOp)get_WebkitBorderRadius },
   56226             :   { prototypes::id::CSS2Properties },
   56227             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56228             :   JSJitInfo::Getter,
   56229             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56230             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56231             :   false,  /* isInfallible. False in setters. */
   56232             :   false,  /* isMovable.  Not relevant for setters. */
   56233             :   false, /* isEliminatable.  Not relevant for setters. */
   56234             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56235             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56236             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56237             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56238             : };
   56239             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56240             : static_assert(0 < 1, "There is no slot for us");
   56241             : static const JSJitInfo WebkitBorderRadius_setterinfo = {
   56242             :   { (JSJitGetterOp)set_WebkitBorderRadius },
   56243             :   { prototypes::id::CSS2Properties },
   56244             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56245             :   JSJitInfo::Setter,
   56246             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56247             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56248             :   false,  /* isInfallible. False in setters. */
   56249             :   false,  /* isMovable.  Not relevant for setters. */
   56250             :   false, /* isEliminatable.  Not relevant for setters. */
   56251             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56252             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56253             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56254             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56255             : };
   56256             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56257             : static_assert(0 < 1, "There is no slot for us");
   56258             : 
   56259             : static bool
   56260           0 : get_webkitBorderRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56261             : {
   56262           0 :   binding_detail::FastErrorResult rv;
   56263           0 :   DOMString result;
   56264           0 :   self->GetWebkitBorderRadius(result, rv);
   56265           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56266           0 :     return false;
   56267             :   }
   56268           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56269           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56270           0 :     return false;
   56271             :   }
   56272           0 :   return true;
   56273             : }
   56274             : 
   56275             : static bool
   56276           0 : set_webkitBorderRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56277             : {
   56278           0 :   binding_detail::FakeString arg0;
   56279           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56280           0 :     return false;
   56281             :   }
   56282           0 :   binding_detail::FastErrorResult rv;
   56283           0 :   self->SetWebkitBorderRadius(NonNullHelper(Constify(arg0)), rv);
   56284           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56285           0 :     return false;
   56286             :   }
   56287           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56288             : 
   56289           0 :   return true;
   56290             : }
   56291             : 
   56292             : static const JSJitInfo webkitBorderRadius_getterinfo = {
   56293             :   { (JSJitGetterOp)get_webkitBorderRadius },
   56294             :   { prototypes::id::CSS2Properties },
   56295             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56296             :   JSJitInfo::Getter,
   56297             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56298             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56299             :   false,  /* isInfallible. False in setters. */
   56300             :   false,  /* isMovable.  Not relevant for setters. */
   56301             :   false, /* isEliminatable.  Not relevant for setters. */
   56302             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56303             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56304             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56305             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56306             : };
   56307             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56308             : static_assert(0 < 1, "There is no slot for us");
   56309             : static const JSJitInfo webkitBorderRadius_setterinfo = {
   56310             :   { (JSJitGetterOp)set_webkitBorderRadius },
   56311             :   { prototypes::id::CSS2Properties },
   56312             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56313             :   JSJitInfo::Setter,
   56314             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56315             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56316             :   false,  /* isInfallible. False in setters. */
   56317             :   false,  /* isMovable.  Not relevant for setters. */
   56318             :   false, /* isEliminatable.  Not relevant for setters. */
   56319             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56320             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56321             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56322             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56323             : };
   56324             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56325             : static_assert(0 < 1, "There is no slot for us");
   56326             : 
   56327             : static bool
   56328           0 : get__webkit_border_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56329             : {
   56330           0 :   binding_detail::FastErrorResult rv;
   56331           0 :   DOMString result;
   56332           0 :   self->GetWebkitBorderRadius(result, rv);
   56333           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56334           0 :     return false;
   56335             :   }
   56336           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56337           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56338           0 :     return false;
   56339             :   }
   56340           0 :   return true;
   56341             : }
   56342             : 
   56343             : static bool
   56344           0 : set__webkit_border_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56345             : {
   56346           0 :   binding_detail::FakeString arg0;
   56347           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56348           0 :     return false;
   56349             :   }
   56350           0 :   binding_detail::FastErrorResult rv;
   56351           0 :   self->SetWebkitBorderRadius(NonNullHelper(Constify(arg0)), rv);
   56352           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56353           0 :     return false;
   56354             :   }
   56355           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56356             : 
   56357           0 :   return true;
   56358             : }
   56359             : 
   56360             : static const JSJitInfo _webkit_border_radius_getterinfo = {
   56361             :   { (JSJitGetterOp)get__webkit_border_radius },
   56362             :   { prototypes::id::CSS2Properties },
   56363             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56364             :   JSJitInfo::Getter,
   56365             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56366             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56367             :   false,  /* isInfallible. False in setters. */
   56368             :   false,  /* isMovable.  Not relevant for setters. */
   56369             :   false, /* isEliminatable.  Not relevant for setters. */
   56370             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56371             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56372             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56373             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56374             : };
   56375             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56376             : static_assert(0 < 1, "There is no slot for us");
   56377             : static const JSJitInfo _webkit_border_radius_setterinfo = {
   56378             :   { (JSJitGetterOp)set__webkit_border_radius },
   56379             :   { prototypes::id::CSS2Properties },
   56380             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56381             :   JSJitInfo::Setter,
   56382             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56383             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56384             :   false,  /* isInfallible. False in setters. */
   56385             :   false,  /* isMovable.  Not relevant for setters. */
   56386             :   false, /* isEliminatable.  Not relevant for setters. */
   56387             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56388             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56389             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56390             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56391             : };
   56392             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56393             : static_assert(0 < 1, "There is no slot for us");
   56394             : 
   56395             : static bool
   56396           0 : get_WebkitBorderTopLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56397             : {
   56398           0 :   binding_detail::FastErrorResult rv;
   56399           0 :   DOMString result;
   56400           0 :   self->GetWebkitBorderTopLeftRadius(result, rv);
   56401           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56402           0 :     return false;
   56403             :   }
   56404           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56405           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56406           0 :     return false;
   56407             :   }
   56408           0 :   return true;
   56409             : }
   56410             : 
   56411             : static bool
   56412           0 : set_WebkitBorderTopLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56413             : {
   56414           0 :   binding_detail::FakeString arg0;
   56415           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56416           0 :     return false;
   56417             :   }
   56418           0 :   binding_detail::FastErrorResult rv;
   56419           0 :   self->SetWebkitBorderTopLeftRadius(NonNullHelper(Constify(arg0)), rv);
   56420           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56421           0 :     return false;
   56422             :   }
   56423           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56424             : 
   56425           0 :   return true;
   56426             : }
   56427             : 
   56428             : static const JSJitInfo WebkitBorderTopLeftRadius_getterinfo = {
   56429             :   { (JSJitGetterOp)get_WebkitBorderTopLeftRadius },
   56430             :   { prototypes::id::CSS2Properties },
   56431             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56432             :   JSJitInfo::Getter,
   56433             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56434             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56435             :   false,  /* isInfallible. False in setters. */
   56436             :   false,  /* isMovable.  Not relevant for setters. */
   56437             :   false, /* isEliminatable.  Not relevant for setters. */
   56438             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56439             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56440             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56441             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56442             : };
   56443             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56444             : static_assert(0 < 1, "There is no slot for us");
   56445             : static const JSJitInfo WebkitBorderTopLeftRadius_setterinfo = {
   56446             :   { (JSJitGetterOp)set_WebkitBorderTopLeftRadius },
   56447             :   { prototypes::id::CSS2Properties },
   56448             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56449             :   JSJitInfo::Setter,
   56450             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56451             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56452             :   false,  /* isInfallible. False in setters. */
   56453             :   false,  /* isMovable.  Not relevant for setters. */
   56454             :   false, /* isEliminatable.  Not relevant for setters. */
   56455             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56456             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56457             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56458             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56459             : };
   56460             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56461             : static_assert(0 < 1, "There is no slot for us");
   56462             : 
   56463             : static bool
   56464           0 : get_webkitBorderTopLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56465             : {
   56466           0 :   binding_detail::FastErrorResult rv;
   56467           0 :   DOMString result;
   56468           0 :   self->GetWebkitBorderTopLeftRadius(result, rv);
   56469           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56470           0 :     return false;
   56471             :   }
   56472           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56473           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56474           0 :     return false;
   56475             :   }
   56476           0 :   return true;
   56477             : }
   56478             : 
   56479             : static bool
   56480           0 : set_webkitBorderTopLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56481             : {
   56482           0 :   binding_detail::FakeString arg0;
   56483           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56484           0 :     return false;
   56485             :   }
   56486           0 :   binding_detail::FastErrorResult rv;
   56487           0 :   self->SetWebkitBorderTopLeftRadius(NonNullHelper(Constify(arg0)), rv);
   56488           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56489           0 :     return false;
   56490             :   }
   56491           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56492             : 
   56493           0 :   return true;
   56494             : }
   56495             : 
   56496             : static const JSJitInfo webkitBorderTopLeftRadius_getterinfo = {
   56497             :   { (JSJitGetterOp)get_webkitBorderTopLeftRadius },
   56498             :   { prototypes::id::CSS2Properties },
   56499             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56500             :   JSJitInfo::Getter,
   56501             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56502             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56503             :   false,  /* isInfallible. False in setters. */
   56504             :   false,  /* isMovable.  Not relevant for setters. */
   56505             :   false, /* isEliminatable.  Not relevant for setters. */
   56506             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56507             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56508             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56509             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56510             : };
   56511             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56512             : static_assert(0 < 1, "There is no slot for us");
   56513             : static const JSJitInfo webkitBorderTopLeftRadius_setterinfo = {
   56514             :   { (JSJitGetterOp)set_webkitBorderTopLeftRadius },
   56515             :   { prototypes::id::CSS2Properties },
   56516             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56517             :   JSJitInfo::Setter,
   56518             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56519             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56520             :   false,  /* isInfallible. False in setters. */
   56521             :   false,  /* isMovable.  Not relevant for setters. */
   56522             :   false, /* isEliminatable.  Not relevant for setters. */
   56523             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56524             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56525             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56526             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56527             : };
   56528             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56529             : static_assert(0 < 1, "There is no slot for us");
   56530             : 
   56531             : static bool
   56532           0 : get__webkit_border_top_left_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56533             : {
   56534           0 :   binding_detail::FastErrorResult rv;
   56535           0 :   DOMString result;
   56536           0 :   self->GetWebkitBorderTopLeftRadius(result, rv);
   56537           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56538           0 :     return false;
   56539             :   }
   56540           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56541           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56542           0 :     return false;
   56543             :   }
   56544           0 :   return true;
   56545             : }
   56546             : 
   56547             : static bool
   56548           0 : set__webkit_border_top_left_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56549             : {
   56550           0 :   binding_detail::FakeString arg0;
   56551           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56552           0 :     return false;
   56553             :   }
   56554           0 :   binding_detail::FastErrorResult rv;
   56555           0 :   self->SetWebkitBorderTopLeftRadius(NonNullHelper(Constify(arg0)), rv);
   56556           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56557           0 :     return false;
   56558             :   }
   56559           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56560             : 
   56561           0 :   return true;
   56562             : }
   56563             : 
   56564             : static const JSJitInfo _webkit_border_top_left_radius_getterinfo = {
   56565             :   { (JSJitGetterOp)get__webkit_border_top_left_radius },
   56566             :   { prototypes::id::CSS2Properties },
   56567             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56568             :   JSJitInfo::Getter,
   56569             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56570             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56571             :   false,  /* isInfallible. False in setters. */
   56572             :   false,  /* isMovable.  Not relevant for setters. */
   56573             :   false, /* isEliminatable.  Not relevant for setters. */
   56574             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56575             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56576             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56577             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56578             : };
   56579             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56580             : static_assert(0 < 1, "There is no slot for us");
   56581             : static const JSJitInfo _webkit_border_top_left_radius_setterinfo = {
   56582             :   { (JSJitGetterOp)set__webkit_border_top_left_radius },
   56583             :   { prototypes::id::CSS2Properties },
   56584             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56585             :   JSJitInfo::Setter,
   56586             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56587             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56588             :   false,  /* isInfallible. False in setters. */
   56589             :   false,  /* isMovable.  Not relevant for setters. */
   56590             :   false, /* isEliminatable.  Not relevant for setters. */
   56591             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56592             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56593             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56594             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56595             : };
   56596             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56597             : static_assert(0 < 1, "There is no slot for us");
   56598             : 
   56599             : static bool
   56600           0 : get_WebkitBorderTopRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56601             : {
   56602           0 :   binding_detail::FastErrorResult rv;
   56603           0 :   DOMString result;
   56604           0 :   self->GetWebkitBorderTopRightRadius(result, rv);
   56605           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56606           0 :     return false;
   56607             :   }
   56608           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56609           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56610           0 :     return false;
   56611             :   }
   56612           0 :   return true;
   56613             : }
   56614             : 
   56615             : static bool
   56616           0 : set_WebkitBorderTopRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56617             : {
   56618           0 :   binding_detail::FakeString arg0;
   56619           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56620           0 :     return false;
   56621             :   }
   56622           0 :   binding_detail::FastErrorResult rv;
   56623           0 :   self->SetWebkitBorderTopRightRadius(NonNullHelper(Constify(arg0)), rv);
   56624           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56625           0 :     return false;
   56626             :   }
   56627           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56628             : 
   56629           0 :   return true;
   56630             : }
   56631             : 
   56632             : static const JSJitInfo WebkitBorderTopRightRadius_getterinfo = {
   56633             :   { (JSJitGetterOp)get_WebkitBorderTopRightRadius },
   56634             :   { prototypes::id::CSS2Properties },
   56635             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56636             :   JSJitInfo::Getter,
   56637             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56638             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56639             :   false,  /* isInfallible. False in setters. */
   56640             :   false,  /* isMovable.  Not relevant for setters. */
   56641             :   false, /* isEliminatable.  Not relevant for setters. */
   56642             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56643             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56644             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56645             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56646             : };
   56647             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56648             : static_assert(0 < 1, "There is no slot for us");
   56649             : static const JSJitInfo WebkitBorderTopRightRadius_setterinfo = {
   56650             :   { (JSJitGetterOp)set_WebkitBorderTopRightRadius },
   56651             :   { prototypes::id::CSS2Properties },
   56652             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56653             :   JSJitInfo::Setter,
   56654             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56655             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56656             :   false,  /* isInfallible. False in setters. */
   56657             :   false,  /* isMovable.  Not relevant for setters. */
   56658             :   false, /* isEliminatable.  Not relevant for setters. */
   56659             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56660             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56661             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56662             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56663             : };
   56664             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56665             : static_assert(0 < 1, "There is no slot for us");
   56666             : 
   56667             : static bool
   56668           0 : get_webkitBorderTopRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56669             : {
   56670           0 :   binding_detail::FastErrorResult rv;
   56671           0 :   DOMString result;
   56672           0 :   self->GetWebkitBorderTopRightRadius(result, rv);
   56673           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56674           0 :     return false;
   56675             :   }
   56676           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56677           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56678           0 :     return false;
   56679             :   }
   56680           0 :   return true;
   56681             : }
   56682             : 
   56683             : static bool
   56684           0 : set_webkitBorderTopRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56685             : {
   56686           0 :   binding_detail::FakeString arg0;
   56687           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56688           0 :     return false;
   56689             :   }
   56690           0 :   binding_detail::FastErrorResult rv;
   56691           0 :   self->SetWebkitBorderTopRightRadius(NonNullHelper(Constify(arg0)), rv);
   56692           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56693           0 :     return false;
   56694             :   }
   56695           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56696             : 
   56697           0 :   return true;
   56698             : }
   56699             : 
   56700             : static const JSJitInfo webkitBorderTopRightRadius_getterinfo = {
   56701             :   { (JSJitGetterOp)get_webkitBorderTopRightRadius },
   56702             :   { prototypes::id::CSS2Properties },
   56703             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56704             :   JSJitInfo::Getter,
   56705             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56706             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56707             :   false,  /* isInfallible. False in setters. */
   56708             :   false,  /* isMovable.  Not relevant for setters. */
   56709             :   false, /* isEliminatable.  Not relevant for setters. */
   56710             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56711             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56712             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56713             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56714             : };
   56715             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56716             : static_assert(0 < 1, "There is no slot for us");
   56717             : static const JSJitInfo webkitBorderTopRightRadius_setterinfo = {
   56718             :   { (JSJitGetterOp)set_webkitBorderTopRightRadius },
   56719             :   { prototypes::id::CSS2Properties },
   56720             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56721             :   JSJitInfo::Setter,
   56722             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56723             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56724             :   false,  /* isInfallible. False in setters. */
   56725             :   false,  /* isMovable.  Not relevant for setters. */
   56726             :   false, /* isEliminatable.  Not relevant for setters. */
   56727             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56728             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56729             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56730             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56731             : };
   56732             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56733             : static_assert(0 < 1, "There is no slot for us");
   56734             : 
   56735             : static bool
   56736           0 : get__webkit_border_top_right_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56737             : {
   56738           0 :   binding_detail::FastErrorResult rv;
   56739           0 :   DOMString result;
   56740           0 :   self->GetWebkitBorderTopRightRadius(result, rv);
   56741           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56742           0 :     return false;
   56743             :   }
   56744           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56745           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56746           0 :     return false;
   56747             :   }
   56748           0 :   return true;
   56749             : }
   56750             : 
   56751             : static bool
   56752           0 : set__webkit_border_top_right_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56753             : {
   56754           0 :   binding_detail::FakeString arg0;
   56755           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56756           0 :     return false;
   56757             :   }
   56758           0 :   binding_detail::FastErrorResult rv;
   56759           0 :   self->SetWebkitBorderTopRightRadius(NonNullHelper(Constify(arg0)), rv);
   56760           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56761           0 :     return false;
   56762             :   }
   56763           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56764             : 
   56765           0 :   return true;
   56766             : }
   56767             : 
   56768             : static const JSJitInfo _webkit_border_top_right_radius_getterinfo = {
   56769             :   { (JSJitGetterOp)get__webkit_border_top_right_radius },
   56770             :   { prototypes::id::CSS2Properties },
   56771             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56772             :   JSJitInfo::Getter,
   56773             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56774             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56775             :   false,  /* isInfallible. False in setters. */
   56776             :   false,  /* isMovable.  Not relevant for setters. */
   56777             :   false, /* isEliminatable.  Not relevant for setters. */
   56778             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56779             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56780             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56781             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56782             : };
   56783             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56784             : static_assert(0 < 1, "There is no slot for us");
   56785             : static const JSJitInfo _webkit_border_top_right_radius_setterinfo = {
   56786             :   { (JSJitGetterOp)set__webkit_border_top_right_radius },
   56787             :   { prototypes::id::CSS2Properties },
   56788             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56789             :   JSJitInfo::Setter,
   56790             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56791             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56792             :   false,  /* isInfallible. False in setters. */
   56793             :   false,  /* isMovable.  Not relevant for setters. */
   56794             :   false, /* isEliminatable.  Not relevant for setters. */
   56795             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56796             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56797             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56798             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56799             : };
   56800             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56801             : static_assert(0 < 1, "There is no slot for us");
   56802             : 
   56803             : static bool
   56804           0 : get_WebkitBorderBottomLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56805             : {
   56806           0 :   binding_detail::FastErrorResult rv;
   56807           0 :   DOMString result;
   56808           0 :   self->GetWebkitBorderBottomLeftRadius(result, rv);
   56809           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56810           0 :     return false;
   56811             :   }
   56812           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56813           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56814           0 :     return false;
   56815             :   }
   56816           0 :   return true;
   56817             : }
   56818             : 
   56819             : static bool
   56820           0 : set_WebkitBorderBottomLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56821             : {
   56822           0 :   binding_detail::FakeString arg0;
   56823           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56824           0 :     return false;
   56825             :   }
   56826           0 :   binding_detail::FastErrorResult rv;
   56827           0 :   self->SetWebkitBorderBottomLeftRadius(NonNullHelper(Constify(arg0)), rv);
   56828           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56829           0 :     return false;
   56830             :   }
   56831           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56832             : 
   56833           0 :   return true;
   56834             : }
   56835             : 
   56836             : static const JSJitInfo WebkitBorderBottomLeftRadius_getterinfo = {
   56837             :   { (JSJitGetterOp)get_WebkitBorderBottomLeftRadius },
   56838             :   { prototypes::id::CSS2Properties },
   56839             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56840             :   JSJitInfo::Getter,
   56841             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56842             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56843             :   false,  /* isInfallible. False in setters. */
   56844             :   false,  /* isMovable.  Not relevant for setters. */
   56845             :   false, /* isEliminatable.  Not relevant for setters. */
   56846             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56847             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56848             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56849             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56850             : };
   56851             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56852             : static_assert(0 < 1, "There is no slot for us");
   56853             : static const JSJitInfo WebkitBorderBottomLeftRadius_setterinfo = {
   56854             :   { (JSJitGetterOp)set_WebkitBorderBottomLeftRadius },
   56855             :   { prototypes::id::CSS2Properties },
   56856             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56857             :   JSJitInfo::Setter,
   56858             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56859             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56860             :   false,  /* isInfallible. False in setters. */
   56861             :   false,  /* isMovable.  Not relevant for setters. */
   56862             :   false, /* isEliminatable.  Not relevant for setters. */
   56863             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56864             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56865             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56866             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56867             : };
   56868             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56869             : static_assert(0 < 1, "There is no slot for us");
   56870             : 
   56871             : static bool
   56872           0 : get_webkitBorderBottomLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56873             : {
   56874           0 :   binding_detail::FastErrorResult rv;
   56875           0 :   DOMString result;
   56876           0 :   self->GetWebkitBorderBottomLeftRadius(result, rv);
   56877           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56878           0 :     return false;
   56879             :   }
   56880           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56881           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56882           0 :     return false;
   56883             :   }
   56884           0 :   return true;
   56885             : }
   56886             : 
   56887             : static bool
   56888           0 : set_webkitBorderBottomLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56889             : {
   56890           0 :   binding_detail::FakeString arg0;
   56891           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56892           0 :     return false;
   56893             :   }
   56894           0 :   binding_detail::FastErrorResult rv;
   56895           0 :   self->SetWebkitBorderBottomLeftRadius(NonNullHelper(Constify(arg0)), rv);
   56896           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56897           0 :     return false;
   56898             :   }
   56899           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56900             : 
   56901           0 :   return true;
   56902             : }
   56903             : 
   56904             : static const JSJitInfo webkitBorderBottomLeftRadius_getterinfo = {
   56905             :   { (JSJitGetterOp)get_webkitBorderBottomLeftRadius },
   56906             :   { prototypes::id::CSS2Properties },
   56907             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56908             :   JSJitInfo::Getter,
   56909             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56910             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56911             :   false,  /* isInfallible. False in setters. */
   56912             :   false,  /* isMovable.  Not relevant for setters. */
   56913             :   false, /* isEliminatable.  Not relevant for setters. */
   56914             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56915             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56916             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56917             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56918             : };
   56919             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56920             : static_assert(0 < 1, "There is no slot for us");
   56921             : static const JSJitInfo webkitBorderBottomLeftRadius_setterinfo = {
   56922             :   { (JSJitGetterOp)set_webkitBorderBottomLeftRadius },
   56923             :   { prototypes::id::CSS2Properties },
   56924             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56925             :   JSJitInfo::Setter,
   56926             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56927             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56928             :   false,  /* isInfallible. False in setters. */
   56929             :   false,  /* isMovable.  Not relevant for setters. */
   56930             :   false, /* isEliminatable.  Not relevant for setters. */
   56931             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56932             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56933             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56934             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56935             : };
   56936             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56937             : static_assert(0 < 1, "There is no slot for us");
   56938             : 
   56939             : static bool
   56940           0 : get__webkit_border_bottom_left_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   56941             : {
   56942           0 :   binding_detail::FastErrorResult rv;
   56943           0 :   DOMString result;
   56944           0 :   self->GetWebkitBorderBottomLeftRadius(result, rv);
   56945           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56946           0 :     return false;
   56947             :   }
   56948           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56949           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   56950           0 :     return false;
   56951             :   }
   56952           0 :   return true;
   56953             : }
   56954             : 
   56955             : static bool
   56956           0 : set__webkit_border_bottom_left_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   56957             : {
   56958           0 :   binding_detail::FakeString arg0;
   56959           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   56960           0 :     return false;
   56961             :   }
   56962           0 :   binding_detail::FastErrorResult rv;
   56963           0 :   self->SetWebkitBorderBottomLeftRadius(NonNullHelper(Constify(arg0)), rv);
   56964           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   56965           0 :     return false;
   56966             :   }
   56967           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   56968             : 
   56969           0 :   return true;
   56970             : }
   56971             : 
   56972             : static const JSJitInfo _webkit_border_bottom_left_radius_getterinfo = {
   56973             :   { (JSJitGetterOp)get__webkit_border_bottom_left_radius },
   56974             :   { prototypes::id::CSS2Properties },
   56975             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56976             :   JSJitInfo::Getter,
   56977             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56978             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   56979             :   false,  /* isInfallible. False in setters. */
   56980             :   false,  /* isMovable.  Not relevant for setters. */
   56981             :   false, /* isEliminatable.  Not relevant for setters. */
   56982             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   56983             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   56984             :   false,  /* isTypedMethod.  Only relevant for methods. */
   56985             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   56986             : };
   56987             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   56988             : static_assert(0 < 1, "There is no slot for us");
   56989             : static const JSJitInfo _webkit_border_bottom_left_radius_setterinfo = {
   56990             :   { (JSJitGetterOp)set__webkit_border_bottom_left_radius },
   56991             :   { prototypes::id::CSS2Properties },
   56992             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   56993             :   JSJitInfo::Setter,
   56994             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   56995             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   56996             :   false,  /* isInfallible. False in setters. */
   56997             :   false,  /* isMovable.  Not relevant for setters. */
   56998             :   false, /* isEliminatable.  Not relevant for setters. */
   56999             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57000             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57001             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57002             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57003             : };
   57004             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57005             : static_assert(0 < 1, "There is no slot for us");
   57006             : 
   57007             : static bool
   57008           0 : get_WebkitBorderBottomRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57009             : {
   57010           0 :   binding_detail::FastErrorResult rv;
   57011           0 :   DOMString result;
   57012           0 :   self->GetWebkitBorderBottomRightRadius(result, rv);
   57013           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57014           0 :     return false;
   57015             :   }
   57016           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57017           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57018           0 :     return false;
   57019             :   }
   57020           0 :   return true;
   57021             : }
   57022             : 
   57023             : static bool
   57024           0 : set_WebkitBorderBottomRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57025             : {
   57026           0 :   binding_detail::FakeString arg0;
   57027           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57028           0 :     return false;
   57029             :   }
   57030           0 :   binding_detail::FastErrorResult rv;
   57031           0 :   self->SetWebkitBorderBottomRightRadius(NonNullHelper(Constify(arg0)), rv);
   57032           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57033           0 :     return false;
   57034             :   }
   57035           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57036             : 
   57037           0 :   return true;
   57038             : }
   57039             : 
   57040             : static const JSJitInfo WebkitBorderBottomRightRadius_getterinfo = {
   57041             :   { (JSJitGetterOp)get_WebkitBorderBottomRightRadius },
   57042             :   { prototypes::id::CSS2Properties },
   57043             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57044             :   JSJitInfo::Getter,
   57045             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57046             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57047             :   false,  /* isInfallible. False in setters. */
   57048             :   false,  /* isMovable.  Not relevant for setters. */
   57049             :   false, /* isEliminatable.  Not relevant for setters. */
   57050             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57051             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57052             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57053             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57054             : };
   57055             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57056             : static_assert(0 < 1, "There is no slot for us");
   57057             : static const JSJitInfo WebkitBorderBottomRightRadius_setterinfo = {
   57058             :   { (JSJitGetterOp)set_WebkitBorderBottomRightRadius },
   57059             :   { prototypes::id::CSS2Properties },
   57060             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57061             :   JSJitInfo::Setter,
   57062             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57063             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57064             :   false,  /* isInfallible. False in setters. */
   57065             :   false,  /* isMovable.  Not relevant for setters. */
   57066             :   false, /* isEliminatable.  Not relevant for setters. */
   57067             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57068             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57069             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57070             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57071             : };
   57072             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57073             : static_assert(0 < 1, "There is no slot for us");
   57074             : 
   57075             : static bool
   57076           0 : get_webkitBorderBottomRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57077             : {
   57078           0 :   binding_detail::FastErrorResult rv;
   57079           0 :   DOMString result;
   57080           0 :   self->GetWebkitBorderBottomRightRadius(result, rv);
   57081           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57082           0 :     return false;
   57083             :   }
   57084           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57085           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57086           0 :     return false;
   57087             :   }
   57088           0 :   return true;
   57089             : }
   57090             : 
   57091             : static bool
   57092           0 : set_webkitBorderBottomRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57093             : {
   57094           0 :   binding_detail::FakeString arg0;
   57095           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57096           0 :     return false;
   57097             :   }
   57098           0 :   binding_detail::FastErrorResult rv;
   57099           0 :   self->SetWebkitBorderBottomRightRadius(NonNullHelper(Constify(arg0)), rv);
   57100           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57101           0 :     return false;
   57102             :   }
   57103           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57104             : 
   57105           0 :   return true;
   57106             : }
   57107             : 
   57108             : static const JSJitInfo webkitBorderBottomRightRadius_getterinfo = {
   57109             :   { (JSJitGetterOp)get_webkitBorderBottomRightRadius },
   57110             :   { prototypes::id::CSS2Properties },
   57111             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57112             :   JSJitInfo::Getter,
   57113             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57114             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57115             :   false,  /* isInfallible. False in setters. */
   57116             :   false,  /* isMovable.  Not relevant for setters. */
   57117             :   false, /* isEliminatable.  Not relevant for setters. */
   57118             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57119             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57120             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57121             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57122             : };
   57123             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57124             : static_assert(0 < 1, "There is no slot for us");
   57125             : static const JSJitInfo webkitBorderBottomRightRadius_setterinfo = {
   57126             :   { (JSJitGetterOp)set_webkitBorderBottomRightRadius },
   57127             :   { prototypes::id::CSS2Properties },
   57128             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57129             :   JSJitInfo::Setter,
   57130             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57131             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57132             :   false,  /* isInfallible. False in setters. */
   57133             :   false,  /* isMovable.  Not relevant for setters. */
   57134             :   false, /* isEliminatable.  Not relevant for setters. */
   57135             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57136             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57137             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57138             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57139             : };
   57140             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57141             : static_assert(0 < 1, "There is no slot for us");
   57142             : 
   57143             : static bool
   57144           0 : get__webkit_border_bottom_right_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57145             : {
   57146           0 :   binding_detail::FastErrorResult rv;
   57147           0 :   DOMString result;
   57148           0 :   self->GetWebkitBorderBottomRightRadius(result, rv);
   57149           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57150           0 :     return false;
   57151             :   }
   57152           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57153           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57154           0 :     return false;
   57155             :   }
   57156           0 :   return true;
   57157             : }
   57158             : 
   57159             : static bool
   57160           0 : set__webkit_border_bottom_right_radius(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57161             : {
   57162           0 :   binding_detail::FakeString arg0;
   57163           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57164           0 :     return false;
   57165             :   }
   57166           0 :   binding_detail::FastErrorResult rv;
   57167           0 :   self->SetWebkitBorderBottomRightRadius(NonNullHelper(Constify(arg0)), rv);
   57168           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57169           0 :     return false;
   57170             :   }
   57171           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57172             : 
   57173           0 :   return true;
   57174             : }
   57175             : 
   57176             : static const JSJitInfo _webkit_border_bottom_right_radius_getterinfo = {
   57177             :   { (JSJitGetterOp)get__webkit_border_bottom_right_radius },
   57178             :   { prototypes::id::CSS2Properties },
   57179             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57180             :   JSJitInfo::Getter,
   57181             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57182             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57183             :   false,  /* isInfallible. False in setters. */
   57184             :   false,  /* isMovable.  Not relevant for setters. */
   57185             :   false, /* isEliminatable.  Not relevant for setters. */
   57186             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57187             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57188             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57189             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57190             : };
   57191             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57192             : static_assert(0 < 1, "There is no slot for us");
   57193             : static const JSJitInfo _webkit_border_bottom_right_radius_setterinfo = {
   57194             :   { (JSJitGetterOp)set__webkit_border_bottom_right_radius },
   57195             :   { prototypes::id::CSS2Properties },
   57196             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57197             :   JSJitInfo::Setter,
   57198             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57199             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57200             :   false,  /* isInfallible. False in setters. */
   57201             :   false,  /* isMovable.  Not relevant for setters. */
   57202             :   false, /* isEliminatable.  Not relevant for setters. */
   57203             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57204             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57205             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57206             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57207             : };
   57208             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57209             : static_assert(0 < 1, "There is no slot for us");
   57210             : 
   57211             : static bool
   57212           0 : get_WebkitBackgroundClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57213             : {
   57214           0 :   binding_detail::FastErrorResult rv;
   57215           0 :   DOMString result;
   57216           0 :   self->GetWebkitBackgroundClip(result, rv);
   57217           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57218           0 :     return false;
   57219             :   }
   57220           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57221           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57222           0 :     return false;
   57223             :   }
   57224           0 :   return true;
   57225             : }
   57226             : 
   57227             : static bool
   57228           0 : set_WebkitBackgroundClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57229             : {
   57230           0 :   binding_detail::FakeString arg0;
   57231           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57232           0 :     return false;
   57233             :   }
   57234           0 :   binding_detail::FastErrorResult rv;
   57235           0 :   self->SetWebkitBackgroundClip(NonNullHelper(Constify(arg0)), rv);
   57236           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57237           0 :     return false;
   57238             :   }
   57239           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57240             : 
   57241           0 :   return true;
   57242             : }
   57243             : 
   57244             : static const JSJitInfo WebkitBackgroundClip_getterinfo = {
   57245             :   { (JSJitGetterOp)get_WebkitBackgroundClip },
   57246             :   { prototypes::id::CSS2Properties },
   57247             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57248             :   JSJitInfo::Getter,
   57249             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57250             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57251             :   false,  /* isInfallible. False in setters. */
   57252             :   false,  /* isMovable.  Not relevant for setters. */
   57253             :   false, /* isEliminatable.  Not relevant for setters. */
   57254             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57255             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57256             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57257             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57258             : };
   57259             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57260             : static_assert(0 < 1, "There is no slot for us");
   57261             : static const JSJitInfo WebkitBackgroundClip_setterinfo = {
   57262             :   { (JSJitGetterOp)set_WebkitBackgroundClip },
   57263             :   { prototypes::id::CSS2Properties },
   57264             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57265             :   JSJitInfo::Setter,
   57266             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57267             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57268             :   false,  /* isInfallible. False in setters. */
   57269             :   false,  /* isMovable.  Not relevant for setters. */
   57270             :   false, /* isEliminatable.  Not relevant for setters. */
   57271             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57272             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57273             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57274             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57275             : };
   57276             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57277             : static_assert(0 < 1, "There is no slot for us");
   57278             : 
   57279             : static bool
   57280           0 : get_webkitBackgroundClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57281             : {
   57282           0 :   binding_detail::FastErrorResult rv;
   57283           0 :   DOMString result;
   57284           0 :   self->GetWebkitBackgroundClip(result, rv);
   57285           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57286           0 :     return false;
   57287             :   }
   57288           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57289           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57290           0 :     return false;
   57291             :   }
   57292           0 :   return true;
   57293             : }
   57294             : 
   57295             : static bool
   57296           0 : set_webkitBackgroundClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57297             : {
   57298           0 :   binding_detail::FakeString arg0;
   57299           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57300           0 :     return false;
   57301             :   }
   57302           0 :   binding_detail::FastErrorResult rv;
   57303           0 :   self->SetWebkitBackgroundClip(NonNullHelper(Constify(arg0)), rv);
   57304           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57305           0 :     return false;
   57306             :   }
   57307           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57308             : 
   57309           0 :   return true;
   57310             : }
   57311             : 
   57312             : static const JSJitInfo webkitBackgroundClip_getterinfo = {
   57313             :   { (JSJitGetterOp)get_webkitBackgroundClip },
   57314             :   { prototypes::id::CSS2Properties },
   57315             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57316             :   JSJitInfo::Getter,
   57317             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57318             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57319             :   false,  /* isInfallible. False in setters. */
   57320             :   false,  /* isMovable.  Not relevant for setters. */
   57321             :   false, /* isEliminatable.  Not relevant for setters. */
   57322             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57323             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57324             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57325             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57326             : };
   57327             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57328             : static_assert(0 < 1, "There is no slot for us");
   57329             : static const JSJitInfo webkitBackgroundClip_setterinfo = {
   57330             :   { (JSJitGetterOp)set_webkitBackgroundClip },
   57331             :   { prototypes::id::CSS2Properties },
   57332             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57333             :   JSJitInfo::Setter,
   57334             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57335             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57336             :   false,  /* isInfallible. False in setters. */
   57337             :   false,  /* isMovable.  Not relevant for setters. */
   57338             :   false, /* isEliminatable.  Not relevant for setters. */
   57339             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57340             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57341             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57342             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57343             : };
   57344             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57345             : static_assert(0 < 1, "There is no slot for us");
   57346             : 
   57347             : static bool
   57348           0 : get__webkit_background_clip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57349             : {
   57350           0 :   binding_detail::FastErrorResult rv;
   57351           0 :   DOMString result;
   57352           0 :   self->GetWebkitBackgroundClip(result, rv);
   57353           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57354           0 :     return false;
   57355             :   }
   57356           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57357           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57358           0 :     return false;
   57359             :   }
   57360           0 :   return true;
   57361             : }
   57362             : 
   57363             : static bool
   57364           0 : set__webkit_background_clip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57365             : {
   57366           0 :   binding_detail::FakeString arg0;
   57367           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57368           0 :     return false;
   57369             :   }
   57370           0 :   binding_detail::FastErrorResult rv;
   57371           0 :   self->SetWebkitBackgroundClip(NonNullHelper(Constify(arg0)), rv);
   57372           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57373           0 :     return false;
   57374             :   }
   57375           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57376             : 
   57377           0 :   return true;
   57378             : }
   57379             : 
   57380             : static const JSJitInfo _webkit_background_clip_getterinfo = {
   57381             :   { (JSJitGetterOp)get__webkit_background_clip },
   57382             :   { prototypes::id::CSS2Properties },
   57383             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57384             :   JSJitInfo::Getter,
   57385             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57386             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57387             :   false,  /* isInfallible. False in setters. */
   57388             :   false,  /* isMovable.  Not relevant for setters. */
   57389             :   false, /* isEliminatable.  Not relevant for setters. */
   57390             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57391             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57392             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57393             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57394             : };
   57395             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57396             : static_assert(0 < 1, "There is no slot for us");
   57397             : static const JSJitInfo _webkit_background_clip_setterinfo = {
   57398             :   { (JSJitGetterOp)set__webkit_background_clip },
   57399             :   { prototypes::id::CSS2Properties },
   57400             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57401             :   JSJitInfo::Setter,
   57402             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57403             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57404             :   false,  /* isInfallible. False in setters. */
   57405             :   false,  /* isMovable.  Not relevant for setters. */
   57406             :   false, /* isEliminatable.  Not relevant for setters. */
   57407             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57408             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57409             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57410             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57411             : };
   57412             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57413             : static_assert(0 < 1, "There is no slot for us");
   57414             : 
   57415             : static bool
   57416           0 : get_WebkitBackgroundOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57417             : {
   57418           0 :   binding_detail::FastErrorResult rv;
   57419           0 :   DOMString result;
   57420           0 :   self->GetWebkitBackgroundOrigin(result, rv);
   57421           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57422           0 :     return false;
   57423             :   }
   57424           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57425           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57426           0 :     return false;
   57427             :   }
   57428           0 :   return true;
   57429             : }
   57430             : 
   57431             : static bool
   57432           0 : set_WebkitBackgroundOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57433             : {
   57434           0 :   binding_detail::FakeString arg0;
   57435           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57436           0 :     return false;
   57437             :   }
   57438           0 :   binding_detail::FastErrorResult rv;
   57439           0 :   self->SetWebkitBackgroundOrigin(NonNullHelper(Constify(arg0)), rv);
   57440           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57441           0 :     return false;
   57442             :   }
   57443           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57444             : 
   57445           0 :   return true;
   57446             : }
   57447             : 
   57448             : static const JSJitInfo WebkitBackgroundOrigin_getterinfo = {
   57449             :   { (JSJitGetterOp)get_WebkitBackgroundOrigin },
   57450             :   { prototypes::id::CSS2Properties },
   57451             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57452             :   JSJitInfo::Getter,
   57453             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57454             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57455             :   false,  /* isInfallible. False in setters. */
   57456             :   false,  /* isMovable.  Not relevant for setters. */
   57457             :   false, /* isEliminatable.  Not relevant for setters. */
   57458             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57459             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57460             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57461             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57462             : };
   57463             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57464             : static_assert(0 < 1, "There is no slot for us");
   57465             : static const JSJitInfo WebkitBackgroundOrigin_setterinfo = {
   57466             :   { (JSJitGetterOp)set_WebkitBackgroundOrigin },
   57467             :   { prototypes::id::CSS2Properties },
   57468             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57469             :   JSJitInfo::Setter,
   57470             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57471             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57472             :   false,  /* isInfallible. False in setters. */
   57473             :   false,  /* isMovable.  Not relevant for setters. */
   57474             :   false, /* isEliminatable.  Not relevant for setters. */
   57475             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57476             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57477             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57478             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57479             : };
   57480             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57481             : static_assert(0 < 1, "There is no slot for us");
   57482             : 
   57483             : static bool
   57484           0 : get_webkitBackgroundOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57485             : {
   57486           0 :   binding_detail::FastErrorResult rv;
   57487           0 :   DOMString result;
   57488           0 :   self->GetWebkitBackgroundOrigin(result, rv);
   57489           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57490           0 :     return false;
   57491             :   }
   57492           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57493           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57494           0 :     return false;
   57495             :   }
   57496           0 :   return true;
   57497             : }
   57498             : 
   57499             : static bool
   57500           0 : set_webkitBackgroundOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57501             : {
   57502           0 :   binding_detail::FakeString arg0;
   57503           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57504           0 :     return false;
   57505             :   }
   57506           0 :   binding_detail::FastErrorResult rv;
   57507           0 :   self->SetWebkitBackgroundOrigin(NonNullHelper(Constify(arg0)), rv);
   57508           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57509           0 :     return false;
   57510             :   }
   57511           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57512             : 
   57513           0 :   return true;
   57514             : }
   57515             : 
   57516             : static const JSJitInfo webkitBackgroundOrigin_getterinfo = {
   57517             :   { (JSJitGetterOp)get_webkitBackgroundOrigin },
   57518             :   { prototypes::id::CSS2Properties },
   57519             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57520             :   JSJitInfo::Getter,
   57521             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57522             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57523             :   false,  /* isInfallible. False in setters. */
   57524             :   false,  /* isMovable.  Not relevant for setters. */
   57525             :   false, /* isEliminatable.  Not relevant for setters. */
   57526             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57527             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57528             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57529             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57530             : };
   57531             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57532             : static_assert(0 < 1, "There is no slot for us");
   57533             : static const JSJitInfo webkitBackgroundOrigin_setterinfo = {
   57534             :   { (JSJitGetterOp)set_webkitBackgroundOrigin },
   57535             :   { prototypes::id::CSS2Properties },
   57536             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57537             :   JSJitInfo::Setter,
   57538             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57539             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57540             :   false,  /* isInfallible. False in setters. */
   57541             :   false,  /* isMovable.  Not relevant for setters. */
   57542             :   false, /* isEliminatable.  Not relevant for setters. */
   57543             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57544             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57545             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57546             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57547             : };
   57548             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57549             : static_assert(0 < 1, "There is no slot for us");
   57550             : 
   57551             : static bool
   57552           0 : get__webkit_background_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57553             : {
   57554           0 :   binding_detail::FastErrorResult rv;
   57555           0 :   DOMString result;
   57556           0 :   self->GetWebkitBackgroundOrigin(result, rv);
   57557           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57558           0 :     return false;
   57559             :   }
   57560           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57561           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57562           0 :     return false;
   57563             :   }
   57564           0 :   return true;
   57565             : }
   57566             : 
   57567             : static bool
   57568           0 : set__webkit_background_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57569             : {
   57570           0 :   binding_detail::FakeString arg0;
   57571           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57572           0 :     return false;
   57573             :   }
   57574           0 :   binding_detail::FastErrorResult rv;
   57575           0 :   self->SetWebkitBackgroundOrigin(NonNullHelper(Constify(arg0)), rv);
   57576           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57577           0 :     return false;
   57578             :   }
   57579           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57580             : 
   57581           0 :   return true;
   57582             : }
   57583             : 
   57584             : static const JSJitInfo _webkit_background_origin_getterinfo = {
   57585             :   { (JSJitGetterOp)get__webkit_background_origin },
   57586             :   { prototypes::id::CSS2Properties },
   57587             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57588             :   JSJitInfo::Getter,
   57589             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57590             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57591             :   false,  /* isInfallible. False in setters. */
   57592             :   false,  /* isMovable.  Not relevant for setters. */
   57593             :   false, /* isEliminatable.  Not relevant for setters. */
   57594             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57595             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57596             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57597             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57598             : };
   57599             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57600             : static_assert(0 < 1, "There is no slot for us");
   57601             : static const JSJitInfo _webkit_background_origin_setterinfo = {
   57602             :   { (JSJitGetterOp)set__webkit_background_origin },
   57603             :   { prototypes::id::CSS2Properties },
   57604             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57605             :   JSJitInfo::Setter,
   57606             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57607             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57608             :   false,  /* isInfallible. False in setters. */
   57609             :   false,  /* isMovable.  Not relevant for setters. */
   57610             :   false, /* isEliminatable.  Not relevant for setters. */
   57611             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57612             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57613             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57614             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57615             : };
   57616             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57617             : static_assert(0 < 1, "There is no slot for us");
   57618             : 
   57619             : static bool
   57620           0 : get_WebkitBackgroundSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57621             : {
   57622           0 :   binding_detail::FastErrorResult rv;
   57623           0 :   DOMString result;
   57624           0 :   self->GetWebkitBackgroundSize(result, rv);
   57625           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57626           0 :     return false;
   57627             :   }
   57628           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57629           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57630           0 :     return false;
   57631             :   }
   57632           0 :   return true;
   57633             : }
   57634             : 
   57635             : static bool
   57636           0 : set_WebkitBackgroundSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57637             : {
   57638           0 :   binding_detail::FakeString arg0;
   57639           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57640           0 :     return false;
   57641             :   }
   57642           0 :   binding_detail::FastErrorResult rv;
   57643           0 :   self->SetWebkitBackgroundSize(NonNullHelper(Constify(arg0)), rv);
   57644           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57645           0 :     return false;
   57646             :   }
   57647           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57648             : 
   57649           0 :   return true;
   57650             : }
   57651             : 
   57652             : static const JSJitInfo WebkitBackgroundSize_getterinfo = {
   57653             :   { (JSJitGetterOp)get_WebkitBackgroundSize },
   57654             :   { prototypes::id::CSS2Properties },
   57655             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57656             :   JSJitInfo::Getter,
   57657             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57658             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57659             :   false,  /* isInfallible. False in setters. */
   57660             :   false,  /* isMovable.  Not relevant for setters. */
   57661             :   false, /* isEliminatable.  Not relevant for setters. */
   57662             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57663             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57664             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57665             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57666             : };
   57667             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57668             : static_assert(0 < 1, "There is no slot for us");
   57669             : static const JSJitInfo WebkitBackgroundSize_setterinfo = {
   57670             :   { (JSJitGetterOp)set_WebkitBackgroundSize },
   57671             :   { prototypes::id::CSS2Properties },
   57672             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57673             :   JSJitInfo::Setter,
   57674             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57675             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57676             :   false,  /* isInfallible. False in setters. */
   57677             :   false,  /* isMovable.  Not relevant for setters. */
   57678             :   false, /* isEliminatable.  Not relevant for setters. */
   57679             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57680             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57681             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57682             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57683             : };
   57684             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57685             : static_assert(0 < 1, "There is no slot for us");
   57686             : 
   57687             : static bool
   57688           0 : get_webkitBackgroundSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57689             : {
   57690           0 :   binding_detail::FastErrorResult rv;
   57691           0 :   DOMString result;
   57692           0 :   self->GetWebkitBackgroundSize(result, rv);
   57693           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57694           0 :     return false;
   57695             :   }
   57696           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57697           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57698           0 :     return false;
   57699             :   }
   57700           0 :   return true;
   57701             : }
   57702             : 
   57703             : static bool
   57704           0 : set_webkitBackgroundSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57705             : {
   57706           0 :   binding_detail::FakeString arg0;
   57707           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57708           0 :     return false;
   57709             :   }
   57710           0 :   binding_detail::FastErrorResult rv;
   57711           0 :   self->SetWebkitBackgroundSize(NonNullHelper(Constify(arg0)), rv);
   57712           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57713           0 :     return false;
   57714             :   }
   57715           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57716             : 
   57717           0 :   return true;
   57718             : }
   57719             : 
   57720             : static const JSJitInfo webkitBackgroundSize_getterinfo = {
   57721             :   { (JSJitGetterOp)get_webkitBackgroundSize },
   57722             :   { prototypes::id::CSS2Properties },
   57723             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57724             :   JSJitInfo::Getter,
   57725             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57726             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57727             :   false,  /* isInfallible. False in setters. */
   57728             :   false,  /* isMovable.  Not relevant for setters. */
   57729             :   false, /* isEliminatable.  Not relevant for setters. */
   57730             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57731             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57732             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57733             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57734             : };
   57735             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57736             : static_assert(0 < 1, "There is no slot for us");
   57737             : static const JSJitInfo webkitBackgroundSize_setterinfo = {
   57738             :   { (JSJitGetterOp)set_webkitBackgroundSize },
   57739             :   { prototypes::id::CSS2Properties },
   57740             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57741             :   JSJitInfo::Setter,
   57742             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57743             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57744             :   false,  /* isInfallible. False in setters. */
   57745             :   false,  /* isMovable.  Not relevant for setters. */
   57746             :   false, /* isEliminatable.  Not relevant for setters. */
   57747             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57748             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57749             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57750             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57751             : };
   57752             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57753             : static_assert(0 < 1, "There is no slot for us");
   57754             : 
   57755             : static bool
   57756           0 : get__webkit_background_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57757             : {
   57758           0 :   binding_detail::FastErrorResult rv;
   57759           0 :   DOMString result;
   57760           0 :   self->GetWebkitBackgroundSize(result, rv);
   57761           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57762           0 :     return false;
   57763             :   }
   57764           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57765           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57766           0 :     return false;
   57767             :   }
   57768           0 :   return true;
   57769             : }
   57770             : 
   57771             : static bool
   57772           0 : set__webkit_background_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57773             : {
   57774           0 :   binding_detail::FakeString arg0;
   57775           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57776           0 :     return false;
   57777             :   }
   57778           0 :   binding_detail::FastErrorResult rv;
   57779           0 :   self->SetWebkitBackgroundSize(NonNullHelper(Constify(arg0)), rv);
   57780           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57781           0 :     return false;
   57782             :   }
   57783           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57784             : 
   57785           0 :   return true;
   57786             : }
   57787             : 
   57788             : static const JSJitInfo _webkit_background_size_getterinfo = {
   57789             :   { (JSJitGetterOp)get__webkit_background_size },
   57790             :   { prototypes::id::CSS2Properties },
   57791             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57792             :   JSJitInfo::Getter,
   57793             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57794             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57795             :   false,  /* isInfallible. False in setters. */
   57796             :   false,  /* isMovable.  Not relevant for setters. */
   57797             :   false, /* isEliminatable.  Not relevant for setters. */
   57798             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57799             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57800             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57801             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57802             : };
   57803             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57804             : static_assert(0 < 1, "There is no slot for us");
   57805             : static const JSJitInfo _webkit_background_size_setterinfo = {
   57806             :   { (JSJitGetterOp)set__webkit_background_size },
   57807             :   { prototypes::id::CSS2Properties },
   57808             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57809             :   JSJitInfo::Setter,
   57810             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57811             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57812             :   false,  /* isInfallible. False in setters. */
   57813             :   false,  /* isMovable.  Not relevant for setters. */
   57814             :   false, /* isEliminatable.  Not relevant for setters. */
   57815             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57816             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57817             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57818             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57819             : };
   57820             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57821             : static_assert(0 < 1, "There is no slot for us");
   57822             : 
   57823             : static bool
   57824           0 : get_WebkitBorderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57825             : {
   57826           0 :   binding_detail::FastErrorResult rv;
   57827           0 :   DOMString result;
   57828           0 :   self->GetWebkitBorderImage(result, rv);
   57829           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57830           0 :     return false;
   57831             :   }
   57832           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57833           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57834           0 :     return false;
   57835             :   }
   57836           0 :   return true;
   57837             : }
   57838             : 
   57839             : static bool
   57840           0 : set_WebkitBorderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57841             : {
   57842           0 :   binding_detail::FakeString arg0;
   57843           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57844           0 :     return false;
   57845             :   }
   57846           0 :   binding_detail::FastErrorResult rv;
   57847           0 :   self->SetWebkitBorderImage(NonNullHelper(Constify(arg0)), rv);
   57848           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57849           0 :     return false;
   57850             :   }
   57851           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57852             : 
   57853           0 :   return true;
   57854             : }
   57855             : 
   57856             : static const JSJitInfo WebkitBorderImage_getterinfo = {
   57857             :   { (JSJitGetterOp)get_WebkitBorderImage },
   57858             :   { prototypes::id::CSS2Properties },
   57859             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57860             :   JSJitInfo::Getter,
   57861             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57862             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57863             :   false,  /* isInfallible. False in setters. */
   57864             :   false,  /* isMovable.  Not relevant for setters. */
   57865             :   false, /* isEliminatable.  Not relevant for setters. */
   57866             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57867             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57868             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57869             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57870             : };
   57871             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57872             : static_assert(0 < 1, "There is no slot for us");
   57873             : static const JSJitInfo WebkitBorderImage_setterinfo = {
   57874             :   { (JSJitGetterOp)set_WebkitBorderImage },
   57875             :   { prototypes::id::CSS2Properties },
   57876             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57877             :   JSJitInfo::Setter,
   57878             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57879             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57880             :   false,  /* isInfallible. False in setters. */
   57881             :   false,  /* isMovable.  Not relevant for setters. */
   57882             :   false, /* isEliminatable.  Not relevant for setters. */
   57883             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57884             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57885             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57886             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57887             : };
   57888             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57889             : static_assert(0 < 1, "There is no slot for us");
   57890             : 
   57891             : static bool
   57892           0 : get_webkitBorderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57893             : {
   57894           0 :   binding_detail::FastErrorResult rv;
   57895           0 :   DOMString result;
   57896           0 :   self->GetWebkitBorderImage(result, rv);
   57897           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57898           0 :     return false;
   57899             :   }
   57900           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57901           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57902           0 :     return false;
   57903             :   }
   57904           0 :   return true;
   57905             : }
   57906             : 
   57907             : static bool
   57908           0 : set_webkitBorderImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57909             : {
   57910           0 :   binding_detail::FakeString arg0;
   57911           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57912           0 :     return false;
   57913             :   }
   57914           0 :   binding_detail::FastErrorResult rv;
   57915           0 :   self->SetWebkitBorderImage(NonNullHelper(Constify(arg0)), rv);
   57916           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57917           0 :     return false;
   57918             :   }
   57919           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57920             : 
   57921           0 :   return true;
   57922             : }
   57923             : 
   57924             : static const JSJitInfo webkitBorderImage_getterinfo = {
   57925             :   { (JSJitGetterOp)get_webkitBorderImage },
   57926             :   { prototypes::id::CSS2Properties },
   57927             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57928             :   JSJitInfo::Getter,
   57929             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57930             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57931             :   false,  /* isInfallible. False in setters. */
   57932             :   false,  /* isMovable.  Not relevant for setters. */
   57933             :   false, /* isEliminatable.  Not relevant for setters. */
   57934             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57935             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57936             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57937             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57938             : };
   57939             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57940             : static_assert(0 < 1, "There is no slot for us");
   57941             : static const JSJitInfo webkitBorderImage_setterinfo = {
   57942             :   { (JSJitGetterOp)set_webkitBorderImage },
   57943             :   { prototypes::id::CSS2Properties },
   57944             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57945             :   JSJitInfo::Setter,
   57946             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57947             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   57948             :   false,  /* isInfallible. False in setters. */
   57949             :   false,  /* isMovable.  Not relevant for setters. */
   57950             :   false, /* isEliminatable.  Not relevant for setters. */
   57951             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   57952             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   57953             :   false,  /* isTypedMethod.  Only relevant for methods. */
   57954             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   57955             : };
   57956             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   57957             : static_assert(0 < 1, "There is no slot for us");
   57958             : 
   57959             : static bool
   57960           0 : get__webkit_border_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   57961             : {
   57962           0 :   binding_detail::FastErrorResult rv;
   57963           0 :   DOMString result;
   57964           0 :   self->GetWebkitBorderImage(result, rv);
   57965           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57966           0 :     return false;
   57967             :   }
   57968           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57969           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   57970           0 :     return false;
   57971             :   }
   57972           0 :   return true;
   57973             : }
   57974             : 
   57975             : static bool
   57976           0 : set__webkit_border_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   57977             : {
   57978           0 :   binding_detail::FakeString arg0;
   57979           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   57980           0 :     return false;
   57981             :   }
   57982           0 :   binding_detail::FastErrorResult rv;
   57983           0 :   self->SetWebkitBorderImage(NonNullHelper(Constify(arg0)), rv);
   57984           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   57985           0 :     return false;
   57986             :   }
   57987           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   57988             : 
   57989           0 :   return true;
   57990             : }
   57991             : 
   57992             : static const JSJitInfo _webkit_border_image_getterinfo = {
   57993             :   { (JSJitGetterOp)get__webkit_border_image },
   57994             :   { prototypes::id::CSS2Properties },
   57995             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   57996             :   JSJitInfo::Getter,
   57997             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   57998             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   57999             :   false,  /* isInfallible. False in setters. */
   58000             :   false,  /* isMovable.  Not relevant for setters. */
   58001             :   false, /* isEliminatable.  Not relevant for setters. */
   58002             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58003             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58004             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58005             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58006             : };
   58007             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58008             : static_assert(0 < 1, "There is no slot for us");
   58009             : static const JSJitInfo _webkit_border_image_setterinfo = {
   58010             :   { (JSJitGetterOp)set__webkit_border_image },
   58011             :   { prototypes::id::CSS2Properties },
   58012             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58013             :   JSJitInfo::Setter,
   58014             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58015             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58016             :   false,  /* isInfallible. False in setters. */
   58017             :   false,  /* isMovable.  Not relevant for setters. */
   58018             :   false, /* isEliminatable.  Not relevant for setters. */
   58019             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58020             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58021             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58022             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58023             : };
   58024             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58025             : static_assert(0 < 1, "There is no slot for us");
   58026             : 
   58027             : static bool
   58028           0 : get_WebkitBoxShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58029             : {
   58030           0 :   binding_detail::FastErrorResult rv;
   58031           0 :   DOMString result;
   58032           0 :   self->GetWebkitBoxShadow(result, rv);
   58033           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58034           0 :     return false;
   58035             :   }
   58036           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58037           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58038           0 :     return false;
   58039             :   }
   58040           0 :   return true;
   58041             : }
   58042             : 
   58043             : static bool
   58044           0 : set_WebkitBoxShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58045             : {
   58046           0 :   binding_detail::FakeString arg0;
   58047           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58048           0 :     return false;
   58049             :   }
   58050           0 :   binding_detail::FastErrorResult rv;
   58051           0 :   self->SetWebkitBoxShadow(NonNullHelper(Constify(arg0)), rv);
   58052           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58053           0 :     return false;
   58054             :   }
   58055           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58056             : 
   58057           0 :   return true;
   58058             : }
   58059             : 
   58060             : static const JSJitInfo WebkitBoxShadow_getterinfo = {
   58061             :   { (JSJitGetterOp)get_WebkitBoxShadow },
   58062             :   { prototypes::id::CSS2Properties },
   58063             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58064             :   JSJitInfo::Getter,
   58065             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58066             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58067             :   false,  /* isInfallible. False in setters. */
   58068             :   false,  /* isMovable.  Not relevant for setters. */
   58069             :   false, /* isEliminatable.  Not relevant for setters. */
   58070             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58071             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58072             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58073             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58074             : };
   58075             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58076             : static_assert(0 < 1, "There is no slot for us");
   58077             : static const JSJitInfo WebkitBoxShadow_setterinfo = {
   58078             :   { (JSJitGetterOp)set_WebkitBoxShadow },
   58079             :   { prototypes::id::CSS2Properties },
   58080             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58081             :   JSJitInfo::Setter,
   58082             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58083             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58084             :   false,  /* isInfallible. False in setters. */
   58085             :   false,  /* isMovable.  Not relevant for setters. */
   58086             :   false, /* isEliminatable.  Not relevant for setters. */
   58087             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58088             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58089             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58090             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58091             : };
   58092             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58093             : static_assert(0 < 1, "There is no slot for us");
   58094             : 
   58095             : static bool
   58096           0 : get_webkitBoxShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58097             : {
   58098           0 :   binding_detail::FastErrorResult rv;
   58099           0 :   DOMString result;
   58100           0 :   self->GetWebkitBoxShadow(result, rv);
   58101           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58102           0 :     return false;
   58103             :   }
   58104           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58105           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58106           0 :     return false;
   58107             :   }
   58108           0 :   return true;
   58109             : }
   58110             : 
   58111             : static bool
   58112           0 : set_webkitBoxShadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58113             : {
   58114           0 :   binding_detail::FakeString arg0;
   58115           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58116           0 :     return false;
   58117             :   }
   58118           0 :   binding_detail::FastErrorResult rv;
   58119           0 :   self->SetWebkitBoxShadow(NonNullHelper(Constify(arg0)), rv);
   58120           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58121           0 :     return false;
   58122             :   }
   58123           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58124             : 
   58125           0 :   return true;
   58126             : }
   58127             : 
   58128             : static const JSJitInfo webkitBoxShadow_getterinfo = {
   58129             :   { (JSJitGetterOp)get_webkitBoxShadow },
   58130             :   { prototypes::id::CSS2Properties },
   58131             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58132             :   JSJitInfo::Getter,
   58133             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58134             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58135             :   false,  /* isInfallible. False in setters. */
   58136             :   false,  /* isMovable.  Not relevant for setters. */
   58137             :   false, /* isEliminatable.  Not relevant for setters. */
   58138             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58139             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58140             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58141             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58142             : };
   58143             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58144             : static_assert(0 < 1, "There is no slot for us");
   58145             : static const JSJitInfo webkitBoxShadow_setterinfo = {
   58146             :   { (JSJitGetterOp)set_webkitBoxShadow },
   58147             :   { prototypes::id::CSS2Properties },
   58148             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58149             :   JSJitInfo::Setter,
   58150             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58151             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58152             :   false,  /* isInfallible. False in setters. */
   58153             :   false,  /* isMovable.  Not relevant for setters. */
   58154             :   false, /* isEliminatable.  Not relevant for setters. */
   58155             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58156             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58157             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58158             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58159             : };
   58160             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58161             : static_assert(0 < 1, "There is no slot for us");
   58162             : 
   58163             : static bool
   58164           0 : get__webkit_box_shadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58165             : {
   58166           0 :   binding_detail::FastErrorResult rv;
   58167           0 :   DOMString result;
   58168           0 :   self->GetWebkitBoxShadow(result, rv);
   58169           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58170           0 :     return false;
   58171             :   }
   58172           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58173           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58174           0 :     return false;
   58175             :   }
   58176           0 :   return true;
   58177             : }
   58178             : 
   58179             : static bool
   58180           0 : set__webkit_box_shadow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58181             : {
   58182           0 :   binding_detail::FakeString arg0;
   58183           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58184           0 :     return false;
   58185             :   }
   58186           0 :   binding_detail::FastErrorResult rv;
   58187           0 :   self->SetWebkitBoxShadow(NonNullHelper(Constify(arg0)), rv);
   58188           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58189           0 :     return false;
   58190             :   }
   58191           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58192             : 
   58193           0 :   return true;
   58194             : }
   58195             : 
   58196             : static const JSJitInfo _webkit_box_shadow_getterinfo = {
   58197             :   { (JSJitGetterOp)get__webkit_box_shadow },
   58198             :   { prototypes::id::CSS2Properties },
   58199             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58200             :   JSJitInfo::Getter,
   58201             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58202             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58203             :   false,  /* isInfallible. False in setters. */
   58204             :   false,  /* isMovable.  Not relevant for setters. */
   58205             :   false, /* isEliminatable.  Not relevant for setters. */
   58206             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58207             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58208             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58209             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58210             : };
   58211             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58212             : static_assert(0 < 1, "There is no slot for us");
   58213             : static const JSJitInfo _webkit_box_shadow_setterinfo = {
   58214             :   { (JSJitGetterOp)set__webkit_box_shadow },
   58215             :   { prototypes::id::CSS2Properties },
   58216             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58217             :   JSJitInfo::Setter,
   58218             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58219             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58220             :   false,  /* isInfallible. False in setters. */
   58221             :   false,  /* isMovable.  Not relevant for setters. */
   58222             :   false, /* isEliminatable.  Not relevant for setters. */
   58223             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58224             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58225             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58226             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58227             : };
   58228             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58229             : static_assert(0 < 1, "There is no slot for us");
   58230             : 
   58231             : static bool
   58232           0 : get_WebkitBoxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58233             : {
   58234           0 :   binding_detail::FastErrorResult rv;
   58235           0 :   DOMString result;
   58236           0 :   self->GetWebkitBoxSizing(result, rv);
   58237           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58238           0 :     return false;
   58239             :   }
   58240           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58241           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58242           0 :     return false;
   58243             :   }
   58244           0 :   return true;
   58245             : }
   58246             : 
   58247             : static bool
   58248           0 : set_WebkitBoxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58249             : {
   58250           0 :   binding_detail::FakeString arg0;
   58251           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58252           0 :     return false;
   58253             :   }
   58254           0 :   binding_detail::FastErrorResult rv;
   58255           0 :   self->SetWebkitBoxSizing(NonNullHelper(Constify(arg0)), rv);
   58256           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58257           0 :     return false;
   58258             :   }
   58259           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58260             : 
   58261           0 :   return true;
   58262             : }
   58263             : 
   58264             : static const JSJitInfo WebkitBoxSizing_getterinfo = {
   58265             :   { (JSJitGetterOp)get_WebkitBoxSizing },
   58266             :   { prototypes::id::CSS2Properties },
   58267             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58268             :   JSJitInfo::Getter,
   58269             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58270             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58271             :   false,  /* isInfallible. False in setters. */
   58272             :   false,  /* isMovable.  Not relevant for setters. */
   58273             :   false, /* isEliminatable.  Not relevant for setters. */
   58274             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58275             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58276             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58277             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58278             : };
   58279             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58280             : static_assert(0 < 1, "There is no slot for us");
   58281             : static const JSJitInfo WebkitBoxSizing_setterinfo = {
   58282             :   { (JSJitGetterOp)set_WebkitBoxSizing },
   58283             :   { prototypes::id::CSS2Properties },
   58284             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58285             :   JSJitInfo::Setter,
   58286             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58287             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58288             :   false,  /* isInfallible. False in setters. */
   58289             :   false,  /* isMovable.  Not relevant for setters. */
   58290             :   false, /* isEliminatable.  Not relevant for setters. */
   58291             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58292             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58293             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58294             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58295             : };
   58296             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58297             : static_assert(0 < 1, "There is no slot for us");
   58298             : 
   58299             : static bool
   58300           0 : get_webkitBoxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58301             : {
   58302           0 :   binding_detail::FastErrorResult rv;
   58303           0 :   DOMString result;
   58304           0 :   self->GetWebkitBoxSizing(result, rv);
   58305           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58306           0 :     return false;
   58307             :   }
   58308           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58309           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58310           0 :     return false;
   58311             :   }
   58312           0 :   return true;
   58313             : }
   58314             : 
   58315             : static bool
   58316           0 : set_webkitBoxSizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58317             : {
   58318           0 :   binding_detail::FakeString arg0;
   58319           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58320           0 :     return false;
   58321             :   }
   58322           0 :   binding_detail::FastErrorResult rv;
   58323           0 :   self->SetWebkitBoxSizing(NonNullHelper(Constify(arg0)), rv);
   58324           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58325           0 :     return false;
   58326             :   }
   58327           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58328             : 
   58329           0 :   return true;
   58330             : }
   58331             : 
   58332             : static const JSJitInfo webkitBoxSizing_getterinfo = {
   58333             :   { (JSJitGetterOp)get_webkitBoxSizing },
   58334             :   { prototypes::id::CSS2Properties },
   58335             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58336             :   JSJitInfo::Getter,
   58337             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58338             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58339             :   false,  /* isInfallible. False in setters. */
   58340             :   false,  /* isMovable.  Not relevant for setters. */
   58341             :   false, /* isEliminatable.  Not relevant for setters. */
   58342             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58343             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58344             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58345             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58346             : };
   58347             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58348             : static_assert(0 < 1, "There is no slot for us");
   58349             : static const JSJitInfo webkitBoxSizing_setterinfo = {
   58350             :   { (JSJitGetterOp)set_webkitBoxSizing },
   58351             :   { prototypes::id::CSS2Properties },
   58352             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58353             :   JSJitInfo::Setter,
   58354             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58355             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58356             :   false,  /* isInfallible. False in setters. */
   58357             :   false,  /* isMovable.  Not relevant for setters. */
   58358             :   false, /* isEliminatable.  Not relevant for setters. */
   58359             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58360             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58361             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58362             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58363             : };
   58364             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58365             : static_assert(0 < 1, "There is no slot for us");
   58366             : 
   58367             : static bool
   58368           0 : get__webkit_box_sizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58369             : {
   58370           0 :   binding_detail::FastErrorResult rv;
   58371           0 :   DOMString result;
   58372           0 :   self->GetWebkitBoxSizing(result, rv);
   58373           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58374           0 :     return false;
   58375             :   }
   58376           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58377           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58378           0 :     return false;
   58379             :   }
   58380           0 :   return true;
   58381             : }
   58382             : 
   58383             : static bool
   58384           0 : set__webkit_box_sizing(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58385             : {
   58386           0 :   binding_detail::FakeString arg0;
   58387           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58388           0 :     return false;
   58389             :   }
   58390           0 :   binding_detail::FastErrorResult rv;
   58391           0 :   self->SetWebkitBoxSizing(NonNullHelper(Constify(arg0)), rv);
   58392           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58393           0 :     return false;
   58394             :   }
   58395           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58396             : 
   58397           0 :   return true;
   58398             : }
   58399             : 
   58400             : static const JSJitInfo _webkit_box_sizing_getterinfo = {
   58401             :   { (JSJitGetterOp)get__webkit_box_sizing },
   58402             :   { prototypes::id::CSS2Properties },
   58403             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58404             :   JSJitInfo::Getter,
   58405             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58406             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58407             :   false,  /* isInfallible. False in setters. */
   58408             :   false,  /* isMovable.  Not relevant for setters. */
   58409             :   false, /* isEliminatable.  Not relevant for setters. */
   58410             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58411             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58412             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58413             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58414             : };
   58415             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58416             : static_assert(0 < 1, "There is no slot for us");
   58417             : static const JSJitInfo _webkit_box_sizing_setterinfo = {
   58418             :   { (JSJitGetterOp)set__webkit_box_sizing },
   58419             :   { prototypes::id::CSS2Properties },
   58420             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58421             :   JSJitInfo::Setter,
   58422             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58423             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58424             :   false,  /* isInfallible. False in setters. */
   58425             :   false,  /* isMovable.  Not relevant for setters. */
   58426             :   false, /* isEliminatable.  Not relevant for setters. */
   58427             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58428             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58429             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58430             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58431             : };
   58432             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58433             : static_assert(0 < 1, "There is no slot for us");
   58434             : 
   58435             : static bool
   58436           0 : get_WebkitBoxFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58437             : {
   58438           0 :   binding_detail::FastErrorResult rv;
   58439           0 :   DOMString result;
   58440           0 :   self->GetWebkitBoxFlex(result, rv);
   58441           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58442           0 :     return false;
   58443             :   }
   58444           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58445           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58446           0 :     return false;
   58447             :   }
   58448           0 :   return true;
   58449             : }
   58450             : 
   58451             : static bool
   58452           0 : set_WebkitBoxFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58453             : {
   58454           0 :   binding_detail::FakeString arg0;
   58455           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58456           0 :     return false;
   58457             :   }
   58458           0 :   binding_detail::FastErrorResult rv;
   58459           0 :   self->SetWebkitBoxFlex(NonNullHelper(Constify(arg0)), rv);
   58460           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58461           0 :     return false;
   58462             :   }
   58463           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58464             : 
   58465           0 :   return true;
   58466             : }
   58467             : 
   58468             : static const JSJitInfo WebkitBoxFlex_getterinfo = {
   58469             :   { (JSJitGetterOp)get_WebkitBoxFlex },
   58470             :   { prototypes::id::CSS2Properties },
   58471             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58472             :   JSJitInfo::Getter,
   58473             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58474             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58475             :   false,  /* isInfallible. False in setters. */
   58476             :   false,  /* isMovable.  Not relevant for setters. */
   58477             :   false, /* isEliminatable.  Not relevant for setters. */
   58478             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58479             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58480             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58481             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58482             : };
   58483             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58484             : static_assert(0 < 1, "There is no slot for us");
   58485             : static const JSJitInfo WebkitBoxFlex_setterinfo = {
   58486             :   { (JSJitGetterOp)set_WebkitBoxFlex },
   58487             :   { prototypes::id::CSS2Properties },
   58488             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58489             :   JSJitInfo::Setter,
   58490             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58491             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58492             :   false,  /* isInfallible. False in setters. */
   58493             :   false,  /* isMovable.  Not relevant for setters. */
   58494             :   false, /* isEliminatable.  Not relevant for setters. */
   58495             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58496             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58497             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58498             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58499             : };
   58500             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58501             : static_assert(0 < 1, "There is no slot for us");
   58502             : 
   58503             : static bool
   58504           0 : get_webkitBoxFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58505             : {
   58506           0 :   binding_detail::FastErrorResult rv;
   58507           0 :   DOMString result;
   58508           0 :   self->GetWebkitBoxFlex(result, rv);
   58509           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58510           0 :     return false;
   58511             :   }
   58512           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58513           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58514           0 :     return false;
   58515             :   }
   58516           0 :   return true;
   58517             : }
   58518             : 
   58519             : static bool
   58520           0 : set_webkitBoxFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58521             : {
   58522           0 :   binding_detail::FakeString arg0;
   58523           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58524           0 :     return false;
   58525             :   }
   58526           0 :   binding_detail::FastErrorResult rv;
   58527           0 :   self->SetWebkitBoxFlex(NonNullHelper(Constify(arg0)), rv);
   58528           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58529           0 :     return false;
   58530             :   }
   58531           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58532             : 
   58533           0 :   return true;
   58534             : }
   58535             : 
   58536             : static const JSJitInfo webkitBoxFlex_getterinfo = {
   58537             :   { (JSJitGetterOp)get_webkitBoxFlex },
   58538             :   { prototypes::id::CSS2Properties },
   58539             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58540             :   JSJitInfo::Getter,
   58541             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58542             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58543             :   false,  /* isInfallible. False in setters. */
   58544             :   false,  /* isMovable.  Not relevant for setters. */
   58545             :   false, /* isEliminatable.  Not relevant for setters. */
   58546             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58547             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58548             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58549             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58550             : };
   58551             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58552             : static_assert(0 < 1, "There is no slot for us");
   58553             : static const JSJitInfo webkitBoxFlex_setterinfo = {
   58554             :   { (JSJitGetterOp)set_webkitBoxFlex },
   58555             :   { prototypes::id::CSS2Properties },
   58556             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58557             :   JSJitInfo::Setter,
   58558             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58559             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58560             :   false,  /* isInfallible. False in setters. */
   58561             :   false,  /* isMovable.  Not relevant for setters. */
   58562             :   false, /* isEliminatable.  Not relevant for setters. */
   58563             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58564             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58565             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58566             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58567             : };
   58568             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58569             : static_assert(0 < 1, "There is no slot for us");
   58570             : 
   58571             : static bool
   58572           0 : get__webkit_box_flex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58573             : {
   58574           0 :   binding_detail::FastErrorResult rv;
   58575           0 :   DOMString result;
   58576           0 :   self->GetWebkitBoxFlex(result, rv);
   58577           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58578           0 :     return false;
   58579             :   }
   58580           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58581           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58582           0 :     return false;
   58583             :   }
   58584           0 :   return true;
   58585             : }
   58586             : 
   58587             : static bool
   58588           0 : set__webkit_box_flex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58589             : {
   58590           0 :   binding_detail::FakeString arg0;
   58591           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58592           0 :     return false;
   58593             :   }
   58594           0 :   binding_detail::FastErrorResult rv;
   58595           0 :   self->SetWebkitBoxFlex(NonNullHelper(Constify(arg0)), rv);
   58596           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58597           0 :     return false;
   58598             :   }
   58599           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58600             : 
   58601           0 :   return true;
   58602             : }
   58603             : 
   58604             : static const JSJitInfo _webkit_box_flex_getterinfo = {
   58605             :   { (JSJitGetterOp)get__webkit_box_flex },
   58606             :   { prototypes::id::CSS2Properties },
   58607             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58608             :   JSJitInfo::Getter,
   58609             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58610             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58611             :   false,  /* isInfallible. False in setters. */
   58612             :   false,  /* isMovable.  Not relevant for setters. */
   58613             :   false, /* isEliminatable.  Not relevant for setters. */
   58614             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58615             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58616             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58617             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58618             : };
   58619             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58620             : static_assert(0 < 1, "There is no slot for us");
   58621             : static const JSJitInfo _webkit_box_flex_setterinfo = {
   58622             :   { (JSJitGetterOp)set__webkit_box_flex },
   58623             :   { prototypes::id::CSS2Properties },
   58624             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58625             :   JSJitInfo::Setter,
   58626             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58627             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58628             :   false,  /* isInfallible. False in setters. */
   58629             :   false,  /* isMovable.  Not relevant for setters. */
   58630             :   false, /* isEliminatable.  Not relevant for setters. */
   58631             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58632             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58633             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58634             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58635             : };
   58636             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58637             : static_assert(0 < 1, "There is no slot for us");
   58638             : 
   58639             : static bool
   58640           0 : get_WebkitBoxOrdinalGroup(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58641             : {
   58642           0 :   binding_detail::FastErrorResult rv;
   58643           0 :   DOMString result;
   58644           0 :   self->GetWebkitBoxOrdinalGroup(result, rv);
   58645           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58646           0 :     return false;
   58647             :   }
   58648           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58649           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58650           0 :     return false;
   58651             :   }
   58652           0 :   return true;
   58653             : }
   58654             : 
   58655             : static bool
   58656           0 : set_WebkitBoxOrdinalGroup(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58657             : {
   58658           0 :   binding_detail::FakeString arg0;
   58659           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58660           0 :     return false;
   58661             :   }
   58662           0 :   binding_detail::FastErrorResult rv;
   58663           0 :   self->SetWebkitBoxOrdinalGroup(NonNullHelper(Constify(arg0)), rv);
   58664           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58665           0 :     return false;
   58666             :   }
   58667           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58668             : 
   58669           0 :   return true;
   58670             : }
   58671             : 
   58672             : static const JSJitInfo WebkitBoxOrdinalGroup_getterinfo = {
   58673             :   { (JSJitGetterOp)get_WebkitBoxOrdinalGroup },
   58674             :   { prototypes::id::CSS2Properties },
   58675             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58676             :   JSJitInfo::Getter,
   58677             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58678             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58679             :   false,  /* isInfallible. False in setters. */
   58680             :   false,  /* isMovable.  Not relevant for setters. */
   58681             :   false, /* isEliminatable.  Not relevant for setters. */
   58682             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58683             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58684             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58685             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58686             : };
   58687             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58688             : static_assert(0 < 1, "There is no slot for us");
   58689             : static const JSJitInfo WebkitBoxOrdinalGroup_setterinfo = {
   58690             :   { (JSJitGetterOp)set_WebkitBoxOrdinalGroup },
   58691             :   { prototypes::id::CSS2Properties },
   58692             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58693             :   JSJitInfo::Setter,
   58694             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58695             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58696             :   false,  /* isInfallible. False in setters. */
   58697             :   false,  /* isMovable.  Not relevant for setters. */
   58698             :   false, /* isEliminatable.  Not relevant for setters. */
   58699             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58700             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58701             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58702             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58703             : };
   58704             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58705             : static_assert(0 < 1, "There is no slot for us");
   58706             : 
   58707             : static bool
   58708           0 : get_webkitBoxOrdinalGroup(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58709             : {
   58710           0 :   binding_detail::FastErrorResult rv;
   58711           0 :   DOMString result;
   58712           0 :   self->GetWebkitBoxOrdinalGroup(result, rv);
   58713           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58714           0 :     return false;
   58715             :   }
   58716           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58717           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58718           0 :     return false;
   58719             :   }
   58720           0 :   return true;
   58721             : }
   58722             : 
   58723             : static bool
   58724           0 : set_webkitBoxOrdinalGroup(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58725             : {
   58726           0 :   binding_detail::FakeString arg0;
   58727           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58728           0 :     return false;
   58729             :   }
   58730           0 :   binding_detail::FastErrorResult rv;
   58731           0 :   self->SetWebkitBoxOrdinalGroup(NonNullHelper(Constify(arg0)), rv);
   58732           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58733           0 :     return false;
   58734             :   }
   58735           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58736             : 
   58737           0 :   return true;
   58738             : }
   58739             : 
   58740             : static const JSJitInfo webkitBoxOrdinalGroup_getterinfo = {
   58741             :   { (JSJitGetterOp)get_webkitBoxOrdinalGroup },
   58742             :   { prototypes::id::CSS2Properties },
   58743             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58744             :   JSJitInfo::Getter,
   58745             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58746             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58747             :   false,  /* isInfallible. False in setters. */
   58748             :   false,  /* isMovable.  Not relevant for setters. */
   58749             :   false, /* isEliminatable.  Not relevant for setters. */
   58750             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58751             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58752             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58753             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58754             : };
   58755             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58756             : static_assert(0 < 1, "There is no slot for us");
   58757             : static const JSJitInfo webkitBoxOrdinalGroup_setterinfo = {
   58758             :   { (JSJitGetterOp)set_webkitBoxOrdinalGroup },
   58759             :   { prototypes::id::CSS2Properties },
   58760             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58761             :   JSJitInfo::Setter,
   58762             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58763             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58764             :   false,  /* isInfallible. False in setters. */
   58765             :   false,  /* isMovable.  Not relevant for setters. */
   58766             :   false, /* isEliminatable.  Not relevant for setters. */
   58767             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58768             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58769             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58770             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58771             : };
   58772             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58773             : static_assert(0 < 1, "There is no slot for us");
   58774             : 
   58775             : static bool
   58776           0 : get__webkit_box_ordinal_group(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58777             : {
   58778           0 :   binding_detail::FastErrorResult rv;
   58779           0 :   DOMString result;
   58780           0 :   self->GetWebkitBoxOrdinalGroup(result, rv);
   58781           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58782           0 :     return false;
   58783             :   }
   58784           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58785           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58786           0 :     return false;
   58787             :   }
   58788           0 :   return true;
   58789             : }
   58790             : 
   58791             : static bool
   58792           0 : set__webkit_box_ordinal_group(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58793             : {
   58794           0 :   binding_detail::FakeString arg0;
   58795           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58796           0 :     return false;
   58797             :   }
   58798           0 :   binding_detail::FastErrorResult rv;
   58799           0 :   self->SetWebkitBoxOrdinalGroup(NonNullHelper(Constify(arg0)), rv);
   58800           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58801           0 :     return false;
   58802             :   }
   58803           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58804             : 
   58805           0 :   return true;
   58806             : }
   58807             : 
   58808             : static const JSJitInfo _webkit_box_ordinal_group_getterinfo = {
   58809             :   { (JSJitGetterOp)get__webkit_box_ordinal_group },
   58810             :   { prototypes::id::CSS2Properties },
   58811             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58812             :   JSJitInfo::Getter,
   58813             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58814             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58815             :   false,  /* isInfallible. False in setters. */
   58816             :   false,  /* isMovable.  Not relevant for setters. */
   58817             :   false, /* isEliminatable.  Not relevant for setters. */
   58818             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58819             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58820             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58821             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58822             : };
   58823             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58824             : static_assert(0 < 1, "There is no slot for us");
   58825             : static const JSJitInfo _webkit_box_ordinal_group_setterinfo = {
   58826             :   { (JSJitGetterOp)set__webkit_box_ordinal_group },
   58827             :   { prototypes::id::CSS2Properties },
   58828             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58829             :   JSJitInfo::Setter,
   58830             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58831             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58832             :   false,  /* isInfallible. False in setters. */
   58833             :   false,  /* isMovable.  Not relevant for setters. */
   58834             :   false, /* isEliminatable.  Not relevant for setters. */
   58835             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58836             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58837             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58838             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58839             : };
   58840             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58841             : static_assert(0 < 1, "There is no slot for us");
   58842             : 
   58843             : static bool
   58844           0 : get_WebkitBoxOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58845             : {
   58846           0 :   binding_detail::FastErrorResult rv;
   58847           0 :   DOMString result;
   58848           0 :   self->GetWebkitBoxOrient(result, rv);
   58849           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58850           0 :     return false;
   58851             :   }
   58852           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58853           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58854           0 :     return false;
   58855             :   }
   58856           0 :   return true;
   58857             : }
   58858             : 
   58859             : static bool
   58860           0 : set_WebkitBoxOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58861             : {
   58862           0 :   binding_detail::FakeString arg0;
   58863           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58864           0 :     return false;
   58865             :   }
   58866           0 :   binding_detail::FastErrorResult rv;
   58867           0 :   self->SetWebkitBoxOrient(NonNullHelper(Constify(arg0)), rv);
   58868           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58869           0 :     return false;
   58870             :   }
   58871           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58872             : 
   58873           0 :   return true;
   58874             : }
   58875             : 
   58876             : static const JSJitInfo WebkitBoxOrient_getterinfo = {
   58877             :   { (JSJitGetterOp)get_WebkitBoxOrient },
   58878             :   { prototypes::id::CSS2Properties },
   58879             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58880             :   JSJitInfo::Getter,
   58881             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58882             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58883             :   false,  /* isInfallible. False in setters. */
   58884             :   false,  /* isMovable.  Not relevant for setters. */
   58885             :   false, /* isEliminatable.  Not relevant for setters. */
   58886             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58887             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58888             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58889             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58890             : };
   58891             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58892             : static_assert(0 < 1, "There is no slot for us");
   58893             : static const JSJitInfo WebkitBoxOrient_setterinfo = {
   58894             :   { (JSJitGetterOp)set_WebkitBoxOrient },
   58895             :   { prototypes::id::CSS2Properties },
   58896             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58897             :   JSJitInfo::Setter,
   58898             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58899             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58900             :   false,  /* isInfallible. False in setters. */
   58901             :   false,  /* isMovable.  Not relevant for setters. */
   58902             :   false, /* isEliminatable.  Not relevant for setters. */
   58903             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58904             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58905             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58906             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58907             : };
   58908             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58909             : static_assert(0 < 1, "There is no slot for us");
   58910             : 
   58911             : static bool
   58912           0 : get_webkitBoxOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58913             : {
   58914           0 :   binding_detail::FastErrorResult rv;
   58915           0 :   DOMString result;
   58916           0 :   self->GetWebkitBoxOrient(result, rv);
   58917           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58918           0 :     return false;
   58919             :   }
   58920           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58921           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58922           0 :     return false;
   58923             :   }
   58924           0 :   return true;
   58925             : }
   58926             : 
   58927             : static bool
   58928           0 : set_webkitBoxOrient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58929             : {
   58930           0 :   binding_detail::FakeString arg0;
   58931           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   58932           0 :     return false;
   58933             :   }
   58934           0 :   binding_detail::FastErrorResult rv;
   58935           0 :   self->SetWebkitBoxOrient(NonNullHelper(Constify(arg0)), rv);
   58936           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58937           0 :     return false;
   58938             :   }
   58939           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58940             : 
   58941           0 :   return true;
   58942             : }
   58943             : 
   58944             : static const JSJitInfo webkitBoxOrient_getterinfo = {
   58945             :   { (JSJitGetterOp)get_webkitBoxOrient },
   58946             :   { prototypes::id::CSS2Properties },
   58947             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58948             :   JSJitInfo::Getter,
   58949             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58950             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   58951             :   false,  /* isInfallible. False in setters. */
   58952             :   false,  /* isMovable.  Not relevant for setters. */
   58953             :   false, /* isEliminatable.  Not relevant for setters. */
   58954             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58955             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58956             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58957             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58958             : };
   58959             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58960             : static_assert(0 < 1, "There is no slot for us");
   58961             : static const JSJitInfo webkitBoxOrient_setterinfo = {
   58962             :   { (JSJitGetterOp)set_webkitBoxOrient },
   58963             :   { prototypes::id::CSS2Properties },
   58964             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   58965             :   JSJitInfo::Setter,
   58966             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   58967             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   58968             :   false,  /* isInfallible. False in setters. */
   58969             :   false,  /* isMovable.  Not relevant for setters. */
   58970             :   false, /* isEliminatable.  Not relevant for setters. */
   58971             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   58972             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   58973             :   false,  /* isTypedMethod.  Only relevant for methods. */
   58974             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   58975             : };
   58976             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   58977             : static_assert(0 < 1, "There is no slot for us");
   58978             : 
   58979             : static bool
   58980           0 : get__webkit_box_orient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   58981             : {
   58982           0 :   binding_detail::FastErrorResult rv;
   58983           0 :   DOMString result;
   58984           0 :   self->GetWebkitBoxOrient(result, rv);
   58985           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   58986           0 :     return false;
   58987             :   }
   58988           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   58989           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   58990           0 :     return false;
   58991             :   }
   58992           0 :   return true;
   58993             : }
   58994             : 
   58995             : static bool
   58996           0 : set__webkit_box_orient(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   58997             : {
   58998           0 :   binding_detail::FakeString arg0;
   58999           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59000           0 :     return false;
   59001             :   }
   59002           0 :   binding_detail::FastErrorResult rv;
   59003           0 :   self->SetWebkitBoxOrient(NonNullHelper(Constify(arg0)), rv);
   59004           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59005           0 :     return false;
   59006             :   }
   59007           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59008             : 
   59009           0 :   return true;
   59010             : }
   59011             : 
   59012             : static const JSJitInfo _webkit_box_orient_getterinfo = {
   59013             :   { (JSJitGetterOp)get__webkit_box_orient },
   59014             :   { prototypes::id::CSS2Properties },
   59015             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59016             :   JSJitInfo::Getter,
   59017             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59018             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59019             :   false,  /* isInfallible. False in setters. */
   59020             :   false,  /* isMovable.  Not relevant for setters. */
   59021             :   false, /* isEliminatable.  Not relevant for setters. */
   59022             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59023             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59024             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59025             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59026             : };
   59027             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59028             : static_assert(0 < 1, "There is no slot for us");
   59029             : static const JSJitInfo _webkit_box_orient_setterinfo = {
   59030             :   { (JSJitGetterOp)set__webkit_box_orient },
   59031             :   { prototypes::id::CSS2Properties },
   59032             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59033             :   JSJitInfo::Setter,
   59034             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59035             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59036             :   false,  /* isInfallible. False in setters. */
   59037             :   false,  /* isMovable.  Not relevant for setters. */
   59038             :   false, /* isEliminatable.  Not relevant for setters. */
   59039             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59040             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59041             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59042             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59043             : };
   59044             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59045             : static_assert(0 < 1, "There is no slot for us");
   59046             : 
   59047             : static bool
   59048           0 : get_WebkitBoxDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59049             : {
   59050           0 :   binding_detail::FastErrorResult rv;
   59051           0 :   DOMString result;
   59052           0 :   self->GetWebkitBoxDirection(result, rv);
   59053           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59054           0 :     return false;
   59055             :   }
   59056           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59057           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59058           0 :     return false;
   59059             :   }
   59060           0 :   return true;
   59061             : }
   59062             : 
   59063             : static bool
   59064           0 : set_WebkitBoxDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59065             : {
   59066           0 :   binding_detail::FakeString arg0;
   59067           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59068           0 :     return false;
   59069             :   }
   59070           0 :   binding_detail::FastErrorResult rv;
   59071           0 :   self->SetWebkitBoxDirection(NonNullHelper(Constify(arg0)), rv);
   59072           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59073           0 :     return false;
   59074             :   }
   59075           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59076             : 
   59077           0 :   return true;
   59078             : }
   59079             : 
   59080             : static const JSJitInfo WebkitBoxDirection_getterinfo = {
   59081             :   { (JSJitGetterOp)get_WebkitBoxDirection },
   59082             :   { prototypes::id::CSS2Properties },
   59083             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59084             :   JSJitInfo::Getter,
   59085             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59086             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59087             :   false,  /* isInfallible. False in setters. */
   59088             :   false,  /* isMovable.  Not relevant for setters. */
   59089             :   false, /* isEliminatable.  Not relevant for setters. */
   59090             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59091             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59092             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59093             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59094             : };
   59095             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59096             : static_assert(0 < 1, "There is no slot for us");
   59097             : static const JSJitInfo WebkitBoxDirection_setterinfo = {
   59098             :   { (JSJitGetterOp)set_WebkitBoxDirection },
   59099             :   { prototypes::id::CSS2Properties },
   59100             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59101             :   JSJitInfo::Setter,
   59102             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59103             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59104             :   false,  /* isInfallible. False in setters. */
   59105             :   false,  /* isMovable.  Not relevant for setters. */
   59106             :   false, /* isEliminatable.  Not relevant for setters. */
   59107             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59108             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59109             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59110             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59111             : };
   59112             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59113             : static_assert(0 < 1, "There is no slot for us");
   59114             : 
   59115             : static bool
   59116           0 : get_webkitBoxDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59117             : {
   59118           0 :   binding_detail::FastErrorResult rv;
   59119           0 :   DOMString result;
   59120           0 :   self->GetWebkitBoxDirection(result, rv);
   59121           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59122           0 :     return false;
   59123             :   }
   59124           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59125           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59126           0 :     return false;
   59127             :   }
   59128           0 :   return true;
   59129             : }
   59130             : 
   59131             : static bool
   59132           0 : set_webkitBoxDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59133             : {
   59134           0 :   binding_detail::FakeString arg0;
   59135           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59136           0 :     return false;
   59137             :   }
   59138           0 :   binding_detail::FastErrorResult rv;
   59139           0 :   self->SetWebkitBoxDirection(NonNullHelper(Constify(arg0)), rv);
   59140           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59141           0 :     return false;
   59142             :   }
   59143           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59144             : 
   59145           0 :   return true;
   59146             : }
   59147             : 
   59148             : static const JSJitInfo webkitBoxDirection_getterinfo = {
   59149             :   { (JSJitGetterOp)get_webkitBoxDirection },
   59150             :   { prototypes::id::CSS2Properties },
   59151             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59152             :   JSJitInfo::Getter,
   59153             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59154             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59155             :   false,  /* isInfallible. False in setters. */
   59156             :   false,  /* isMovable.  Not relevant for setters. */
   59157             :   false, /* isEliminatable.  Not relevant for setters. */
   59158             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59159             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59160             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59161             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59162             : };
   59163             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59164             : static_assert(0 < 1, "There is no slot for us");
   59165             : static const JSJitInfo webkitBoxDirection_setterinfo = {
   59166             :   { (JSJitGetterOp)set_webkitBoxDirection },
   59167             :   { prototypes::id::CSS2Properties },
   59168             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59169             :   JSJitInfo::Setter,
   59170             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59171             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59172             :   false,  /* isInfallible. False in setters. */
   59173             :   false,  /* isMovable.  Not relevant for setters. */
   59174             :   false, /* isEliminatable.  Not relevant for setters. */
   59175             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59176             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59177             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59178             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59179             : };
   59180             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59181             : static_assert(0 < 1, "There is no slot for us");
   59182             : 
   59183             : static bool
   59184           0 : get__webkit_box_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59185             : {
   59186           0 :   binding_detail::FastErrorResult rv;
   59187           0 :   DOMString result;
   59188           0 :   self->GetWebkitBoxDirection(result, rv);
   59189           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59190           0 :     return false;
   59191             :   }
   59192           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59193           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59194           0 :     return false;
   59195             :   }
   59196           0 :   return true;
   59197             : }
   59198             : 
   59199             : static bool
   59200           0 : set__webkit_box_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59201             : {
   59202           0 :   binding_detail::FakeString arg0;
   59203           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59204           0 :     return false;
   59205             :   }
   59206           0 :   binding_detail::FastErrorResult rv;
   59207           0 :   self->SetWebkitBoxDirection(NonNullHelper(Constify(arg0)), rv);
   59208           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59209           0 :     return false;
   59210             :   }
   59211           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59212             : 
   59213           0 :   return true;
   59214             : }
   59215             : 
   59216             : static const JSJitInfo _webkit_box_direction_getterinfo = {
   59217             :   { (JSJitGetterOp)get__webkit_box_direction },
   59218             :   { prototypes::id::CSS2Properties },
   59219             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59220             :   JSJitInfo::Getter,
   59221             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59222             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59223             :   false,  /* isInfallible. False in setters. */
   59224             :   false,  /* isMovable.  Not relevant for setters. */
   59225             :   false, /* isEliminatable.  Not relevant for setters. */
   59226             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59227             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59228             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59229             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59230             : };
   59231             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59232             : static_assert(0 < 1, "There is no slot for us");
   59233             : static const JSJitInfo _webkit_box_direction_setterinfo = {
   59234             :   { (JSJitGetterOp)set__webkit_box_direction },
   59235             :   { prototypes::id::CSS2Properties },
   59236             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59237             :   JSJitInfo::Setter,
   59238             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59239             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59240             :   false,  /* isInfallible. False in setters. */
   59241             :   false,  /* isMovable.  Not relevant for setters. */
   59242             :   false, /* isEliminatable.  Not relevant for setters. */
   59243             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59244             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59245             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59246             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59247             : };
   59248             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59249             : static_assert(0 < 1, "There is no slot for us");
   59250             : 
   59251             : static bool
   59252           0 : get_WebkitBoxAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59253             : {
   59254           0 :   binding_detail::FastErrorResult rv;
   59255           0 :   DOMString result;
   59256           0 :   self->GetWebkitBoxAlign(result, rv);
   59257           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59258           0 :     return false;
   59259             :   }
   59260           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59261           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59262           0 :     return false;
   59263             :   }
   59264           0 :   return true;
   59265             : }
   59266             : 
   59267             : static bool
   59268           0 : set_WebkitBoxAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59269             : {
   59270           0 :   binding_detail::FakeString arg0;
   59271           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59272           0 :     return false;
   59273             :   }
   59274           0 :   binding_detail::FastErrorResult rv;
   59275           0 :   self->SetWebkitBoxAlign(NonNullHelper(Constify(arg0)), rv);
   59276           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59277           0 :     return false;
   59278             :   }
   59279           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59280             : 
   59281           0 :   return true;
   59282             : }
   59283             : 
   59284             : static const JSJitInfo WebkitBoxAlign_getterinfo = {
   59285             :   { (JSJitGetterOp)get_WebkitBoxAlign },
   59286             :   { prototypes::id::CSS2Properties },
   59287             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59288             :   JSJitInfo::Getter,
   59289             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59290             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59291             :   false,  /* isInfallible. False in setters. */
   59292             :   false,  /* isMovable.  Not relevant for setters. */
   59293             :   false, /* isEliminatable.  Not relevant for setters. */
   59294             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59295             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59296             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59297             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59298             : };
   59299             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59300             : static_assert(0 < 1, "There is no slot for us");
   59301             : static const JSJitInfo WebkitBoxAlign_setterinfo = {
   59302             :   { (JSJitGetterOp)set_WebkitBoxAlign },
   59303             :   { prototypes::id::CSS2Properties },
   59304             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59305             :   JSJitInfo::Setter,
   59306             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59307             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59308             :   false,  /* isInfallible. False in setters. */
   59309             :   false,  /* isMovable.  Not relevant for setters. */
   59310             :   false, /* isEliminatable.  Not relevant for setters. */
   59311             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59312             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59313             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59314             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59315             : };
   59316             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59317             : static_assert(0 < 1, "There is no slot for us");
   59318             : 
   59319             : static bool
   59320           0 : get_webkitBoxAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59321             : {
   59322           0 :   binding_detail::FastErrorResult rv;
   59323           0 :   DOMString result;
   59324           0 :   self->GetWebkitBoxAlign(result, rv);
   59325           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59326           0 :     return false;
   59327             :   }
   59328           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59329           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59330           0 :     return false;
   59331             :   }
   59332           0 :   return true;
   59333             : }
   59334             : 
   59335             : static bool
   59336           0 : set_webkitBoxAlign(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59337             : {
   59338           0 :   binding_detail::FakeString arg0;
   59339           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59340           0 :     return false;
   59341             :   }
   59342           0 :   binding_detail::FastErrorResult rv;
   59343           0 :   self->SetWebkitBoxAlign(NonNullHelper(Constify(arg0)), rv);
   59344           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59345           0 :     return false;
   59346             :   }
   59347           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59348             : 
   59349           0 :   return true;
   59350             : }
   59351             : 
   59352             : static const JSJitInfo webkitBoxAlign_getterinfo = {
   59353             :   { (JSJitGetterOp)get_webkitBoxAlign },
   59354             :   { prototypes::id::CSS2Properties },
   59355             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59356             :   JSJitInfo::Getter,
   59357             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59358             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59359             :   false,  /* isInfallible. False in setters. */
   59360             :   false,  /* isMovable.  Not relevant for setters. */
   59361             :   false, /* isEliminatable.  Not relevant for setters. */
   59362             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59363             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59364             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59365             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59366             : };
   59367             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59368             : static_assert(0 < 1, "There is no slot for us");
   59369             : static const JSJitInfo webkitBoxAlign_setterinfo = {
   59370             :   { (JSJitGetterOp)set_webkitBoxAlign },
   59371             :   { prototypes::id::CSS2Properties },
   59372             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59373             :   JSJitInfo::Setter,
   59374             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59375             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59376             :   false,  /* isInfallible. False in setters. */
   59377             :   false,  /* isMovable.  Not relevant for setters. */
   59378             :   false, /* isEliminatable.  Not relevant for setters. */
   59379             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59380             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59381             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59382             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59383             : };
   59384             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59385             : static_assert(0 < 1, "There is no slot for us");
   59386             : 
   59387             : static bool
   59388           0 : get__webkit_box_align(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59389             : {
   59390           0 :   binding_detail::FastErrorResult rv;
   59391           0 :   DOMString result;
   59392           0 :   self->GetWebkitBoxAlign(result, rv);
   59393           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59394           0 :     return false;
   59395             :   }
   59396           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59397           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59398           0 :     return false;
   59399             :   }
   59400           0 :   return true;
   59401             : }
   59402             : 
   59403             : static bool
   59404           0 : set__webkit_box_align(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59405             : {
   59406           0 :   binding_detail::FakeString arg0;
   59407           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59408           0 :     return false;
   59409             :   }
   59410           0 :   binding_detail::FastErrorResult rv;
   59411           0 :   self->SetWebkitBoxAlign(NonNullHelper(Constify(arg0)), rv);
   59412           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59413           0 :     return false;
   59414             :   }
   59415           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59416             : 
   59417           0 :   return true;
   59418             : }
   59419             : 
   59420             : static const JSJitInfo _webkit_box_align_getterinfo = {
   59421             :   { (JSJitGetterOp)get__webkit_box_align },
   59422             :   { prototypes::id::CSS2Properties },
   59423             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59424             :   JSJitInfo::Getter,
   59425             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59426             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59427             :   false,  /* isInfallible. False in setters. */
   59428             :   false,  /* isMovable.  Not relevant for setters. */
   59429             :   false, /* isEliminatable.  Not relevant for setters. */
   59430             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59431             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59432             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59433             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59434             : };
   59435             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59436             : static_assert(0 < 1, "There is no slot for us");
   59437             : static const JSJitInfo _webkit_box_align_setterinfo = {
   59438             :   { (JSJitGetterOp)set__webkit_box_align },
   59439             :   { prototypes::id::CSS2Properties },
   59440             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59441             :   JSJitInfo::Setter,
   59442             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59443             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59444             :   false,  /* isInfallible. False in setters. */
   59445             :   false,  /* isMovable.  Not relevant for setters. */
   59446             :   false, /* isEliminatable.  Not relevant for setters. */
   59447             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59448             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59449             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59450             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59451             : };
   59452             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59453             : static_assert(0 < 1, "There is no slot for us");
   59454             : 
   59455             : static bool
   59456           0 : get_WebkitBoxPack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59457             : {
   59458           0 :   binding_detail::FastErrorResult rv;
   59459           0 :   DOMString result;
   59460           0 :   self->GetWebkitBoxPack(result, rv);
   59461           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59462           0 :     return false;
   59463             :   }
   59464           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59465           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59466           0 :     return false;
   59467             :   }
   59468           0 :   return true;
   59469             : }
   59470             : 
   59471             : static bool
   59472           0 : set_WebkitBoxPack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59473             : {
   59474           0 :   binding_detail::FakeString arg0;
   59475           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59476           0 :     return false;
   59477             :   }
   59478           0 :   binding_detail::FastErrorResult rv;
   59479           0 :   self->SetWebkitBoxPack(NonNullHelper(Constify(arg0)), rv);
   59480           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59481           0 :     return false;
   59482             :   }
   59483           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59484             : 
   59485           0 :   return true;
   59486             : }
   59487             : 
   59488             : static const JSJitInfo WebkitBoxPack_getterinfo = {
   59489             :   { (JSJitGetterOp)get_WebkitBoxPack },
   59490             :   { prototypes::id::CSS2Properties },
   59491             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59492             :   JSJitInfo::Getter,
   59493             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59494             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59495             :   false,  /* isInfallible. False in setters. */
   59496             :   false,  /* isMovable.  Not relevant for setters. */
   59497             :   false, /* isEliminatable.  Not relevant for setters. */
   59498             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59499             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59500             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59501             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59502             : };
   59503             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59504             : static_assert(0 < 1, "There is no slot for us");
   59505             : static const JSJitInfo WebkitBoxPack_setterinfo = {
   59506             :   { (JSJitGetterOp)set_WebkitBoxPack },
   59507             :   { prototypes::id::CSS2Properties },
   59508             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59509             :   JSJitInfo::Setter,
   59510             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59511             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59512             :   false,  /* isInfallible. False in setters. */
   59513             :   false,  /* isMovable.  Not relevant for setters. */
   59514             :   false, /* isEliminatable.  Not relevant for setters. */
   59515             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59516             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59517             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59518             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59519             : };
   59520             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59521             : static_assert(0 < 1, "There is no slot for us");
   59522             : 
   59523             : static bool
   59524           0 : get_webkitBoxPack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59525             : {
   59526           0 :   binding_detail::FastErrorResult rv;
   59527           0 :   DOMString result;
   59528           0 :   self->GetWebkitBoxPack(result, rv);
   59529           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59530           0 :     return false;
   59531             :   }
   59532           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59533           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59534           0 :     return false;
   59535             :   }
   59536           0 :   return true;
   59537             : }
   59538             : 
   59539             : static bool
   59540           0 : set_webkitBoxPack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59541             : {
   59542           0 :   binding_detail::FakeString arg0;
   59543           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59544           0 :     return false;
   59545             :   }
   59546           0 :   binding_detail::FastErrorResult rv;
   59547           0 :   self->SetWebkitBoxPack(NonNullHelper(Constify(arg0)), rv);
   59548           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59549           0 :     return false;
   59550             :   }
   59551           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59552             : 
   59553           0 :   return true;
   59554             : }
   59555             : 
   59556             : static const JSJitInfo webkitBoxPack_getterinfo = {
   59557             :   { (JSJitGetterOp)get_webkitBoxPack },
   59558             :   { prototypes::id::CSS2Properties },
   59559             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59560             :   JSJitInfo::Getter,
   59561             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59562             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59563             :   false,  /* isInfallible. False in setters. */
   59564             :   false,  /* isMovable.  Not relevant for setters. */
   59565             :   false, /* isEliminatable.  Not relevant for setters. */
   59566             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59567             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59568             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59569             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59570             : };
   59571             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59572             : static_assert(0 < 1, "There is no slot for us");
   59573             : static const JSJitInfo webkitBoxPack_setterinfo = {
   59574             :   { (JSJitGetterOp)set_webkitBoxPack },
   59575             :   { prototypes::id::CSS2Properties },
   59576             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59577             :   JSJitInfo::Setter,
   59578             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59579             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59580             :   false,  /* isInfallible. False in setters. */
   59581             :   false,  /* isMovable.  Not relevant for setters. */
   59582             :   false, /* isEliminatable.  Not relevant for setters. */
   59583             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59584             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59585             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59586             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59587             : };
   59588             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59589             : static_assert(0 < 1, "There is no slot for us");
   59590             : 
   59591             : static bool
   59592           0 : get__webkit_box_pack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59593             : {
   59594           0 :   binding_detail::FastErrorResult rv;
   59595           0 :   DOMString result;
   59596           0 :   self->GetWebkitBoxPack(result, rv);
   59597           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59598           0 :     return false;
   59599             :   }
   59600           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59601           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59602           0 :     return false;
   59603             :   }
   59604           0 :   return true;
   59605             : }
   59606             : 
   59607             : static bool
   59608           0 : set__webkit_box_pack(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59609             : {
   59610           0 :   binding_detail::FakeString arg0;
   59611           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59612           0 :     return false;
   59613             :   }
   59614           0 :   binding_detail::FastErrorResult rv;
   59615           0 :   self->SetWebkitBoxPack(NonNullHelper(Constify(arg0)), rv);
   59616           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59617           0 :     return false;
   59618             :   }
   59619           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59620             : 
   59621           0 :   return true;
   59622             : }
   59623             : 
   59624             : static const JSJitInfo _webkit_box_pack_getterinfo = {
   59625             :   { (JSJitGetterOp)get__webkit_box_pack },
   59626             :   { prototypes::id::CSS2Properties },
   59627             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59628             :   JSJitInfo::Getter,
   59629             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59630             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59631             :   false,  /* isInfallible. False in setters. */
   59632             :   false,  /* isMovable.  Not relevant for setters. */
   59633             :   false, /* isEliminatable.  Not relevant for setters. */
   59634             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59635             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59636             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59637             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59638             : };
   59639             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59640             : static_assert(0 < 1, "There is no slot for us");
   59641             : static const JSJitInfo _webkit_box_pack_setterinfo = {
   59642             :   { (JSJitGetterOp)set__webkit_box_pack },
   59643             :   { prototypes::id::CSS2Properties },
   59644             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59645             :   JSJitInfo::Setter,
   59646             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59647             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59648             :   false,  /* isInfallible. False in setters. */
   59649             :   false,  /* isMovable.  Not relevant for setters. */
   59650             :   false, /* isEliminatable.  Not relevant for setters. */
   59651             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59652             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59653             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59654             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59655             : };
   59656             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59657             : static_assert(0 < 1, "There is no slot for us");
   59658             : 
   59659             : static bool
   59660           0 : get_WebkitFlexDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59661             : {
   59662           0 :   binding_detail::FastErrorResult rv;
   59663           0 :   DOMString result;
   59664           0 :   self->GetWebkitFlexDirection(result, rv);
   59665           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59666           0 :     return false;
   59667             :   }
   59668           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59669           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59670           0 :     return false;
   59671             :   }
   59672           0 :   return true;
   59673             : }
   59674             : 
   59675             : static bool
   59676           0 : set_WebkitFlexDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59677             : {
   59678           0 :   binding_detail::FakeString arg0;
   59679           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59680           0 :     return false;
   59681             :   }
   59682           0 :   binding_detail::FastErrorResult rv;
   59683           0 :   self->SetWebkitFlexDirection(NonNullHelper(Constify(arg0)), rv);
   59684           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59685           0 :     return false;
   59686             :   }
   59687           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59688             : 
   59689           0 :   return true;
   59690             : }
   59691             : 
   59692             : static const JSJitInfo WebkitFlexDirection_getterinfo = {
   59693             :   { (JSJitGetterOp)get_WebkitFlexDirection },
   59694             :   { prototypes::id::CSS2Properties },
   59695             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59696             :   JSJitInfo::Getter,
   59697             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59698             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59699             :   false,  /* isInfallible. False in setters. */
   59700             :   false,  /* isMovable.  Not relevant for setters. */
   59701             :   false, /* isEliminatable.  Not relevant for setters. */
   59702             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59703             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59704             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59705             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59706             : };
   59707             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59708             : static_assert(0 < 1, "There is no slot for us");
   59709             : static const JSJitInfo WebkitFlexDirection_setterinfo = {
   59710             :   { (JSJitGetterOp)set_WebkitFlexDirection },
   59711             :   { prototypes::id::CSS2Properties },
   59712             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59713             :   JSJitInfo::Setter,
   59714             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59715             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59716             :   false,  /* isInfallible. False in setters. */
   59717             :   false,  /* isMovable.  Not relevant for setters. */
   59718             :   false, /* isEliminatable.  Not relevant for setters. */
   59719             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59720             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59721             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59722             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59723             : };
   59724             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59725             : static_assert(0 < 1, "There is no slot for us");
   59726             : 
   59727             : static bool
   59728           0 : get_webkitFlexDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59729             : {
   59730           0 :   binding_detail::FastErrorResult rv;
   59731           0 :   DOMString result;
   59732           0 :   self->GetWebkitFlexDirection(result, rv);
   59733           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59734           0 :     return false;
   59735             :   }
   59736           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59737           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59738           0 :     return false;
   59739             :   }
   59740           0 :   return true;
   59741             : }
   59742             : 
   59743             : static bool
   59744           0 : set_webkitFlexDirection(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59745             : {
   59746           0 :   binding_detail::FakeString arg0;
   59747           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59748           0 :     return false;
   59749             :   }
   59750           0 :   binding_detail::FastErrorResult rv;
   59751           0 :   self->SetWebkitFlexDirection(NonNullHelper(Constify(arg0)), rv);
   59752           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59753           0 :     return false;
   59754             :   }
   59755           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59756             : 
   59757           0 :   return true;
   59758             : }
   59759             : 
   59760             : static const JSJitInfo webkitFlexDirection_getterinfo = {
   59761             :   { (JSJitGetterOp)get_webkitFlexDirection },
   59762             :   { prototypes::id::CSS2Properties },
   59763             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59764             :   JSJitInfo::Getter,
   59765             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59766             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59767             :   false,  /* isInfallible. False in setters. */
   59768             :   false,  /* isMovable.  Not relevant for setters. */
   59769             :   false, /* isEliminatable.  Not relevant for setters. */
   59770             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59771             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59772             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59773             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59774             : };
   59775             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59776             : static_assert(0 < 1, "There is no slot for us");
   59777             : static const JSJitInfo webkitFlexDirection_setterinfo = {
   59778             :   { (JSJitGetterOp)set_webkitFlexDirection },
   59779             :   { prototypes::id::CSS2Properties },
   59780             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59781             :   JSJitInfo::Setter,
   59782             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59783             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59784             :   false,  /* isInfallible. False in setters. */
   59785             :   false,  /* isMovable.  Not relevant for setters. */
   59786             :   false, /* isEliminatable.  Not relevant for setters. */
   59787             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59788             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59789             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59790             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59791             : };
   59792             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59793             : static_assert(0 < 1, "There is no slot for us");
   59794             : 
   59795             : static bool
   59796           0 : get__webkit_flex_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59797             : {
   59798           0 :   binding_detail::FastErrorResult rv;
   59799           0 :   DOMString result;
   59800           0 :   self->GetWebkitFlexDirection(result, rv);
   59801           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59802           0 :     return false;
   59803             :   }
   59804           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59805           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59806           0 :     return false;
   59807             :   }
   59808           0 :   return true;
   59809             : }
   59810             : 
   59811             : static bool
   59812           0 : set__webkit_flex_direction(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59813             : {
   59814           0 :   binding_detail::FakeString arg0;
   59815           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59816           0 :     return false;
   59817             :   }
   59818           0 :   binding_detail::FastErrorResult rv;
   59819           0 :   self->SetWebkitFlexDirection(NonNullHelper(Constify(arg0)), rv);
   59820           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59821           0 :     return false;
   59822             :   }
   59823           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59824             : 
   59825           0 :   return true;
   59826             : }
   59827             : 
   59828             : static const JSJitInfo _webkit_flex_direction_getterinfo = {
   59829             :   { (JSJitGetterOp)get__webkit_flex_direction },
   59830             :   { prototypes::id::CSS2Properties },
   59831             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59832             :   JSJitInfo::Getter,
   59833             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59834             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59835             :   false,  /* isInfallible. False in setters. */
   59836             :   false,  /* isMovable.  Not relevant for setters. */
   59837             :   false, /* isEliminatable.  Not relevant for setters. */
   59838             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59839             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59840             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59841             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59842             : };
   59843             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59844             : static_assert(0 < 1, "There is no slot for us");
   59845             : static const JSJitInfo _webkit_flex_direction_setterinfo = {
   59846             :   { (JSJitGetterOp)set__webkit_flex_direction },
   59847             :   { prototypes::id::CSS2Properties },
   59848             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59849             :   JSJitInfo::Setter,
   59850             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59851             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59852             :   false,  /* isInfallible. False in setters. */
   59853             :   false,  /* isMovable.  Not relevant for setters. */
   59854             :   false, /* isEliminatable.  Not relevant for setters. */
   59855             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59856             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59857             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59858             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59859             : };
   59860             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59861             : static_assert(0 < 1, "There is no slot for us");
   59862             : 
   59863             : static bool
   59864           0 : get_WebkitFlexWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59865             : {
   59866           0 :   binding_detail::FastErrorResult rv;
   59867           0 :   DOMString result;
   59868           0 :   self->GetWebkitFlexWrap(result, rv);
   59869           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59870           0 :     return false;
   59871             :   }
   59872           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59873           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59874           0 :     return false;
   59875             :   }
   59876           0 :   return true;
   59877             : }
   59878             : 
   59879             : static bool
   59880           0 : set_WebkitFlexWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59881             : {
   59882           0 :   binding_detail::FakeString arg0;
   59883           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59884           0 :     return false;
   59885             :   }
   59886           0 :   binding_detail::FastErrorResult rv;
   59887           0 :   self->SetWebkitFlexWrap(NonNullHelper(Constify(arg0)), rv);
   59888           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59889           0 :     return false;
   59890             :   }
   59891           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59892             : 
   59893           0 :   return true;
   59894             : }
   59895             : 
   59896             : static const JSJitInfo WebkitFlexWrap_getterinfo = {
   59897             :   { (JSJitGetterOp)get_WebkitFlexWrap },
   59898             :   { prototypes::id::CSS2Properties },
   59899             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59900             :   JSJitInfo::Getter,
   59901             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59902             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59903             :   false,  /* isInfallible. False in setters. */
   59904             :   false,  /* isMovable.  Not relevant for setters. */
   59905             :   false, /* isEliminatable.  Not relevant for setters. */
   59906             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59907             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59908             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59909             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59910             : };
   59911             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59912             : static_assert(0 < 1, "There is no slot for us");
   59913             : static const JSJitInfo WebkitFlexWrap_setterinfo = {
   59914             :   { (JSJitGetterOp)set_WebkitFlexWrap },
   59915             :   { prototypes::id::CSS2Properties },
   59916             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59917             :   JSJitInfo::Setter,
   59918             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59919             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59920             :   false,  /* isInfallible. False in setters. */
   59921             :   false,  /* isMovable.  Not relevant for setters. */
   59922             :   false, /* isEliminatable.  Not relevant for setters. */
   59923             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59924             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59925             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59926             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59927             : };
   59928             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59929             : static_assert(0 < 1, "There is no slot for us");
   59930             : 
   59931             : static bool
   59932           0 : get_webkitFlexWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   59933             : {
   59934           0 :   binding_detail::FastErrorResult rv;
   59935           0 :   DOMString result;
   59936           0 :   self->GetWebkitFlexWrap(result, rv);
   59937           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59938           0 :     return false;
   59939             :   }
   59940           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59941           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   59942           0 :     return false;
   59943             :   }
   59944           0 :   return true;
   59945             : }
   59946             : 
   59947             : static bool
   59948           0 : set_webkitFlexWrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   59949             : {
   59950           0 :   binding_detail::FakeString arg0;
   59951           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   59952           0 :     return false;
   59953             :   }
   59954           0 :   binding_detail::FastErrorResult rv;
   59955           0 :   self->SetWebkitFlexWrap(NonNullHelper(Constify(arg0)), rv);
   59956           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   59957           0 :     return false;
   59958             :   }
   59959           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   59960             : 
   59961           0 :   return true;
   59962             : }
   59963             : 
   59964             : static const JSJitInfo webkitFlexWrap_getterinfo = {
   59965             :   { (JSJitGetterOp)get_webkitFlexWrap },
   59966             :   { prototypes::id::CSS2Properties },
   59967             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59968             :   JSJitInfo::Getter,
   59969             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59970             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   59971             :   false,  /* isInfallible. False in setters. */
   59972             :   false,  /* isMovable.  Not relevant for setters. */
   59973             :   false, /* isEliminatable.  Not relevant for setters. */
   59974             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59975             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59976             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59977             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59978             : };
   59979             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59980             : static_assert(0 < 1, "There is no slot for us");
   59981             : static const JSJitInfo webkitFlexWrap_setterinfo = {
   59982             :   { (JSJitGetterOp)set_webkitFlexWrap },
   59983             :   { prototypes::id::CSS2Properties },
   59984             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   59985             :   JSJitInfo::Setter,
   59986             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   59987             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   59988             :   false,  /* isInfallible. False in setters. */
   59989             :   false,  /* isMovable.  Not relevant for setters. */
   59990             :   false, /* isEliminatable.  Not relevant for setters. */
   59991             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   59992             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   59993             :   false,  /* isTypedMethod.  Only relevant for methods. */
   59994             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   59995             : };
   59996             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   59997             : static_assert(0 < 1, "There is no slot for us");
   59998             : 
   59999             : static bool
   60000           0 : get__webkit_flex_wrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60001             : {
   60002           0 :   binding_detail::FastErrorResult rv;
   60003           0 :   DOMString result;
   60004           0 :   self->GetWebkitFlexWrap(result, rv);
   60005           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60006           0 :     return false;
   60007             :   }
   60008           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60009           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60010           0 :     return false;
   60011             :   }
   60012           0 :   return true;
   60013             : }
   60014             : 
   60015             : static bool
   60016           0 : set__webkit_flex_wrap(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60017             : {
   60018           0 :   binding_detail::FakeString arg0;
   60019           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60020           0 :     return false;
   60021             :   }
   60022           0 :   binding_detail::FastErrorResult rv;
   60023           0 :   self->SetWebkitFlexWrap(NonNullHelper(Constify(arg0)), rv);
   60024           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60025           0 :     return false;
   60026             :   }
   60027           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60028             : 
   60029           0 :   return true;
   60030             : }
   60031             : 
   60032             : static const JSJitInfo _webkit_flex_wrap_getterinfo = {
   60033             :   { (JSJitGetterOp)get__webkit_flex_wrap },
   60034             :   { prototypes::id::CSS2Properties },
   60035             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60036             :   JSJitInfo::Getter,
   60037             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60038             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60039             :   false,  /* isInfallible. False in setters. */
   60040             :   false,  /* isMovable.  Not relevant for setters. */
   60041             :   false, /* isEliminatable.  Not relevant for setters. */
   60042             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60043             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60044             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60045             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60046             : };
   60047             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60048             : static_assert(0 < 1, "There is no slot for us");
   60049             : static const JSJitInfo _webkit_flex_wrap_setterinfo = {
   60050             :   { (JSJitGetterOp)set__webkit_flex_wrap },
   60051             :   { prototypes::id::CSS2Properties },
   60052             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60053             :   JSJitInfo::Setter,
   60054             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60055             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60056             :   false,  /* isInfallible. False in setters. */
   60057             :   false,  /* isMovable.  Not relevant for setters. */
   60058             :   false, /* isEliminatable.  Not relevant for setters. */
   60059             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60060             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60061             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60062             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60063             : };
   60064             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60065             : static_assert(0 < 1, "There is no slot for us");
   60066             : 
   60067             : static bool
   60068           0 : get_WebkitFlexFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60069             : {
   60070           0 :   binding_detail::FastErrorResult rv;
   60071           0 :   DOMString result;
   60072           0 :   self->GetWebkitFlexFlow(result, rv);
   60073           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60074           0 :     return false;
   60075             :   }
   60076           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60077           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60078           0 :     return false;
   60079             :   }
   60080           0 :   return true;
   60081             : }
   60082             : 
   60083             : static bool
   60084           0 : set_WebkitFlexFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60085             : {
   60086           0 :   binding_detail::FakeString arg0;
   60087           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60088           0 :     return false;
   60089             :   }
   60090           0 :   binding_detail::FastErrorResult rv;
   60091           0 :   self->SetWebkitFlexFlow(NonNullHelper(Constify(arg0)), rv);
   60092           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60093           0 :     return false;
   60094             :   }
   60095           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60096             : 
   60097           0 :   return true;
   60098             : }
   60099             : 
   60100             : static const JSJitInfo WebkitFlexFlow_getterinfo = {
   60101             :   { (JSJitGetterOp)get_WebkitFlexFlow },
   60102             :   { prototypes::id::CSS2Properties },
   60103             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60104             :   JSJitInfo::Getter,
   60105             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60106             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60107             :   false,  /* isInfallible. False in setters. */
   60108             :   false,  /* isMovable.  Not relevant for setters. */
   60109             :   false, /* isEliminatable.  Not relevant for setters. */
   60110             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60111             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60112             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60113             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60114             : };
   60115             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60116             : static_assert(0 < 1, "There is no slot for us");
   60117             : static const JSJitInfo WebkitFlexFlow_setterinfo = {
   60118             :   { (JSJitGetterOp)set_WebkitFlexFlow },
   60119             :   { prototypes::id::CSS2Properties },
   60120             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60121             :   JSJitInfo::Setter,
   60122             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60123             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60124             :   false,  /* isInfallible. False in setters. */
   60125             :   false,  /* isMovable.  Not relevant for setters. */
   60126             :   false, /* isEliminatable.  Not relevant for setters. */
   60127             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60128             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60129             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60130             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60131             : };
   60132             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60133             : static_assert(0 < 1, "There is no slot for us");
   60134             : 
   60135             : static bool
   60136           0 : get_webkitFlexFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60137             : {
   60138           0 :   binding_detail::FastErrorResult rv;
   60139           0 :   DOMString result;
   60140           0 :   self->GetWebkitFlexFlow(result, rv);
   60141           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60142           0 :     return false;
   60143             :   }
   60144           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60145           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60146           0 :     return false;
   60147             :   }
   60148           0 :   return true;
   60149             : }
   60150             : 
   60151             : static bool
   60152           0 : set_webkitFlexFlow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60153             : {
   60154           0 :   binding_detail::FakeString arg0;
   60155           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60156           0 :     return false;
   60157             :   }
   60158           0 :   binding_detail::FastErrorResult rv;
   60159           0 :   self->SetWebkitFlexFlow(NonNullHelper(Constify(arg0)), rv);
   60160           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60161           0 :     return false;
   60162             :   }
   60163           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60164             : 
   60165           0 :   return true;
   60166             : }
   60167             : 
   60168             : static const JSJitInfo webkitFlexFlow_getterinfo = {
   60169             :   { (JSJitGetterOp)get_webkitFlexFlow },
   60170             :   { prototypes::id::CSS2Properties },
   60171             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60172             :   JSJitInfo::Getter,
   60173             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60174             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60175             :   false,  /* isInfallible. False in setters. */
   60176             :   false,  /* isMovable.  Not relevant for setters. */
   60177             :   false, /* isEliminatable.  Not relevant for setters. */
   60178             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60179             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60180             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60181             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60182             : };
   60183             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60184             : static_assert(0 < 1, "There is no slot for us");
   60185             : static const JSJitInfo webkitFlexFlow_setterinfo = {
   60186             :   { (JSJitGetterOp)set_webkitFlexFlow },
   60187             :   { prototypes::id::CSS2Properties },
   60188             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60189             :   JSJitInfo::Setter,
   60190             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60191             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60192             :   false,  /* isInfallible. False in setters. */
   60193             :   false,  /* isMovable.  Not relevant for setters. */
   60194             :   false, /* isEliminatable.  Not relevant for setters. */
   60195             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60196             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60197             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60198             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60199             : };
   60200             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60201             : static_assert(0 < 1, "There is no slot for us");
   60202             : 
   60203             : static bool
   60204           0 : get__webkit_flex_flow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60205             : {
   60206           0 :   binding_detail::FastErrorResult rv;
   60207           0 :   DOMString result;
   60208           0 :   self->GetWebkitFlexFlow(result, rv);
   60209           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60210           0 :     return false;
   60211             :   }
   60212           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60213           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60214           0 :     return false;
   60215             :   }
   60216           0 :   return true;
   60217             : }
   60218             : 
   60219             : static bool
   60220           0 : set__webkit_flex_flow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60221             : {
   60222           0 :   binding_detail::FakeString arg0;
   60223           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60224           0 :     return false;
   60225             :   }
   60226           0 :   binding_detail::FastErrorResult rv;
   60227           0 :   self->SetWebkitFlexFlow(NonNullHelper(Constify(arg0)), rv);
   60228           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60229           0 :     return false;
   60230             :   }
   60231           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60232             : 
   60233           0 :   return true;
   60234             : }
   60235             : 
   60236             : static const JSJitInfo _webkit_flex_flow_getterinfo = {
   60237             :   { (JSJitGetterOp)get__webkit_flex_flow },
   60238             :   { prototypes::id::CSS2Properties },
   60239             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60240             :   JSJitInfo::Getter,
   60241             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60242             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60243             :   false,  /* isInfallible. False in setters. */
   60244             :   false,  /* isMovable.  Not relevant for setters. */
   60245             :   false, /* isEliminatable.  Not relevant for setters. */
   60246             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60247             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60248             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60249             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60250             : };
   60251             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60252             : static_assert(0 < 1, "There is no slot for us");
   60253             : static const JSJitInfo _webkit_flex_flow_setterinfo = {
   60254             :   { (JSJitGetterOp)set__webkit_flex_flow },
   60255             :   { prototypes::id::CSS2Properties },
   60256             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60257             :   JSJitInfo::Setter,
   60258             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60259             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60260             :   false,  /* isInfallible. False in setters. */
   60261             :   false,  /* isMovable.  Not relevant for setters. */
   60262             :   false, /* isEliminatable.  Not relevant for setters. */
   60263             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60264             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60265             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60266             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60267             : };
   60268             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60269             : static_assert(0 < 1, "There is no slot for us");
   60270             : 
   60271             : static bool
   60272           0 : get_WebkitOrder(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60273             : {
   60274           0 :   binding_detail::FastErrorResult rv;
   60275           0 :   DOMString result;
   60276           0 :   self->GetWebkitOrder(result, rv);
   60277           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60278           0 :     return false;
   60279             :   }
   60280           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60281           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60282           0 :     return false;
   60283             :   }
   60284           0 :   return true;
   60285             : }
   60286             : 
   60287             : static bool
   60288           0 : set_WebkitOrder(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60289             : {
   60290           0 :   binding_detail::FakeString arg0;
   60291           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60292           0 :     return false;
   60293             :   }
   60294           0 :   binding_detail::FastErrorResult rv;
   60295           0 :   self->SetWebkitOrder(NonNullHelper(Constify(arg0)), rv);
   60296           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60297           0 :     return false;
   60298             :   }
   60299           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60300             : 
   60301           0 :   return true;
   60302             : }
   60303             : 
   60304             : static const JSJitInfo WebkitOrder_getterinfo = {
   60305             :   { (JSJitGetterOp)get_WebkitOrder },
   60306             :   { prototypes::id::CSS2Properties },
   60307             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60308             :   JSJitInfo::Getter,
   60309             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60310             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60311             :   false,  /* isInfallible. False in setters. */
   60312             :   false,  /* isMovable.  Not relevant for setters. */
   60313             :   false, /* isEliminatable.  Not relevant for setters. */
   60314             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60315             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60316             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60317             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60318             : };
   60319             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60320             : static_assert(0 < 1, "There is no slot for us");
   60321             : static const JSJitInfo WebkitOrder_setterinfo = {
   60322             :   { (JSJitGetterOp)set_WebkitOrder },
   60323             :   { prototypes::id::CSS2Properties },
   60324             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60325             :   JSJitInfo::Setter,
   60326             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60327             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60328             :   false,  /* isInfallible. False in setters. */
   60329             :   false,  /* isMovable.  Not relevant for setters. */
   60330             :   false, /* isEliminatable.  Not relevant for setters. */
   60331             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60332             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60333             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60334             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60335             : };
   60336             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60337             : static_assert(0 < 1, "There is no slot for us");
   60338             : 
   60339             : static bool
   60340           0 : get_webkitOrder(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60341             : {
   60342           0 :   binding_detail::FastErrorResult rv;
   60343           0 :   DOMString result;
   60344           0 :   self->GetWebkitOrder(result, rv);
   60345           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60346           0 :     return false;
   60347             :   }
   60348           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60349           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60350           0 :     return false;
   60351             :   }
   60352           0 :   return true;
   60353             : }
   60354             : 
   60355             : static bool
   60356           0 : set_webkitOrder(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60357             : {
   60358           0 :   binding_detail::FakeString arg0;
   60359           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60360           0 :     return false;
   60361             :   }
   60362           0 :   binding_detail::FastErrorResult rv;
   60363           0 :   self->SetWebkitOrder(NonNullHelper(Constify(arg0)), rv);
   60364           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60365           0 :     return false;
   60366             :   }
   60367           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60368             : 
   60369           0 :   return true;
   60370             : }
   60371             : 
   60372             : static const JSJitInfo webkitOrder_getterinfo = {
   60373             :   { (JSJitGetterOp)get_webkitOrder },
   60374             :   { prototypes::id::CSS2Properties },
   60375             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60376             :   JSJitInfo::Getter,
   60377             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60378             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60379             :   false,  /* isInfallible. False in setters. */
   60380             :   false,  /* isMovable.  Not relevant for setters. */
   60381             :   false, /* isEliminatable.  Not relevant for setters. */
   60382             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60383             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60384             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60385             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60386             : };
   60387             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60388             : static_assert(0 < 1, "There is no slot for us");
   60389             : static const JSJitInfo webkitOrder_setterinfo = {
   60390             :   { (JSJitGetterOp)set_webkitOrder },
   60391             :   { prototypes::id::CSS2Properties },
   60392             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60393             :   JSJitInfo::Setter,
   60394             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60395             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60396             :   false,  /* isInfallible. False in setters. */
   60397             :   false,  /* isMovable.  Not relevant for setters. */
   60398             :   false, /* isEliminatable.  Not relevant for setters. */
   60399             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60400             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60401             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60402             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60403             : };
   60404             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60405             : static_assert(0 < 1, "There is no slot for us");
   60406             : 
   60407             : static bool
   60408           0 : get__webkit_order(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60409             : {
   60410           0 :   binding_detail::FastErrorResult rv;
   60411           0 :   DOMString result;
   60412           0 :   self->GetWebkitOrder(result, rv);
   60413           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60414           0 :     return false;
   60415             :   }
   60416           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60417           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60418           0 :     return false;
   60419             :   }
   60420           0 :   return true;
   60421             : }
   60422             : 
   60423             : static bool
   60424           0 : set__webkit_order(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60425             : {
   60426           0 :   binding_detail::FakeString arg0;
   60427           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60428           0 :     return false;
   60429             :   }
   60430           0 :   binding_detail::FastErrorResult rv;
   60431           0 :   self->SetWebkitOrder(NonNullHelper(Constify(arg0)), rv);
   60432           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60433           0 :     return false;
   60434             :   }
   60435           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60436             : 
   60437           0 :   return true;
   60438             : }
   60439             : 
   60440             : static const JSJitInfo _webkit_order_getterinfo = {
   60441             :   { (JSJitGetterOp)get__webkit_order },
   60442             :   { prototypes::id::CSS2Properties },
   60443             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60444             :   JSJitInfo::Getter,
   60445             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60446             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60447             :   false,  /* isInfallible. False in setters. */
   60448             :   false,  /* isMovable.  Not relevant for setters. */
   60449             :   false, /* isEliminatable.  Not relevant for setters. */
   60450             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60451             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60452             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60453             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60454             : };
   60455             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60456             : static_assert(0 < 1, "There is no slot for us");
   60457             : static const JSJitInfo _webkit_order_setterinfo = {
   60458             :   { (JSJitGetterOp)set__webkit_order },
   60459             :   { prototypes::id::CSS2Properties },
   60460             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60461             :   JSJitInfo::Setter,
   60462             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60463             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60464             :   false,  /* isInfallible. False in setters. */
   60465             :   false,  /* isMovable.  Not relevant for setters. */
   60466             :   false, /* isEliminatable.  Not relevant for setters. */
   60467             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60468             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60469             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60470             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60471             : };
   60472             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60473             : static_assert(0 < 1, "There is no slot for us");
   60474             : 
   60475             : static bool
   60476           0 : get_WebkitFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60477             : {
   60478           0 :   binding_detail::FastErrorResult rv;
   60479           0 :   DOMString result;
   60480           0 :   self->GetWebkitFlex(result, rv);
   60481           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60482           0 :     return false;
   60483             :   }
   60484           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60485           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60486           0 :     return false;
   60487             :   }
   60488           0 :   return true;
   60489             : }
   60490             : 
   60491             : static bool
   60492           0 : set_WebkitFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60493             : {
   60494           0 :   binding_detail::FakeString arg0;
   60495           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60496           0 :     return false;
   60497             :   }
   60498           0 :   binding_detail::FastErrorResult rv;
   60499           0 :   self->SetWebkitFlex(NonNullHelper(Constify(arg0)), rv);
   60500           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60501           0 :     return false;
   60502             :   }
   60503           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60504             : 
   60505           0 :   return true;
   60506             : }
   60507             : 
   60508             : static const JSJitInfo WebkitFlex_getterinfo = {
   60509             :   { (JSJitGetterOp)get_WebkitFlex },
   60510             :   { prototypes::id::CSS2Properties },
   60511             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60512             :   JSJitInfo::Getter,
   60513             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60514             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60515             :   false,  /* isInfallible. False in setters. */
   60516             :   false,  /* isMovable.  Not relevant for setters. */
   60517             :   false, /* isEliminatable.  Not relevant for setters. */
   60518             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60519             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60520             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60521             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60522             : };
   60523             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60524             : static_assert(0 < 1, "There is no slot for us");
   60525             : static const JSJitInfo WebkitFlex_setterinfo = {
   60526             :   { (JSJitGetterOp)set_WebkitFlex },
   60527             :   { prototypes::id::CSS2Properties },
   60528             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60529             :   JSJitInfo::Setter,
   60530             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60531             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60532             :   false,  /* isInfallible. False in setters. */
   60533             :   false,  /* isMovable.  Not relevant for setters. */
   60534             :   false, /* isEliminatable.  Not relevant for setters. */
   60535             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60536             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60537             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60538             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60539             : };
   60540             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60541             : static_assert(0 < 1, "There is no slot for us");
   60542             : 
   60543             : static bool
   60544           0 : get_webkitFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60545             : {
   60546           0 :   binding_detail::FastErrorResult rv;
   60547           0 :   DOMString result;
   60548           0 :   self->GetWebkitFlex(result, rv);
   60549           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60550           0 :     return false;
   60551             :   }
   60552           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60553           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60554           0 :     return false;
   60555             :   }
   60556           0 :   return true;
   60557             : }
   60558             : 
   60559             : static bool
   60560           0 : set_webkitFlex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60561             : {
   60562           0 :   binding_detail::FakeString arg0;
   60563           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60564           0 :     return false;
   60565             :   }
   60566           0 :   binding_detail::FastErrorResult rv;
   60567           0 :   self->SetWebkitFlex(NonNullHelper(Constify(arg0)), rv);
   60568           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60569           0 :     return false;
   60570             :   }
   60571           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60572             : 
   60573           0 :   return true;
   60574             : }
   60575             : 
   60576             : static const JSJitInfo webkitFlex_getterinfo = {
   60577             :   { (JSJitGetterOp)get_webkitFlex },
   60578             :   { prototypes::id::CSS2Properties },
   60579             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60580             :   JSJitInfo::Getter,
   60581             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60582             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60583             :   false,  /* isInfallible. False in setters. */
   60584             :   false,  /* isMovable.  Not relevant for setters. */
   60585             :   false, /* isEliminatable.  Not relevant for setters. */
   60586             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60587             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60588             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60589             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60590             : };
   60591             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60592             : static_assert(0 < 1, "There is no slot for us");
   60593             : static const JSJitInfo webkitFlex_setterinfo = {
   60594             :   { (JSJitGetterOp)set_webkitFlex },
   60595             :   { prototypes::id::CSS2Properties },
   60596             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60597             :   JSJitInfo::Setter,
   60598             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60599             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60600             :   false,  /* isInfallible. False in setters. */
   60601             :   false,  /* isMovable.  Not relevant for setters. */
   60602             :   false, /* isEliminatable.  Not relevant for setters. */
   60603             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60604             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60605             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60606             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60607             : };
   60608             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60609             : static_assert(0 < 1, "There is no slot for us");
   60610             : 
   60611             : static bool
   60612           0 : get__webkit_flex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60613             : {
   60614           0 :   binding_detail::FastErrorResult rv;
   60615           0 :   DOMString result;
   60616           0 :   self->GetWebkitFlex(result, rv);
   60617           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60618           0 :     return false;
   60619             :   }
   60620           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60621           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60622           0 :     return false;
   60623             :   }
   60624           0 :   return true;
   60625             : }
   60626             : 
   60627             : static bool
   60628           0 : set__webkit_flex(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60629             : {
   60630           0 :   binding_detail::FakeString arg0;
   60631           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60632           0 :     return false;
   60633             :   }
   60634           0 :   binding_detail::FastErrorResult rv;
   60635           0 :   self->SetWebkitFlex(NonNullHelper(Constify(arg0)), rv);
   60636           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60637           0 :     return false;
   60638             :   }
   60639           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60640             : 
   60641           0 :   return true;
   60642             : }
   60643             : 
   60644             : static const JSJitInfo _webkit_flex_getterinfo = {
   60645             :   { (JSJitGetterOp)get__webkit_flex },
   60646             :   { prototypes::id::CSS2Properties },
   60647             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60648             :   JSJitInfo::Getter,
   60649             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60650             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60651             :   false,  /* isInfallible. False in setters. */
   60652             :   false,  /* isMovable.  Not relevant for setters. */
   60653             :   false, /* isEliminatable.  Not relevant for setters. */
   60654             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60655             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60656             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60657             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60658             : };
   60659             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60660             : static_assert(0 < 1, "There is no slot for us");
   60661             : static const JSJitInfo _webkit_flex_setterinfo = {
   60662             :   { (JSJitGetterOp)set__webkit_flex },
   60663             :   { prototypes::id::CSS2Properties },
   60664             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60665             :   JSJitInfo::Setter,
   60666             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60667             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60668             :   false,  /* isInfallible. False in setters. */
   60669             :   false,  /* isMovable.  Not relevant for setters. */
   60670             :   false, /* isEliminatable.  Not relevant for setters. */
   60671             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60672             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60673             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60674             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60675             : };
   60676             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60677             : static_assert(0 < 1, "There is no slot for us");
   60678             : 
   60679             : static bool
   60680           0 : get_WebkitFlexGrow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60681             : {
   60682           0 :   binding_detail::FastErrorResult rv;
   60683           0 :   DOMString result;
   60684           0 :   self->GetWebkitFlexGrow(result, rv);
   60685           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60686           0 :     return false;
   60687             :   }
   60688           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60689           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60690           0 :     return false;
   60691             :   }
   60692           0 :   return true;
   60693             : }
   60694             : 
   60695             : static bool
   60696           0 : set_WebkitFlexGrow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60697             : {
   60698           0 :   binding_detail::FakeString arg0;
   60699           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60700           0 :     return false;
   60701             :   }
   60702           0 :   binding_detail::FastErrorResult rv;
   60703           0 :   self->SetWebkitFlexGrow(NonNullHelper(Constify(arg0)), rv);
   60704           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60705           0 :     return false;
   60706             :   }
   60707           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60708             : 
   60709           0 :   return true;
   60710             : }
   60711             : 
   60712             : static const JSJitInfo WebkitFlexGrow_getterinfo = {
   60713             :   { (JSJitGetterOp)get_WebkitFlexGrow },
   60714             :   { prototypes::id::CSS2Properties },
   60715             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60716             :   JSJitInfo::Getter,
   60717             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60718             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60719             :   false,  /* isInfallible. False in setters. */
   60720             :   false,  /* isMovable.  Not relevant for setters. */
   60721             :   false, /* isEliminatable.  Not relevant for setters. */
   60722             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60723             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60724             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60725             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60726             : };
   60727             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60728             : static_assert(0 < 1, "There is no slot for us");
   60729             : static const JSJitInfo WebkitFlexGrow_setterinfo = {
   60730             :   { (JSJitGetterOp)set_WebkitFlexGrow },
   60731             :   { prototypes::id::CSS2Properties },
   60732             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60733             :   JSJitInfo::Setter,
   60734             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60735             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60736             :   false,  /* isInfallible. False in setters. */
   60737             :   false,  /* isMovable.  Not relevant for setters. */
   60738             :   false, /* isEliminatable.  Not relevant for setters. */
   60739             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60740             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60741             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60742             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60743             : };
   60744             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60745             : static_assert(0 < 1, "There is no slot for us");
   60746             : 
   60747             : static bool
   60748           0 : get_webkitFlexGrow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60749             : {
   60750           0 :   binding_detail::FastErrorResult rv;
   60751           0 :   DOMString result;
   60752           0 :   self->GetWebkitFlexGrow(result, rv);
   60753           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60754           0 :     return false;
   60755             :   }
   60756           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60757           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60758           0 :     return false;
   60759             :   }
   60760           0 :   return true;
   60761             : }
   60762             : 
   60763             : static bool
   60764           0 : set_webkitFlexGrow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60765             : {
   60766           0 :   binding_detail::FakeString arg0;
   60767           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60768           0 :     return false;
   60769             :   }
   60770           0 :   binding_detail::FastErrorResult rv;
   60771           0 :   self->SetWebkitFlexGrow(NonNullHelper(Constify(arg0)), rv);
   60772           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60773           0 :     return false;
   60774             :   }
   60775           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60776             : 
   60777           0 :   return true;
   60778             : }
   60779             : 
   60780             : static const JSJitInfo webkitFlexGrow_getterinfo = {
   60781             :   { (JSJitGetterOp)get_webkitFlexGrow },
   60782             :   { prototypes::id::CSS2Properties },
   60783             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60784             :   JSJitInfo::Getter,
   60785             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60786             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60787             :   false,  /* isInfallible. False in setters. */
   60788             :   false,  /* isMovable.  Not relevant for setters. */
   60789             :   false, /* isEliminatable.  Not relevant for setters. */
   60790             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60791             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60792             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60793             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60794             : };
   60795             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60796             : static_assert(0 < 1, "There is no slot for us");
   60797             : static const JSJitInfo webkitFlexGrow_setterinfo = {
   60798             :   { (JSJitGetterOp)set_webkitFlexGrow },
   60799             :   { prototypes::id::CSS2Properties },
   60800             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60801             :   JSJitInfo::Setter,
   60802             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60803             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60804             :   false,  /* isInfallible. False in setters. */
   60805             :   false,  /* isMovable.  Not relevant for setters. */
   60806             :   false, /* isEliminatable.  Not relevant for setters. */
   60807             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60808             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60809             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60810             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60811             : };
   60812             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60813             : static_assert(0 < 1, "There is no slot for us");
   60814             : 
   60815             : static bool
   60816           0 : get__webkit_flex_grow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60817             : {
   60818           0 :   binding_detail::FastErrorResult rv;
   60819           0 :   DOMString result;
   60820           0 :   self->GetWebkitFlexGrow(result, rv);
   60821           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60822           0 :     return false;
   60823             :   }
   60824           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60825           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60826           0 :     return false;
   60827             :   }
   60828           0 :   return true;
   60829             : }
   60830             : 
   60831             : static bool
   60832           0 : set__webkit_flex_grow(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60833             : {
   60834           0 :   binding_detail::FakeString arg0;
   60835           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60836           0 :     return false;
   60837             :   }
   60838           0 :   binding_detail::FastErrorResult rv;
   60839           0 :   self->SetWebkitFlexGrow(NonNullHelper(Constify(arg0)), rv);
   60840           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60841           0 :     return false;
   60842             :   }
   60843           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60844             : 
   60845           0 :   return true;
   60846             : }
   60847             : 
   60848             : static const JSJitInfo _webkit_flex_grow_getterinfo = {
   60849             :   { (JSJitGetterOp)get__webkit_flex_grow },
   60850             :   { prototypes::id::CSS2Properties },
   60851             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60852             :   JSJitInfo::Getter,
   60853             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60854             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60855             :   false,  /* isInfallible. False in setters. */
   60856             :   false,  /* isMovable.  Not relevant for setters. */
   60857             :   false, /* isEliminatable.  Not relevant for setters. */
   60858             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60859             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60860             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60861             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60862             : };
   60863             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60864             : static_assert(0 < 1, "There is no slot for us");
   60865             : static const JSJitInfo _webkit_flex_grow_setterinfo = {
   60866             :   { (JSJitGetterOp)set__webkit_flex_grow },
   60867             :   { prototypes::id::CSS2Properties },
   60868             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60869             :   JSJitInfo::Setter,
   60870             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60871             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60872             :   false,  /* isInfallible. False in setters. */
   60873             :   false,  /* isMovable.  Not relevant for setters. */
   60874             :   false, /* isEliminatable.  Not relevant for setters. */
   60875             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60876             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60877             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60878             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60879             : };
   60880             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60881             : static_assert(0 < 1, "There is no slot for us");
   60882             : 
   60883             : static bool
   60884           0 : get_WebkitFlexShrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60885             : {
   60886           0 :   binding_detail::FastErrorResult rv;
   60887           0 :   DOMString result;
   60888           0 :   self->GetWebkitFlexShrink(result, rv);
   60889           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60890           0 :     return false;
   60891             :   }
   60892           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60893           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60894           0 :     return false;
   60895             :   }
   60896           0 :   return true;
   60897             : }
   60898             : 
   60899             : static bool
   60900           0 : set_WebkitFlexShrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60901             : {
   60902           0 :   binding_detail::FakeString arg0;
   60903           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60904           0 :     return false;
   60905             :   }
   60906           0 :   binding_detail::FastErrorResult rv;
   60907           0 :   self->SetWebkitFlexShrink(NonNullHelper(Constify(arg0)), rv);
   60908           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60909           0 :     return false;
   60910             :   }
   60911           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60912             : 
   60913           0 :   return true;
   60914             : }
   60915             : 
   60916             : static const JSJitInfo WebkitFlexShrink_getterinfo = {
   60917             :   { (JSJitGetterOp)get_WebkitFlexShrink },
   60918             :   { prototypes::id::CSS2Properties },
   60919             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60920             :   JSJitInfo::Getter,
   60921             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60922             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60923             :   false,  /* isInfallible. False in setters. */
   60924             :   false,  /* isMovable.  Not relevant for setters. */
   60925             :   false, /* isEliminatable.  Not relevant for setters. */
   60926             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60927             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60928             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60929             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60930             : };
   60931             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60932             : static_assert(0 < 1, "There is no slot for us");
   60933             : static const JSJitInfo WebkitFlexShrink_setterinfo = {
   60934             :   { (JSJitGetterOp)set_WebkitFlexShrink },
   60935             :   { prototypes::id::CSS2Properties },
   60936             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60937             :   JSJitInfo::Setter,
   60938             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60939             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   60940             :   false,  /* isInfallible. False in setters. */
   60941             :   false,  /* isMovable.  Not relevant for setters. */
   60942             :   false, /* isEliminatable.  Not relevant for setters. */
   60943             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60944             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60945             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60946             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60947             : };
   60948             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   60949             : static_assert(0 < 1, "There is no slot for us");
   60950             : 
   60951             : static bool
   60952           0 : get_webkitFlexShrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   60953             : {
   60954           0 :   binding_detail::FastErrorResult rv;
   60955           0 :   DOMString result;
   60956           0 :   self->GetWebkitFlexShrink(result, rv);
   60957           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60958           0 :     return false;
   60959             :   }
   60960           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60961           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   60962           0 :     return false;
   60963             :   }
   60964           0 :   return true;
   60965             : }
   60966             : 
   60967             : static bool
   60968           0 : set_webkitFlexShrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   60969             : {
   60970           0 :   binding_detail::FakeString arg0;
   60971           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   60972           0 :     return false;
   60973             :   }
   60974           0 :   binding_detail::FastErrorResult rv;
   60975           0 :   self->SetWebkitFlexShrink(NonNullHelper(Constify(arg0)), rv);
   60976           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   60977           0 :     return false;
   60978             :   }
   60979           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   60980             : 
   60981           0 :   return true;
   60982             : }
   60983             : 
   60984             : static const JSJitInfo webkitFlexShrink_getterinfo = {
   60985             :   { (JSJitGetterOp)get_webkitFlexShrink },
   60986             :   { prototypes::id::CSS2Properties },
   60987             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   60988             :   JSJitInfo::Getter,
   60989             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   60990             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   60991             :   false,  /* isInfallible. False in setters. */
   60992             :   false,  /* isMovable.  Not relevant for setters. */
   60993             :   false, /* isEliminatable.  Not relevant for setters. */
   60994             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   60995             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   60996             :   false,  /* isTypedMethod.  Only relevant for methods. */
   60997             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   60998             : };
   60999             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61000             : static_assert(0 < 1, "There is no slot for us");
   61001             : static const JSJitInfo webkitFlexShrink_setterinfo = {
   61002             :   { (JSJitGetterOp)set_webkitFlexShrink },
   61003             :   { prototypes::id::CSS2Properties },
   61004             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61005             :   JSJitInfo::Setter,
   61006             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61007             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61008             :   false,  /* isInfallible. False in setters. */
   61009             :   false,  /* isMovable.  Not relevant for setters. */
   61010             :   false, /* isEliminatable.  Not relevant for setters. */
   61011             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61012             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61013             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61014             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61015             : };
   61016             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61017             : static_assert(0 < 1, "There is no slot for us");
   61018             : 
   61019             : static bool
   61020           0 : get__webkit_flex_shrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61021             : {
   61022           0 :   binding_detail::FastErrorResult rv;
   61023           0 :   DOMString result;
   61024           0 :   self->GetWebkitFlexShrink(result, rv);
   61025           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61026           0 :     return false;
   61027             :   }
   61028           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61029           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61030           0 :     return false;
   61031             :   }
   61032           0 :   return true;
   61033             : }
   61034             : 
   61035             : static bool
   61036           0 : set__webkit_flex_shrink(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61037             : {
   61038           0 :   binding_detail::FakeString arg0;
   61039           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61040           0 :     return false;
   61041             :   }
   61042           0 :   binding_detail::FastErrorResult rv;
   61043           0 :   self->SetWebkitFlexShrink(NonNullHelper(Constify(arg0)), rv);
   61044           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61045           0 :     return false;
   61046             :   }
   61047           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61048             : 
   61049           0 :   return true;
   61050             : }
   61051             : 
   61052             : static const JSJitInfo _webkit_flex_shrink_getterinfo = {
   61053             :   { (JSJitGetterOp)get__webkit_flex_shrink },
   61054             :   { prototypes::id::CSS2Properties },
   61055             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61056             :   JSJitInfo::Getter,
   61057             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61058             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61059             :   false,  /* isInfallible. False in setters. */
   61060             :   false,  /* isMovable.  Not relevant for setters. */
   61061             :   false, /* isEliminatable.  Not relevant for setters. */
   61062             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61063             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61064             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61065             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61066             : };
   61067             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61068             : static_assert(0 < 1, "There is no slot for us");
   61069             : static const JSJitInfo _webkit_flex_shrink_setterinfo = {
   61070             :   { (JSJitGetterOp)set__webkit_flex_shrink },
   61071             :   { prototypes::id::CSS2Properties },
   61072             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61073             :   JSJitInfo::Setter,
   61074             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61075             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61076             :   false,  /* isInfallible. False in setters. */
   61077             :   false,  /* isMovable.  Not relevant for setters. */
   61078             :   false, /* isEliminatable.  Not relevant for setters. */
   61079             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61080             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61081             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61082             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61083             : };
   61084             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61085             : static_assert(0 < 1, "There is no slot for us");
   61086             : 
   61087             : static bool
   61088           0 : get_WebkitFlexBasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61089             : {
   61090           0 :   binding_detail::FastErrorResult rv;
   61091           0 :   DOMString result;
   61092           0 :   self->GetWebkitFlexBasis(result, rv);
   61093           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61094           0 :     return false;
   61095             :   }
   61096           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61097           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61098           0 :     return false;
   61099             :   }
   61100           0 :   return true;
   61101             : }
   61102             : 
   61103             : static bool
   61104           0 : set_WebkitFlexBasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61105             : {
   61106           0 :   binding_detail::FakeString arg0;
   61107           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61108           0 :     return false;
   61109             :   }
   61110           0 :   binding_detail::FastErrorResult rv;
   61111           0 :   self->SetWebkitFlexBasis(NonNullHelper(Constify(arg0)), rv);
   61112           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61113           0 :     return false;
   61114             :   }
   61115           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61116             : 
   61117           0 :   return true;
   61118             : }
   61119             : 
   61120             : static const JSJitInfo WebkitFlexBasis_getterinfo = {
   61121             :   { (JSJitGetterOp)get_WebkitFlexBasis },
   61122             :   { prototypes::id::CSS2Properties },
   61123             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61124             :   JSJitInfo::Getter,
   61125             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61126             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61127             :   false,  /* isInfallible. False in setters. */
   61128             :   false,  /* isMovable.  Not relevant for setters. */
   61129             :   false, /* isEliminatable.  Not relevant for setters. */
   61130             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61131             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61132             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61133             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61134             : };
   61135             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61136             : static_assert(0 < 1, "There is no slot for us");
   61137             : static const JSJitInfo WebkitFlexBasis_setterinfo = {
   61138             :   { (JSJitGetterOp)set_WebkitFlexBasis },
   61139             :   { prototypes::id::CSS2Properties },
   61140             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61141             :   JSJitInfo::Setter,
   61142             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61143             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61144             :   false,  /* isInfallible. False in setters. */
   61145             :   false,  /* isMovable.  Not relevant for setters. */
   61146             :   false, /* isEliminatable.  Not relevant for setters. */
   61147             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61148             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61149             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61150             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61151             : };
   61152             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61153             : static_assert(0 < 1, "There is no slot for us");
   61154             : 
   61155             : static bool
   61156           0 : get_webkitFlexBasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61157             : {
   61158           0 :   binding_detail::FastErrorResult rv;
   61159           0 :   DOMString result;
   61160           0 :   self->GetWebkitFlexBasis(result, rv);
   61161           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61162           0 :     return false;
   61163             :   }
   61164           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61165           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61166           0 :     return false;
   61167             :   }
   61168           0 :   return true;
   61169             : }
   61170             : 
   61171             : static bool
   61172           0 : set_webkitFlexBasis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61173             : {
   61174           0 :   binding_detail::FakeString arg0;
   61175           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61176           0 :     return false;
   61177             :   }
   61178           0 :   binding_detail::FastErrorResult rv;
   61179           0 :   self->SetWebkitFlexBasis(NonNullHelper(Constify(arg0)), rv);
   61180           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61181           0 :     return false;
   61182             :   }
   61183           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61184             : 
   61185           0 :   return true;
   61186             : }
   61187             : 
   61188             : static const JSJitInfo webkitFlexBasis_getterinfo = {
   61189             :   { (JSJitGetterOp)get_webkitFlexBasis },
   61190             :   { prototypes::id::CSS2Properties },
   61191             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61192             :   JSJitInfo::Getter,
   61193             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61194             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61195             :   false,  /* isInfallible. False in setters. */
   61196             :   false,  /* isMovable.  Not relevant for setters. */
   61197             :   false, /* isEliminatable.  Not relevant for setters. */
   61198             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61199             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61200             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61201             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61202             : };
   61203             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61204             : static_assert(0 < 1, "There is no slot for us");
   61205             : static const JSJitInfo webkitFlexBasis_setterinfo = {
   61206             :   { (JSJitGetterOp)set_webkitFlexBasis },
   61207             :   { prototypes::id::CSS2Properties },
   61208             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61209             :   JSJitInfo::Setter,
   61210             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61211             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61212             :   false,  /* isInfallible. False in setters. */
   61213             :   false,  /* isMovable.  Not relevant for setters. */
   61214             :   false, /* isEliminatable.  Not relevant for setters. */
   61215             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61216             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61217             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61218             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61219             : };
   61220             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61221             : static_assert(0 < 1, "There is no slot for us");
   61222             : 
   61223             : static bool
   61224           0 : get__webkit_flex_basis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61225             : {
   61226           0 :   binding_detail::FastErrorResult rv;
   61227           0 :   DOMString result;
   61228           0 :   self->GetWebkitFlexBasis(result, rv);
   61229           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61230           0 :     return false;
   61231             :   }
   61232           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61233           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61234           0 :     return false;
   61235             :   }
   61236           0 :   return true;
   61237             : }
   61238             : 
   61239             : static bool
   61240           0 : set__webkit_flex_basis(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61241             : {
   61242           0 :   binding_detail::FakeString arg0;
   61243           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61244           0 :     return false;
   61245             :   }
   61246           0 :   binding_detail::FastErrorResult rv;
   61247           0 :   self->SetWebkitFlexBasis(NonNullHelper(Constify(arg0)), rv);
   61248           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61249           0 :     return false;
   61250             :   }
   61251           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61252             : 
   61253           0 :   return true;
   61254             : }
   61255             : 
   61256             : static const JSJitInfo _webkit_flex_basis_getterinfo = {
   61257             :   { (JSJitGetterOp)get__webkit_flex_basis },
   61258             :   { prototypes::id::CSS2Properties },
   61259             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61260             :   JSJitInfo::Getter,
   61261             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61262             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61263             :   false,  /* isInfallible. False in setters. */
   61264             :   false,  /* isMovable.  Not relevant for setters. */
   61265             :   false, /* isEliminatable.  Not relevant for setters. */
   61266             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61267             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61268             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61269             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61270             : };
   61271             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61272             : static_assert(0 < 1, "There is no slot for us");
   61273             : static const JSJitInfo _webkit_flex_basis_setterinfo = {
   61274             :   { (JSJitGetterOp)set__webkit_flex_basis },
   61275             :   { prototypes::id::CSS2Properties },
   61276             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61277             :   JSJitInfo::Setter,
   61278             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61279             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61280             :   false,  /* isInfallible. False in setters. */
   61281             :   false,  /* isMovable.  Not relevant for setters. */
   61282             :   false, /* isEliminatable.  Not relevant for setters. */
   61283             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61284             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61285             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61286             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61287             : };
   61288             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61289             : static_assert(0 < 1, "There is no slot for us");
   61290             : 
   61291             : static bool
   61292           0 : get_WebkitJustifyContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61293             : {
   61294           0 :   binding_detail::FastErrorResult rv;
   61295           0 :   DOMString result;
   61296           0 :   self->GetWebkitJustifyContent(result, rv);
   61297           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61298           0 :     return false;
   61299             :   }
   61300           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61301           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61302           0 :     return false;
   61303             :   }
   61304           0 :   return true;
   61305             : }
   61306             : 
   61307             : static bool
   61308           0 : set_WebkitJustifyContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61309             : {
   61310           0 :   binding_detail::FakeString arg0;
   61311           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61312           0 :     return false;
   61313             :   }
   61314           0 :   binding_detail::FastErrorResult rv;
   61315           0 :   self->SetWebkitJustifyContent(NonNullHelper(Constify(arg0)), rv);
   61316           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61317           0 :     return false;
   61318             :   }
   61319           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61320             : 
   61321           0 :   return true;
   61322             : }
   61323             : 
   61324             : static const JSJitInfo WebkitJustifyContent_getterinfo = {
   61325             :   { (JSJitGetterOp)get_WebkitJustifyContent },
   61326             :   { prototypes::id::CSS2Properties },
   61327             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61328             :   JSJitInfo::Getter,
   61329             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61330             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61331             :   false,  /* isInfallible. False in setters. */
   61332             :   false,  /* isMovable.  Not relevant for setters. */
   61333             :   false, /* isEliminatable.  Not relevant for setters. */
   61334             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61335             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61336             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61337             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61338             : };
   61339             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61340             : static_assert(0 < 1, "There is no slot for us");
   61341             : static const JSJitInfo WebkitJustifyContent_setterinfo = {
   61342             :   { (JSJitGetterOp)set_WebkitJustifyContent },
   61343             :   { prototypes::id::CSS2Properties },
   61344             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61345             :   JSJitInfo::Setter,
   61346             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61347             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61348             :   false,  /* isInfallible. False in setters. */
   61349             :   false,  /* isMovable.  Not relevant for setters. */
   61350             :   false, /* isEliminatable.  Not relevant for setters. */
   61351             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61352             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61353             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61354             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61355             : };
   61356             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61357             : static_assert(0 < 1, "There is no slot for us");
   61358             : 
   61359             : static bool
   61360           0 : get_webkitJustifyContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61361             : {
   61362           0 :   binding_detail::FastErrorResult rv;
   61363           0 :   DOMString result;
   61364           0 :   self->GetWebkitJustifyContent(result, rv);
   61365           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61366           0 :     return false;
   61367             :   }
   61368           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61369           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61370           0 :     return false;
   61371             :   }
   61372           0 :   return true;
   61373             : }
   61374             : 
   61375             : static bool
   61376           0 : set_webkitJustifyContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61377             : {
   61378           0 :   binding_detail::FakeString arg0;
   61379           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61380           0 :     return false;
   61381             :   }
   61382           0 :   binding_detail::FastErrorResult rv;
   61383           0 :   self->SetWebkitJustifyContent(NonNullHelper(Constify(arg0)), rv);
   61384           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61385           0 :     return false;
   61386             :   }
   61387           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61388             : 
   61389           0 :   return true;
   61390             : }
   61391             : 
   61392             : static const JSJitInfo webkitJustifyContent_getterinfo = {
   61393             :   { (JSJitGetterOp)get_webkitJustifyContent },
   61394             :   { prototypes::id::CSS2Properties },
   61395             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61396             :   JSJitInfo::Getter,
   61397             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61398             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61399             :   false,  /* isInfallible. False in setters. */
   61400             :   false,  /* isMovable.  Not relevant for setters. */
   61401             :   false, /* isEliminatable.  Not relevant for setters. */
   61402             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61403             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61404             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61405             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61406             : };
   61407             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61408             : static_assert(0 < 1, "There is no slot for us");
   61409             : static const JSJitInfo webkitJustifyContent_setterinfo = {
   61410             :   { (JSJitGetterOp)set_webkitJustifyContent },
   61411             :   { prototypes::id::CSS2Properties },
   61412             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61413             :   JSJitInfo::Setter,
   61414             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61415             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61416             :   false,  /* isInfallible. False in setters. */
   61417             :   false,  /* isMovable.  Not relevant for setters. */
   61418             :   false, /* isEliminatable.  Not relevant for setters. */
   61419             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61420             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61421             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61422             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61423             : };
   61424             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61425             : static_assert(0 < 1, "There is no slot for us");
   61426             : 
   61427             : static bool
   61428           0 : get__webkit_justify_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61429             : {
   61430           0 :   binding_detail::FastErrorResult rv;
   61431           0 :   DOMString result;
   61432           0 :   self->GetWebkitJustifyContent(result, rv);
   61433           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61434           0 :     return false;
   61435             :   }
   61436           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61437           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61438           0 :     return false;
   61439             :   }
   61440           0 :   return true;
   61441             : }
   61442             : 
   61443             : static bool
   61444           0 : set__webkit_justify_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61445             : {
   61446           0 :   binding_detail::FakeString arg0;
   61447           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61448           0 :     return false;
   61449             :   }
   61450           0 :   binding_detail::FastErrorResult rv;
   61451           0 :   self->SetWebkitJustifyContent(NonNullHelper(Constify(arg0)), rv);
   61452           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61453           0 :     return false;
   61454             :   }
   61455           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61456             : 
   61457           0 :   return true;
   61458             : }
   61459             : 
   61460             : static const JSJitInfo _webkit_justify_content_getterinfo = {
   61461             :   { (JSJitGetterOp)get__webkit_justify_content },
   61462             :   { prototypes::id::CSS2Properties },
   61463             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61464             :   JSJitInfo::Getter,
   61465             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61466             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61467             :   false,  /* isInfallible. False in setters. */
   61468             :   false,  /* isMovable.  Not relevant for setters. */
   61469             :   false, /* isEliminatable.  Not relevant for setters. */
   61470             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61471             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61472             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61473             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61474             : };
   61475             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61476             : static_assert(0 < 1, "There is no slot for us");
   61477             : static const JSJitInfo _webkit_justify_content_setterinfo = {
   61478             :   { (JSJitGetterOp)set__webkit_justify_content },
   61479             :   { prototypes::id::CSS2Properties },
   61480             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61481             :   JSJitInfo::Setter,
   61482             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61483             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61484             :   false,  /* isInfallible. False in setters. */
   61485             :   false,  /* isMovable.  Not relevant for setters. */
   61486             :   false, /* isEliminatable.  Not relevant for setters. */
   61487             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61488             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61489             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61490             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61491             : };
   61492             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61493             : static_assert(0 < 1, "There is no slot for us");
   61494             : 
   61495             : static bool
   61496           0 : get_WebkitAlignItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61497             : {
   61498           0 :   binding_detail::FastErrorResult rv;
   61499           0 :   DOMString result;
   61500           0 :   self->GetWebkitAlignItems(result, rv);
   61501           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61502           0 :     return false;
   61503             :   }
   61504           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61505           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61506           0 :     return false;
   61507             :   }
   61508           0 :   return true;
   61509             : }
   61510             : 
   61511             : static bool
   61512           0 : set_WebkitAlignItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61513             : {
   61514           0 :   binding_detail::FakeString arg0;
   61515           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61516           0 :     return false;
   61517             :   }
   61518           0 :   binding_detail::FastErrorResult rv;
   61519           0 :   self->SetWebkitAlignItems(NonNullHelper(Constify(arg0)), rv);
   61520           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61521           0 :     return false;
   61522             :   }
   61523           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61524             : 
   61525           0 :   return true;
   61526             : }
   61527             : 
   61528             : static const JSJitInfo WebkitAlignItems_getterinfo = {
   61529             :   { (JSJitGetterOp)get_WebkitAlignItems },
   61530             :   { prototypes::id::CSS2Properties },
   61531             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61532             :   JSJitInfo::Getter,
   61533             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61534             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61535             :   false,  /* isInfallible. False in setters. */
   61536             :   false,  /* isMovable.  Not relevant for setters. */
   61537             :   false, /* isEliminatable.  Not relevant for setters. */
   61538             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61539             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61540             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61541             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61542             : };
   61543             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61544             : static_assert(0 < 1, "There is no slot for us");
   61545             : static const JSJitInfo WebkitAlignItems_setterinfo = {
   61546             :   { (JSJitGetterOp)set_WebkitAlignItems },
   61547             :   { prototypes::id::CSS2Properties },
   61548             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61549             :   JSJitInfo::Setter,
   61550             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61551             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61552             :   false,  /* isInfallible. False in setters. */
   61553             :   false,  /* isMovable.  Not relevant for setters. */
   61554             :   false, /* isEliminatable.  Not relevant for setters. */
   61555             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61556             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61557             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61558             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61559             : };
   61560             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61561             : static_assert(0 < 1, "There is no slot for us");
   61562             : 
   61563             : static bool
   61564           0 : get_webkitAlignItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61565             : {
   61566           0 :   binding_detail::FastErrorResult rv;
   61567           0 :   DOMString result;
   61568           0 :   self->GetWebkitAlignItems(result, rv);
   61569           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61570           0 :     return false;
   61571             :   }
   61572           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61573           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61574           0 :     return false;
   61575             :   }
   61576           0 :   return true;
   61577             : }
   61578             : 
   61579             : static bool
   61580           0 : set_webkitAlignItems(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61581             : {
   61582           0 :   binding_detail::FakeString arg0;
   61583           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61584           0 :     return false;
   61585             :   }
   61586           0 :   binding_detail::FastErrorResult rv;
   61587           0 :   self->SetWebkitAlignItems(NonNullHelper(Constify(arg0)), rv);
   61588           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61589           0 :     return false;
   61590             :   }
   61591           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61592             : 
   61593           0 :   return true;
   61594             : }
   61595             : 
   61596             : static const JSJitInfo webkitAlignItems_getterinfo = {
   61597             :   { (JSJitGetterOp)get_webkitAlignItems },
   61598             :   { prototypes::id::CSS2Properties },
   61599             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61600             :   JSJitInfo::Getter,
   61601             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61602             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61603             :   false,  /* isInfallible. False in setters. */
   61604             :   false,  /* isMovable.  Not relevant for setters. */
   61605             :   false, /* isEliminatable.  Not relevant for setters. */
   61606             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61607             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61608             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61609             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61610             : };
   61611             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61612             : static_assert(0 < 1, "There is no slot for us");
   61613             : static const JSJitInfo webkitAlignItems_setterinfo = {
   61614             :   { (JSJitGetterOp)set_webkitAlignItems },
   61615             :   { prototypes::id::CSS2Properties },
   61616             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61617             :   JSJitInfo::Setter,
   61618             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61619             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61620             :   false,  /* isInfallible. False in setters. */
   61621             :   false,  /* isMovable.  Not relevant for setters. */
   61622             :   false, /* isEliminatable.  Not relevant for setters. */
   61623             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61624             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61625             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61626             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61627             : };
   61628             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61629             : static_assert(0 < 1, "There is no slot for us");
   61630             : 
   61631             : static bool
   61632           0 : get__webkit_align_items(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61633             : {
   61634           0 :   binding_detail::FastErrorResult rv;
   61635           0 :   DOMString result;
   61636           0 :   self->GetWebkitAlignItems(result, rv);
   61637           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61638           0 :     return false;
   61639             :   }
   61640           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61641           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61642           0 :     return false;
   61643             :   }
   61644           0 :   return true;
   61645             : }
   61646             : 
   61647             : static bool
   61648           0 : set__webkit_align_items(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61649             : {
   61650           0 :   binding_detail::FakeString arg0;
   61651           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61652           0 :     return false;
   61653             :   }
   61654           0 :   binding_detail::FastErrorResult rv;
   61655           0 :   self->SetWebkitAlignItems(NonNullHelper(Constify(arg0)), rv);
   61656           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61657           0 :     return false;
   61658             :   }
   61659           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61660             : 
   61661           0 :   return true;
   61662             : }
   61663             : 
   61664             : static const JSJitInfo _webkit_align_items_getterinfo = {
   61665             :   { (JSJitGetterOp)get__webkit_align_items },
   61666             :   { prototypes::id::CSS2Properties },
   61667             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61668             :   JSJitInfo::Getter,
   61669             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61670             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61671             :   false,  /* isInfallible. False in setters. */
   61672             :   false,  /* isMovable.  Not relevant for setters. */
   61673             :   false, /* isEliminatable.  Not relevant for setters. */
   61674             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61675             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61676             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61677             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61678             : };
   61679             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61680             : static_assert(0 < 1, "There is no slot for us");
   61681             : static const JSJitInfo _webkit_align_items_setterinfo = {
   61682             :   { (JSJitGetterOp)set__webkit_align_items },
   61683             :   { prototypes::id::CSS2Properties },
   61684             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61685             :   JSJitInfo::Setter,
   61686             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61687             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61688             :   false,  /* isInfallible. False in setters. */
   61689             :   false,  /* isMovable.  Not relevant for setters. */
   61690             :   false, /* isEliminatable.  Not relevant for setters. */
   61691             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61692             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61693             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61694             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61695             : };
   61696             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61697             : static_assert(0 < 1, "There is no slot for us");
   61698             : 
   61699             : static bool
   61700           0 : get_WebkitAlignSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61701             : {
   61702           0 :   binding_detail::FastErrorResult rv;
   61703           0 :   DOMString result;
   61704           0 :   self->GetWebkitAlignSelf(result, rv);
   61705           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61706           0 :     return false;
   61707             :   }
   61708           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61709           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61710           0 :     return false;
   61711             :   }
   61712           0 :   return true;
   61713             : }
   61714             : 
   61715             : static bool
   61716           0 : set_WebkitAlignSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61717             : {
   61718           0 :   binding_detail::FakeString arg0;
   61719           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61720           0 :     return false;
   61721             :   }
   61722           0 :   binding_detail::FastErrorResult rv;
   61723           0 :   self->SetWebkitAlignSelf(NonNullHelper(Constify(arg0)), rv);
   61724           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61725           0 :     return false;
   61726             :   }
   61727           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61728             : 
   61729           0 :   return true;
   61730             : }
   61731             : 
   61732             : static const JSJitInfo WebkitAlignSelf_getterinfo = {
   61733             :   { (JSJitGetterOp)get_WebkitAlignSelf },
   61734             :   { prototypes::id::CSS2Properties },
   61735             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61736             :   JSJitInfo::Getter,
   61737             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61738             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61739             :   false,  /* isInfallible. False in setters. */
   61740             :   false,  /* isMovable.  Not relevant for setters. */
   61741             :   false, /* isEliminatable.  Not relevant for setters. */
   61742             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61743             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61744             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61745             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61746             : };
   61747             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61748             : static_assert(0 < 1, "There is no slot for us");
   61749             : static const JSJitInfo WebkitAlignSelf_setterinfo = {
   61750             :   { (JSJitGetterOp)set_WebkitAlignSelf },
   61751             :   { prototypes::id::CSS2Properties },
   61752             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61753             :   JSJitInfo::Setter,
   61754             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61755             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61756             :   false,  /* isInfallible. False in setters. */
   61757             :   false,  /* isMovable.  Not relevant for setters. */
   61758             :   false, /* isEliminatable.  Not relevant for setters. */
   61759             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61760             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61761             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61762             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61763             : };
   61764             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61765             : static_assert(0 < 1, "There is no slot for us");
   61766             : 
   61767             : static bool
   61768           0 : get_webkitAlignSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61769             : {
   61770           0 :   binding_detail::FastErrorResult rv;
   61771           0 :   DOMString result;
   61772           0 :   self->GetWebkitAlignSelf(result, rv);
   61773           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61774           0 :     return false;
   61775             :   }
   61776           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61777           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61778           0 :     return false;
   61779             :   }
   61780           0 :   return true;
   61781             : }
   61782             : 
   61783             : static bool
   61784           0 : set_webkitAlignSelf(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61785             : {
   61786           0 :   binding_detail::FakeString arg0;
   61787           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61788           0 :     return false;
   61789             :   }
   61790           0 :   binding_detail::FastErrorResult rv;
   61791           0 :   self->SetWebkitAlignSelf(NonNullHelper(Constify(arg0)), rv);
   61792           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61793           0 :     return false;
   61794             :   }
   61795           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61796             : 
   61797           0 :   return true;
   61798             : }
   61799             : 
   61800             : static const JSJitInfo webkitAlignSelf_getterinfo = {
   61801             :   { (JSJitGetterOp)get_webkitAlignSelf },
   61802             :   { prototypes::id::CSS2Properties },
   61803             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61804             :   JSJitInfo::Getter,
   61805             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61806             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61807             :   false,  /* isInfallible. False in setters. */
   61808             :   false,  /* isMovable.  Not relevant for setters. */
   61809             :   false, /* isEliminatable.  Not relevant for setters. */
   61810             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61811             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61812             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61813             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61814             : };
   61815             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61816             : static_assert(0 < 1, "There is no slot for us");
   61817             : static const JSJitInfo webkitAlignSelf_setterinfo = {
   61818             :   { (JSJitGetterOp)set_webkitAlignSelf },
   61819             :   { prototypes::id::CSS2Properties },
   61820             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61821             :   JSJitInfo::Setter,
   61822             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61823             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61824             :   false,  /* isInfallible. False in setters. */
   61825             :   false,  /* isMovable.  Not relevant for setters. */
   61826             :   false, /* isEliminatable.  Not relevant for setters. */
   61827             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61828             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61829             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61830             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61831             : };
   61832             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61833             : static_assert(0 < 1, "There is no slot for us");
   61834             : 
   61835             : static bool
   61836           0 : get__webkit_align_self(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61837             : {
   61838           0 :   binding_detail::FastErrorResult rv;
   61839           0 :   DOMString result;
   61840           0 :   self->GetWebkitAlignSelf(result, rv);
   61841           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61842           0 :     return false;
   61843             :   }
   61844           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61845           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61846           0 :     return false;
   61847             :   }
   61848           0 :   return true;
   61849             : }
   61850             : 
   61851             : static bool
   61852           0 : set__webkit_align_self(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61853             : {
   61854           0 :   binding_detail::FakeString arg0;
   61855           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61856           0 :     return false;
   61857             :   }
   61858           0 :   binding_detail::FastErrorResult rv;
   61859           0 :   self->SetWebkitAlignSelf(NonNullHelper(Constify(arg0)), rv);
   61860           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61861           0 :     return false;
   61862             :   }
   61863           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61864             : 
   61865           0 :   return true;
   61866             : }
   61867             : 
   61868             : static const JSJitInfo _webkit_align_self_getterinfo = {
   61869             :   { (JSJitGetterOp)get__webkit_align_self },
   61870             :   { prototypes::id::CSS2Properties },
   61871             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61872             :   JSJitInfo::Getter,
   61873             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61874             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61875             :   false,  /* isInfallible. False in setters. */
   61876             :   false,  /* isMovable.  Not relevant for setters. */
   61877             :   false, /* isEliminatable.  Not relevant for setters. */
   61878             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61879             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61880             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61881             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61882             : };
   61883             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61884             : static_assert(0 < 1, "There is no slot for us");
   61885             : static const JSJitInfo _webkit_align_self_setterinfo = {
   61886             :   { (JSJitGetterOp)set__webkit_align_self },
   61887             :   { prototypes::id::CSS2Properties },
   61888             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61889             :   JSJitInfo::Setter,
   61890             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61891             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61892             :   false,  /* isInfallible. False in setters. */
   61893             :   false,  /* isMovable.  Not relevant for setters. */
   61894             :   false, /* isEliminatable.  Not relevant for setters. */
   61895             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61896             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61897             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61898             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61899             : };
   61900             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61901             : static_assert(0 < 1, "There is no slot for us");
   61902             : 
   61903             : static bool
   61904           0 : get_WebkitAlignContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61905             : {
   61906           0 :   binding_detail::FastErrorResult rv;
   61907           0 :   DOMString result;
   61908           0 :   self->GetWebkitAlignContent(result, rv);
   61909           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61910           0 :     return false;
   61911             :   }
   61912           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61913           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61914           0 :     return false;
   61915             :   }
   61916           0 :   return true;
   61917             : }
   61918             : 
   61919             : static bool
   61920           0 : set_WebkitAlignContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61921             : {
   61922           0 :   binding_detail::FakeString arg0;
   61923           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61924           0 :     return false;
   61925             :   }
   61926           0 :   binding_detail::FastErrorResult rv;
   61927           0 :   self->SetWebkitAlignContent(NonNullHelper(Constify(arg0)), rv);
   61928           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61929           0 :     return false;
   61930             :   }
   61931           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61932             : 
   61933           0 :   return true;
   61934             : }
   61935             : 
   61936             : static const JSJitInfo WebkitAlignContent_getterinfo = {
   61937             :   { (JSJitGetterOp)get_WebkitAlignContent },
   61938             :   { prototypes::id::CSS2Properties },
   61939             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61940             :   JSJitInfo::Getter,
   61941             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61942             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   61943             :   false,  /* isInfallible. False in setters. */
   61944             :   false,  /* isMovable.  Not relevant for setters. */
   61945             :   false, /* isEliminatable.  Not relevant for setters. */
   61946             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61947             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61948             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61949             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61950             : };
   61951             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61952             : static_assert(0 < 1, "There is no slot for us");
   61953             : static const JSJitInfo WebkitAlignContent_setterinfo = {
   61954             :   { (JSJitGetterOp)set_WebkitAlignContent },
   61955             :   { prototypes::id::CSS2Properties },
   61956             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   61957             :   JSJitInfo::Setter,
   61958             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   61959             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   61960             :   false,  /* isInfallible. False in setters. */
   61961             :   false,  /* isMovable.  Not relevant for setters. */
   61962             :   false, /* isEliminatable.  Not relevant for setters. */
   61963             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   61964             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   61965             :   false,  /* isTypedMethod.  Only relevant for methods. */
   61966             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   61967             : };
   61968             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   61969             : static_assert(0 < 1, "There is no slot for us");
   61970             : 
   61971             : static bool
   61972           0 : get_webkitAlignContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   61973             : {
   61974           0 :   binding_detail::FastErrorResult rv;
   61975           0 :   DOMString result;
   61976           0 :   self->GetWebkitAlignContent(result, rv);
   61977           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61978           0 :     return false;
   61979             :   }
   61980           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   61981           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   61982           0 :     return false;
   61983             :   }
   61984           0 :   return true;
   61985             : }
   61986             : 
   61987             : static bool
   61988           0 : set_webkitAlignContent(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   61989             : {
   61990           0 :   binding_detail::FakeString arg0;
   61991           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   61992           0 :     return false;
   61993             :   }
   61994           0 :   binding_detail::FastErrorResult rv;
   61995           0 :   self->SetWebkitAlignContent(NonNullHelper(Constify(arg0)), rv);
   61996           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   61997           0 :     return false;
   61998             :   }
   61999           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62000             : 
   62001           0 :   return true;
   62002             : }
   62003             : 
   62004             : static const JSJitInfo webkitAlignContent_getterinfo = {
   62005             :   { (JSJitGetterOp)get_webkitAlignContent },
   62006             :   { prototypes::id::CSS2Properties },
   62007             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62008             :   JSJitInfo::Getter,
   62009             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62010             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62011             :   false,  /* isInfallible. False in setters. */
   62012             :   false,  /* isMovable.  Not relevant for setters. */
   62013             :   false, /* isEliminatable.  Not relevant for setters. */
   62014             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62015             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62016             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62017             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62018             : };
   62019             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62020             : static_assert(0 < 1, "There is no slot for us");
   62021             : static const JSJitInfo webkitAlignContent_setterinfo = {
   62022             :   { (JSJitGetterOp)set_webkitAlignContent },
   62023             :   { prototypes::id::CSS2Properties },
   62024             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62025             :   JSJitInfo::Setter,
   62026             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62027             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62028             :   false,  /* isInfallible. False in setters. */
   62029             :   false,  /* isMovable.  Not relevant for setters. */
   62030             :   false, /* isEliminatable.  Not relevant for setters. */
   62031             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62032             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62033             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62034             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62035             : };
   62036             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62037             : static_assert(0 < 1, "There is no slot for us");
   62038             : 
   62039             : static bool
   62040           0 : get__webkit_align_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62041             : {
   62042           0 :   binding_detail::FastErrorResult rv;
   62043           0 :   DOMString result;
   62044           0 :   self->GetWebkitAlignContent(result, rv);
   62045           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62046           0 :     return false;
   62047             :   }
   62048           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62049           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62050           0 :     return false;
   62051             :   }
   62052           0 :   return true;
   62053             : }
   62054             : 
   62055             : static bool
   62056           0 : set__webkit_align_content(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62057             : {
   62058           0 :   binding_detail::FakeString arg0;
   62059           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62060           0 :     return false;
   62061             :   }
   62062           0 :   binding_detail::FastErrorResult rv;
   62063           0 :   self->SetWebkitAlignContent(NonNullHelper(Constify(arg0)), rv);
   62064           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62065           0 :     return false;
   62066             :   }
   62067           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62068             : 
   62069           0 :   return true;
   62070             : }
   62071             : 
   62072             : static const JSJitInfo _webkit_align_content_getterinfo = {
   62073             :   { (JSJitGetterOp)get__webkit_align_content },
   62074             :   { prototypes::id::CSS2Properties },
   62075             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62076             :   JSJitInfo::Getter,
   62077             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62078             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62079             :   false,  /* isInfallible. False in setters. */
   62080             :   false,  /* isMovable.  Not relevant for setters. */
   62081             :   false, /* isEliminatable.  Not relevant for setters. */
   62082             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62083             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62084             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62085             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62086             : };
   62087             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62088             : static_assert(0 < 1, "There is no slot for us");
   62089             : static const JSJitInfo _webkit_align_content_setterinfo = {
   62090             :   { (JSJitGetterOp)set__webkit_align_content },
   62091             :   { prototypes::id::CSS2Properties },
   62092             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62093             :   JSJitInfo::Setter,
   62094             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62095             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62096             :   false,  /* isInfallible. False in setters. */
   62097             :   false,  /* isMovable.  Not relevant for setters. */
   62098             :   false, /* isEliminatable.  Not relevant for setters. */
   62099             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62100             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62101             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62102             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62103             : };
   62104             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62105             : static_assert(0 < 1, "There is no slot for us");
   62106             : 
   62107             : static bool
   62108           0 : get_WebkitUserSelect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62109             : {
   62110           0 :   binding_detail::FastErrorResult rv;
   62111           0 :   DOMString result;
   62112           0 :   self->GetWebkitUserSelect(result, rv);
   62113           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62114           0 :     return false;
   62115             :   }
   62116           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62117           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62118           0 :     return false;
   62119             :   }
   62120           0 :   return true;
   62121             : }
   62122             : 
   62123             : static bool
   62124           0 : set_WebkitUserSelect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62125             : {
   62126           0 :   binding_detail::FakeString arg0;
   62127           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62128           0 :     return false;
   62129             :   }
   62130           0 :   binding_detail::FastErrorResult rv;
   62131           0 :   self->SetWebkitUserSelect(NonNullHelper(Constify(arg0)), rv);
   62132           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62133           0 :     return false;
   62134             :   }
   62135           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62136             : 
   62137           0 :   return true;
   62138             : }
   62139             : 
   62140             : static const JSJitInfo WebkitUserSelect_getterinfo = {
   62141             :   { (JSJitGetterOp)get_WebkitUserSelect },
   62142             :   { prototypes::id::CSS2Properties },
   62143             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62144             :   JSJitInfo::Getter,
   62145             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62146             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62147             :   false,  /* isInfallible. False in setters. */
   62148             :   false,  /* isMovable.  Not relevant for setters. */
   62149             :   false, /* isEliminatable.  Not relevant for setters. */
   62150             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62151             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62152             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62153             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62154             : };
   62155             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62156             : static_assert(0 < 1, "There is no slot for us");
   62157             : static const JSJitInfo WebkitUserSelect_setterinfo = {
   62158             :   { (JSJitGetterOp)set_WebkitUserSelect },
   62159             :   { prototypes::id::CSS2Properties },
   62160             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62161             :   JSJitInfo::Setter,
   62162             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62163             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62164             :   false,  /* isInfallible. False in setters. */
   62165             :   false,  /* isMovable.  Not relevant for setters. */
   62166             :   false, /* isEliminatable.  Not relevant for setters. */
   62167             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62168             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62169             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62170             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62171             : };
   62172             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62173             : static_assert(0 < 1, "There is no slot for us");
   62174             : 
   62175             : static bool
   62176           0 : get_webkitUserSelect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62177             : {
   62178           0 :   binding_detail::FastErrorResult rv;
   62179           0 :   DOMString result;
   62180           0 :   self->GetWebkitUserSelect(result, rv);
   62181           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62182           0 :     return false;
   62183             :   }
   62184           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62185           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62186           0 :     return false;
   62187             :   }
   62188           0 :   return true;
   62189             : }
   62190             : 
   62191             : static bool
   62192           0 : set_webkitUserSelect(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62193             : {
   62194           0 :   binding_detail::FakeString arg0;
   62195           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62196           0 :     return false;
   62197             :   }
   62198           0 :   binding_detail::FastErrorResult rv;
   62199           0 :   self->SetWebkitUserSelect(NonNullHelper(Constify(arg0)), rv);
   62200           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62201           0 :     return false;
   62202             :   }
   62203           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62204             : 
   62205           0 :   return true;
   62206             : }
   62207             : 
   62208             : static const JSJitInfo webkitUserSelect_getterinfo = {
   62209             :   { (JSJitGetterOp)get_webkitUserSelect },
   62210             :   { prototypes::id::CSS2Properties },
   62211             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62212             :   JSJitInfo::Getter,
   62213             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62214             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62215             :   false,  /* isInfallible. False in setters. */
   62216             :   false,  /* isMovable.  Not relevant for setters. */
   62217             :   false, /* isEliminatable.  Not relevant for setters. */
   62218             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62219             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62220             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62221             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62222             : };
   62223             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62224             : static_assert(0 < 1, "There is no slot for us");
   62225             : static const JSJitInfo webkitUserSelect_setterinfo = {
   62226             :   { (JSJitGetterOp)set_webkitUserSelect },
   62227             :   { prototypes::id::CSS2Properties },
   62228             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62229             :   JSJitInfo::Setter,
   62230             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62231             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62232             :   false,  /* isInfallible. False in setters. */
   62233             :   false,  /* isMovable.  Not relevant for setters. */
   62234             :   false, /* isEliminatable.  Not relevant for setters. */
   62235             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62236             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62237             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62238             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62239             : };
   62240             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62241             : static_assert(0 < 1, "There is no slot for us");
   62242             : 
   62243             : static bool
   62244           0 : get__webkit_user_select(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62245             : {
   62246           0 :   binding_detail::FastErrorResult rv;
   62247           0 :   DOMString result;
   62248           0 :   self->GetWebkitUserSelect(result, rv);
   62249           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62250           0 :     return false;
   62251             :   }
   62252           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62253           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62254           0 :     return false;
   62255             :   }
   62256           0 :   return true;
   62257             : }
   62258             : 
   62259             : static bool
   62260           0 : set__webkit_user_select(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62261             : {
   62262           0 :   binding_detail::FakeString arg0;
   62263           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62264           0 :     return false;
   62265             :   }
   62266           0 :   binding_detail::FastErrorResult rv;
   62267           0 :   self->SetWebkitUserSelect(NonNullHelper(Constify(arg0)), rv);
   62268           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62269           0 :     return false;
   62270             :   }
   62271           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62272             : 
   62273           0 :   return true;
   62274             : }
   62275             : 
   62276             : static const JSJitInfo _webkit_user_select_getterinfo = {
   62277             :   { (JSJitGetterOp)get__webkit_user_select },
   62278             :   { prototypes::id::CSS2Properties },
   62279             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62280             :   JSJitInfo::Getter,
   62281             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62282             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62283             :   false,  /* isInfallible. False in setters. */
   62284             :   false,  /* isMovable.  Not relevant for setters. */
   62285             :   false, /* isEliminatable.  Not relevant for setters. */
   62286             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62287             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62288             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62289             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62290             : };
   62291             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62292             : static_assert(0 < 1, "There is no slot for us");
   62293             : static const JSJitInfo _webkit_user_select_setterinfo = {
   62294             :   { (JSJitGetterOp)set__webkit_user_select },
   62295             :   { prototypes::id::CSS2Properties },
   62296             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62297             :   JSJitInfo::Setter,
   62298             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62299             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62300             :   false,  /* isInfallible. False in setters. */
   62301             :   false,  /* isMovable.  Not relevant for setters. */
   62302             :   false, /* isEliminatable.  Not relevant for setters. */
   62303             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62304             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62305             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62306             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62307             : };
   62308             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62309             : static_assert(0 < 1, "There is no slot for us");
   62310             : 
   62311             : static bool
   62312           0 : get_WebkitMask(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62313             : {
   62314           0 :   binding_detail::FastErrorResult rv;
   62315           0 :   DOMString result;
   62316           0 :   self->GetWebkitMask(result, rv);
   62317           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62318           0 :     return false;
   62319             :   }
   62320           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62321           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62322           0 :     return false;
   62323             :   }
   62324           0 :   return true;
   62325             : }
   62326             : 
   62327             : static bool
   62328           0 : set_WebkitMask(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62329             : {
   62330           0 :   binding_detail::FakeString arg0;
   62331           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62332           0 :     return false;
   62333             :   }
   62334           0 :   binding_detail::FastErrorResult rv;
   62335           0 :   self->SetWebkitMask(NonNullHelper(Constify(arg0)), rv);
   62336           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62337           0 :     return false;
   62338             :   }
   62339           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62340             : 
   62341           0 :   return true;
   62342             : }
   62343             : 
   62344             : static const JSJitInfo WebkitMask_getterinfo = {
   62345             :   { (JSJitGetterOp)get_WebkitMask },
   62346             :   { prototypes::id::CSS2Properties },
   62347             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62348             :   JSJitInfo::Getter,
   62349             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62350             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62351             :   false,  /* isInfallible. False in setters. */
   62352             :   false,  /* isMovable.  Not relevant for setters. */
   62353             :   false, /* isEliminatable.  Not relevant for setters. */
   62354             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62355             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62356             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62357             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62358             : };
   62359             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62360             : static_assert(0 < 1, "There is no slot for us");
   62361             : static const JSJitInfo WebkitMask_setterinfo = {
   62362             :   { (JSJitGetterOp)set_WebkitMask },
   62363             :   { prototypes::id::CSS2Properties },
   62364             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62365             :   JSJitInfo::Setter,
   62366             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62367             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62368             :   false,  /* isInfallible. False in setters. */
   62369             :   false,  /* isMovable.  Not relevant for setters. */
   62370             :   false, /* isEliminatable.  Not relevant for setters. */
   62371             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62372             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62373             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62374             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62375             : };
   62376             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62377             : static_assert(0 < 1, "There is no slot for us");
   62378             : 
   62379             : static bool
   62380           0 : get_webkitMask(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62381             : {
   62382           0 :   binding_detail::FastErrorResult rv;
   62383           0 :   DOMString result;
   62384           0 :   self->GetWebkitMask(result, rv);
   62385           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62386           0 :     return false;
   62387             :   }
   62388           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62389           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62390           0 :     return false;
   62391             :   }
   62392           0 :   return true;
   62393             : }
   62394             : 
   62395             : static bool
   62396           0 : set_webkitMask(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62397             : {
   62398           0 :   binding_detail::FakeString arg0;
   62399           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62400           0 :     return false;
   62401             :   }
   62402           0 :   binding_detail::FastErrorResult rv;
   62403           0 :   self->SetWebkitMask(NonNullHelper(Constify(arg0)), rv);
   62404           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62405           0 :     return false;
   62406             :   }
   62407           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62408             : 
   62409           0 :   return true;
   62410             : }
   62411             : 
   62412             : static const JSJitInfo webkitMask_getterinfo = {
   62413             :   { (JSJitGetterOp)get_webkitMask },
   62414             :   { prototypes::id::CSS2Properties },
   62415             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62416             :   JSJitInfo::Getter,
   62417             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62418             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62419             :   false,  /* isInfallible. False in setters. */
   62420             :   false,  /* isMovable.  Not relevant for setters. */
   62421             :   false, /* isEliminatable.  Not relevant for setters. */
   62422             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62423             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62424             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62425             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62426             : };
   62427             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62428             : static_assert(0 < 1, "There is no slot for us");
   62429             : static const JSJitInfo webkitMask_setterinfo = {
   62430             :   { (JSJitGetterOp)set_webkitMask },
   62431             :   { prototypes::id::CSS2Properties },
   62432             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62433             :   JSJitInfo::Setter,
   62434             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62435             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62436             :   false,  /* isInfallible. False in setters. */
   62437             :   false,  /* isMovable.  Not relevant for setters. */
   62438             :   false, /* isEliminatable.  Not relevant for setters. */
   62439             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62440             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62441             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62442             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62443             : };
   62444             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62445             : static_assert(0 < 1, "There is no slot for us");
   62446             : 
   62447             : static bool
   62448           0 : get__webkit_mask(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62449             : {
   62450           0 :   binding_detail::FastErrorResult rv;
   62451           0 :   DOMString result;
   62452           0 :   self->GetWebkitMask(result, rv);
   62453           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62454           0 :     return false;
   62455             :   }
   62456           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62457           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62458           0 :     return false;
   62459             :   }
   62460           0 :   return true;
   62461             : }
   62462             : 
   62463             : static bool
   62464           0 : set__webkit_mask(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62465             : {
   62466           0 :   binding_detail::FakeString arg0;
   62467           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62468           0 :     return false;
   62469             :   }
   62470           0 :   binding_detail::FastErrorResult rv;
   62471           0 :   self->SetWebkitMask(NonNullHelper(Constify(arg0)), rv);
   62472           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62473           0 :     return false;
   62474             :   }
   62475           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62476             : 
   62477           0 :   return true;
   62478             : }
   62479             : 
   62480             : static const JSJitInfo _webkit_mask_getterinfo = {
   62481             :   { (JSJitGetterOp)get__webkit_mask },
   62482             :   { prototypes::id::CSS2Properties },
   62483             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62484             :   JSJitInfo::Getter,
   62485             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62486             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62487             :   false,  /* isInfallible. False in setters. */
   62488             :   false,  /* isMovable.  Not relevant for setters. */
   62489             :   false, /* isEliminatable.  Not relevant for setters. */
   62490             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62491             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62492             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62493             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62494             : };
   62495             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62496             : static_assert(0 < 1, "There is no slot for us");
   62497             : static const JSJitInfo _webkit_mask_setterinfo = {
   62498             :   { (JSJitGetterOp)set__webkit_mask },
   62499             :   { prototypes::id::CSS2Properties },
   62500             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62501             :   JSJitInfo::Setter,
   62502             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62503             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62504             :   false,  /* isInfallible. False in setters. */
   62505             :   false,  /* isMovable.  Not relevant for setters. */
   62506             :   false, /* isEliminatable.  Not relevant for setters. */
   62507             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62508             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62509             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62510             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62511             : };
   62512             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62513             : static_assert(0 < 1, "There is no slot for us");
   62514             : 
   62515             : static bool
   62516           0 : get_WebkitMaskClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62517             : {
   62518           0 :   binding_detail::FastErrorResult rv;
   62519           0 :   DOMString result;
   62520           0 :   self->GetWebkitMaskClip(result, rv);
   62521           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62522           0 :     return false;
   62523             :   }
   62524           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62525           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62526           0 :     return false;
   62527             :   }
   62528           0 :   return true;
   62529             : }
   62530             : 
   62531             : static bool
   62532           0 : set_WebkitMaskClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62533             : {
   62534           0 :   binding_detail::FakeString arg0;
   62535           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62536           0 :     return false;
   62537             :   }
   62538           0 :   binding_detail::FastErrorResult rv;
   62539           0 :   self->SetWebkitMaskClip(NonNullHelper(Constify(arg0)), rv);
   62540           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62541           0 :     return false;
   62542             :   }
   62543           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62544             : 
   62545           0 :   return true;
   62546             : }
   62547             : 
   62548             : static const JSJitInfo WebkitMaskClip_getterinfo = {
   62549             :   { (JSJitGetterOp)get_WebkitMaskClip },
   62550             :   { prototypes::id::CSS2Properties },
   62551             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62552             :   JSJitInfo::Getter,
   62553             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62554             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62555             :   false,  /* isInfallible. False in setters. */
   62556             :   false,  /* isMovable.  Not relevant for setters. */
   62557             :   false, /* isEliminatable.  Not relevant for setters. */
   62558             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62559             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62560             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62561             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62562             : };
   62563             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62564             : static_assert(0 < 1, "There is no slot for us");
   62565             : static const JSJitInfo WebkitMaskClip_setterinfo = {
   62566             :   { (JSJitGetterOp)set_WebkitMaskClip },
   62567             :   { prototypes::id::CSS2Properties },
   62568             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62569             :   JSJitInfo::Setter,
   62570             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62571             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62572             :   false,  /* isInfallible. False in setters. */
   62573             :   false,  /* isMovable.  Not relevant for setters. */
   62574             :   false, /* isEliminatable.  Not relevant for setters. */
   62575             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62576             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62577             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62578             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62579             : };
   62580             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62581             : static_assert(0 < 1, "There is no slot for us");
   62582             : 
   62583             : static bool
   62584           0 : get_webkitMaskClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62585             : {
   62586           0 :   binding_detail::FastErrorResult rv;
   62587           0 :   DOMString result;
   62588           0 :   self->GetWebkitMaskClip(result, rv);
   62589           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62590           0 :     return false;
   62591             :   }
   62592           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62593           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62594           0 :     return false;
   62595             :   }
   62596           0 :   return true;
   62597             : }
   62598             : 
   62599             : static bool
   62600           0 : set_webkitMaskClip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62601             : {
   62602           0 :   binding_detail::FakeString arg0;
   62603           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62604           0 :     return false;
   62605             :   }
   62606           0 :   binding_detail::FastErrorResult rv;
   62607           0 :   self->SetWebkitMaskClip(NonNullHelper(Constify(arg0)), rv);
   62608           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62609           0 :     return false;
   62610             :   }
   62611           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62612             : 
   62613           0 :   return true;
   62614             : }
   62615             : 
   62616             : static const JSJitInfo webkitMaskClip_getterinfo = {
   62617             :   { (JSJitGetterOp)get_webkitMaskClip },
   62618             :   { prototypes::id::CSS2Properties },
   62619             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62620             :   JSJitInfo::Getter,
   62621             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62622             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62623             :   false,  /* isInfallible. False in setters. */
   62624             :   false,  /* isMovable.  Not relevant for setters. */
   62625             :   false, /* isEliminatable.  Not relevant for setters. */
   62626             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62627             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62628             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62629             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62630             : };
   62631             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62632             : static_assert(0 < 1, "There is no slot for us");
   62633             : static const JSJitInfo webkitMaskClip_setterinfo = {
   62634             :   { (JSJitGetterOp)set_webkitMaskClip },
   62635             :   { prototypes::id::CSS2Properties },
   62636             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62637             :   JSJitInfo::Setter,
   62638             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62639             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62640             :   false,  /* isInfallible. False in setters. */
   62641             :   false,  /* isMovable.  Not relevant for setters. */
   62642             :   false, /* isEliminatable.  Not relevant for setters. */
   62643             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62644             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62645             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62646             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62647             : };
   62648             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62649             : static_assert(0 < 1, "There is no slot for us");
   62650             : 
   62651             : static bool
   62652           0 : get__webkit_mask_clip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62653             : {
   62654           0 :   binding_detail::FastErrorResult rv;
   62655           0 :   DOMString result;
   62656           0 :   self->GetWebkitMaskClip(result, rv);
   62657           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62658           0 :     return false;
   62659             :   }
   62660           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62661           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62662           0 :     return false;
   62663             :   }
   62664           0 :   return true;
   62665             : }
   62666             : 
   62667             : static bool
   62668           0 : set__webkit_mask_clip(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62669             : {
   62670           0 :   binding_detail::FakeString arg0;
   62671           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62672           0 :     return false;
   62673             :   }
   62674           0 :   binding_detail::FastErrorResult rv;
   62675           0 :   self->SetWebkitMaskClip(NonNullHelper(Constify(arg0)), rv);
   62676           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62677           0 :     return false;
   62678             :   }
   62679           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62680             : 
   62681           0 :   return true;
   62682             : }
   62683             : 
   62684             : static const JSJitInfo _webkit_mask_clip_getterinfo = {
   62685             :   { (JSJitGetterOp)get__webkit_mask_clip },
   62686             :   { prototypes::id::CSS2Properties },
   62687             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62688             :   JSJitInfo::Getter,
   62689             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62690             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62691             :   false,  /* isInfallible. False in setters. */
   62692             :   false,  /* isMovable.  Not relevant for setters. */
   62693             :   false, /* isEliminatable.  Not relevant for setters. */
   62694             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62695             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62696             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62697             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62698             : };
   62699             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62700             : static_assert(0 < 1, "There is no slot for us");
   62701             : static const JSJitInfo _webkit_mask_clip_setterinfo = {
   62702             :   { (JSJitGetterOp)set__webkit_mask_clip },
   62703             :   { prototypes::id::CSS2Properties },
   62704             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62705             :   JSJitInfo::Setter,
   62706             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62707             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62708             :   false,  /* isInfallible. False in setters. */
   62709             :   false,  /* isMovable.  Not relevant for setters. */
   62710             :   false, /* isEliminatable.  Not relevant for setters. */
   62711             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62712             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62713             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62714             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62715             : };
   62716             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62717             : static_assert(0 < 1, "There is no slot for us");
   62718             : 
   62719             : static bool
   62720           0 : get_WebkitMaskComposite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62721             : {
   62722           0 :   binding_detail::FastErrorResult rv;
   62723           0 :   DOMString result;
   62724           0 :   self->GetWebkitMaskComposite(result, rv);
   62725           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62726           0 :     return false;
   62727             :   }
   62728           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62729           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62730           0 :     return false;
   62731             :   }
   62732           0 :   return true;
   62733             : }
   62734             : 
   62735             : static bool
   62736           0 : set_WebkitMaskComposite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62737             : {
   62738           0 :   binding_detail::FakeString arg0;
   62739           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62740           0 :     return false;
   62741             :   }
   62742           0 :   binding_detail::FastErrorResult rv;
   62743           0 :   self->SetWebkitMaskComposite(NonNullHelper(Constify(arg0)), rv);
   62744           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62745           0 :     return false;
   62746             :   }
   62747           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62748             : 
   62749           0 :   return true;
   62750             : }
   62751             : 
   62752             : static const JSJitInfo WebkitMaskComposite_getterinfo = {
   62753             :   { (JSJitGetterOp)get_WebkitMaskComposite },
   62754             :   { prototypes::id::CSS2Properties },
   62755             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62756             :   JSJitInfo::Getter,
   62757             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62758             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62759             :   false,  /* isInfallible. False in setters. */
   62760             :   false,  /* isMovable.  Not relevant for setters. */
   62761             :   false, /* isEliminatable.  Not relevant for setters. */
   62762             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62763             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62764             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62765             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62766             : };
   62767             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62768             : static_assert(0 < 1, "There is no slot for us");
   62769             : static const JSJitInfo WebkitMaskComposite_setterinfo = {
   62770             :   { (JSJitGetterOp)set_WebkitMaskComposite },
   62771             :   { prototypes::id::CSS2Properties },
   62772             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62773             :   JSJitInfo::Setter,
   62774             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62775             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62776             :   false,  /* isInfallible. False in setters. */
   62777             :   false,  /* isMovable.  Not relevant for setters. */
   62778             :   false, /* isEliminatable.  Not relevant for setters. */
   62779             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62780             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62781             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62782             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62783             : };
   62784             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62785             : static_assert(0 < 1, "There is no slot for us");
   62786             : 
   62787             : static bool
   62788           0 : get_webkitMaskComposite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62789             : {
   62790           0 :   binding_detail::FastErrorResult rv;
   62791           0 :   DOMString result;
   62792           0 :   self->GetWebkitMaskComposite(result, rv);
   62793           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62794           0 :     return false;
   62795             :   }
   62796           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62797           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62798           0 :     return false;
   62799             :   }
   62800           0 :   return true;
   62801             : }
   62802             : 
   62803             : static bool
   62804           0 : set_webkitMaskComposite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62805             : {
   62806           0 :   binding_detail::FakeString arg0;
   62807           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62808           0 :     return false;
   62809             :   }
   62810           0 :   binding_detail::FastErrorResult rv;
   62811           0 :   self->SetWebkitMaskComposite(NonNullHelper(Constify(arg0)), rv);
   62812           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62813           0 :     return false;
   62814             :   }
   62815           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62816             : 
   62817           0 :   return true;
   62818             : }
   62819             : 
   62820             : static const JSJitInfo webkitMaskComposite_getterinfo = {
   62821             :   { (JSJitGetterOp)get_webkitMaskComposite },
   62822             :   { prototypes::id::CSS2Properties },
   62823             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62824             :   JSJitInfo::Getter,
   62825             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62826             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62827             :   false,  /* isInfallible. False in setters. */
   62828             :   false,  /* isMovable.  Not relevant for setters. */
   62829             :   false, /* isEliminatable.  Not relevant for setters. */
   62830             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62831             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62832             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62833             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62834             : };
   62835             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62836             : static_assert(0 < 1, "There is no slot for us");
   62837             : static const JSJitInfo webkitMaskComposite_setterinfo = {
   62838             :   { (JSJitGetterOp)set_webkitMaskComposite },
   62839             :   { prototypes::id::CSS2Properties },
   62840             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62841             :   JSJitInfo::Setter,
   62842             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62843             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62844             :   false,  /* isInfallible. False in setters. */
   62845             :   false,  /* isMovable.  Not relevant for setters. */
   62846             :   false, /* isEliminatable.  Not relevant for setters. */
   62847             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62848             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62849             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62850             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62851             : };
   62852             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62853             : static_assert(0 < 1, "There is no slot for us");
   62854             : 
   62855             : static bool
   62856           0 : get__webkit_mask_composite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62857             : {
   62858           0 :   binding_detail::FastErrorResult rv;
   62859           0 :   DOMString result;
   62860           0 :   self->GetWebkitMaskComposite(result, rv);
   62861           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62862           0 :     return false;
   62863             :   }
   62864           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62865           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62866           0 :     return false;
   62867             :   }
   62868           0 :   return true;
   62869             : }
   62870             : 
   62871             : static bool
   62872           0 : set__webkit_mask_composite(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62873             : {
   62874           0 :   binding_detail::FakeString arg0;
   62875           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62876           0 :     return false;
   62877             :   }
   62878           0 :   binding_detail::FastErrorResult rv;
   62879           0 :   self->SetWebkitMaskComposite(NonNullHelper(Constify(arg0)), rv);
   62880           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62881           0 :     return false;
   62882             :   }
   62883           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62884             : 
   62885           0 :   return true;
   62886             : }
   62887             : 
   62888             : static const JSJitInfo _webkit_mask_composite_getterinfo = {
   62889             :   { (JSJitGetterOp)get__webkit_mask_composite },
   62890             :   { prototypes::id::CSS2Properties },
   62891             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62892             :   JSJitInfo::Getter,
   62893             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62894             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62895             :   false,  /* isInfallible. False in setters. */
   62896             :   false,  /* isMovable.  Not relevant for setters. */
   62897             :   false, /* isEliminatable.  Not relevant for setters. */
   62898             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62899             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62900             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62901             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62902             : };
   62903             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62904             : static_assert(0 < 1, "There is no slot for us");
   62905             : static const JSJitInfo _webkit_mask_composite_setterinfo = {
   62906             :   { (JSJitGetterOp)set__webkit_mask_composite },
   62907             :   { prototypes::id::CSS2Properties },
   62908             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62909             :   JSJitInfo::Setter,
   62910             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62911             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62912             :   false,  /* isInfallible. False in setters. */
   62913             :   false,  /* isMovable.  Not relevant for setters. */
   62914             :   false, /* isEliminatable.  Not relevant for setters. */
   62915             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62916             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62917             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62918             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62919             : };
   62920             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62921             : static_assert(0 < 1, "There is no slot for us");
   62922             : 
   62923             : static bool
   62924           0 : get_WebkitMaskImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62925             : {
   62926           0 :   binding_detail::FastErrorResult rv;
   62927           0 :   DOMString result;
   62928           0 :   self->GetWebkitMaskImage(result, rv);
   62929           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62930           0 :     return false;
   62931             :   }
   62932           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62933           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   62934           0 :     return false;
   62935             :   }
   62936           0 :   return true;
   62937             : }
   62938             : 
   62939             : static bool
   62940           0 : set_WebkitMaskImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   62941             : {
   62942           0 :   binding_detail::FakeString arg0;
   62943           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   62944           0 :     return false;
   62945             :   }
   62946           0 :   binding_detail::FastErrorResult rv;
   62947           0 :   self->SetWebkitMaskImage(NonNullHelper(Constify(arg0)), rv);
   62948           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62949           0 :     return false;
   62950             :   }
   62951           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   62952             : 
   62953           0 :   return true;
   62954             : }
   62955             : 
   62956             : static const JSJitInfo WebkitMaskImage_getterinfo = {
   62957             :   { (JSJitGetterOp)get_WebkitMaskImage },
   62958             :   { prototypes::id::CSS2Properties },
   62959             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62960             :   JSJitInfo::Getter,
   62961             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62962             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   62963             :   false,  /* isInfallible. False in setters. */
   62964             :   false,  /* isMovable.  Not relevant for setters. */
   62965             :   false, /* isEliminatable.  Not relevant for setters. */
   62966             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62967             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62968             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62969             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62970             : };
   62971             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62972             : static_assert(0 < 1, "There is no slot for us");
   62973             : static const JSJitInfo WebkitMaskImage_setterinfo = {
   62974             :   { (JSJitGetterOp)set_WebkitMaskImage },
   62975             :   { prototypes::id::CSS2Properties },
   62976             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   62977             :   JSJitInfo::Setter,
   62978             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   62979             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   62980             :   false,  /* isInfallible. False in setters. */
   62981             :   false,  /* isMovable.  Not relevant for setters. */
   62982             :   false, /* isEliminatable.  Not relevant for setters. */
   62983             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   62984             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   62985             :   false,  /* isTypedMethod.  Only relevant for methods. */
   62986             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   62987             : };
   62988             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   62989             : static_assert(0 < 1, "There is no slot for us");
   62990             : 
   62991             : static bool
   62992           0 : get_webkitMaskImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   62993             : {
   62994           0 :   binding_detail::FastErrorResult rv;
   62995           0 :   DOMString result;
   62996           0 :   self->GetWebkitMaskImage(result, rv);
   62997           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   62998           0 :     return false;
   62999             :   }
   63000           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63001           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63002           0 :     return false;
   63003             :   }
   63004           0 :   return true;
   63005             : }
   63006             : 
   63007             : static bool
   63008           0 : set_webkitMaskImage(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63009             : {
   63010           0 :   binding_detail::FakeString arg0;
   63011           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63012           0 :     return false;
   63013             :   }
   63014           0 :   binding_detail::FastErrorResult rv;
   63015           0 :   self->SetWebkitMaskImage(NonNullHelper(Constify(arg0)), rv);
   63016           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63017           0 :     return false;
   63018             :   }
   63019           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63020             : 
   63021           0 :   return true;
   63022             : }
   63023             : 
   63024             : static const JSJitInfo webkitMaskImage_getterinfo = {
   63025             :   { (JSJitGetterOp)get_webkitMaskImage },
   63026             :   { prototypes::id::CSS2Properties },
   63027             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63028             :   JSJitInfo::Getter,
   63029             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63030             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63031             :   false,  /* isInfallible. False in setters. */
   63032             :   false,  /* isMovable.  Not relevant for setters. */
   63033             :   false, /* isEliminatable.  Not relevant for setters. */
   63034             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63035             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63036             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63037             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63038             : };
   63039             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63040             : static_assert(0 < 1, "There is no slot for us");
   63041             : static const JSJitInfo webkitMaskImage_setterinfo = {
   63042             :   { (JSJitGetterOp)set_webkitMaskImage },
   63043             :   { prototypes::id::CSS2Properties },
   63044             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63045             :   JSJitInfo::Setter,
   63046             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63047             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63048             :   false,  /* isInfallible. False in setters. */
   63049             :   false,  /* isMovable.  Not relevant for setters. */
   63050             :   false, /* isEliminatable.  Not relevant for setters. */
   63051             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63052             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63053             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63054             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63055             : };
   63056             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63057             : static_assert(0 < 1, "There is no slot for us");
   63058             : 
   63059             : static bool
   63060           0 : get__webkit_mask_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63061             : {
   63062           0 :   binding_detail::FastErrorResult rv;
   63063           0 :   DOMString result;
   63064           0 :   self->GetWebkitMaskImage(result, rv);
   63065           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63066           0 :     return false;
   63067             :   }
   63068           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63069           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63070           0 :     return false;
   63071             :   }
   63072           0 :   return true;
   63073             : }
   63074             : 
   63075             : static bool
   63076           0 : set__webkit_mask_image(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63077             : {
   63078           0 :   binding_detail::FakeString arg0;
   63079           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63080           0 :     return false;
   63081             :   }
   63082           0 :   binding_detail::FastErrorResult rv;
   63083           0 :   self->SetWebkitMaskImage(NonNullHelper(Constify(arg0)), rv);
   63084           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63085           0 :     return false;
   63086             :   }
   63087           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63088             : 
   63089           0 :   return true;
   63090             : }
   63091             : 
   63092             : static const JSJitInfo _webkit_mask_image_getterinfo = {
   63093             :   { (JSJitGetterOp)get__webkit_mask_image },
   63094             :   { prototypes::id::CSS2Properties },
   63095             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63096             :   JSJitInfo::Getter,
   63097             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63098             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63099             :   false,  /* isInfallible. False in setters. */
   63100             :   false,  /* isMovable.  Not relevant for setters. */
   63101             :   false, /* isEliminatable.  Not relevant for setters. */
   63102             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63103             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63104             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63105             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63106             : };
   63107             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63108             : static_assert(0 < 1, "There is no slot for us");
   63109             : static const JSJitInfo _webkit_mask_image_setterinfo = {
   63110             :   { (JSJitGetterOp)set__webkit_mask_image },
   63111             :   { prototypes::id::CSS2Properties },
   63112             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63113             :   JSJitInfo::Setter,
   63114             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63115             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63116             :   false,  /* isInfallible. False in setters. */
   63117             :   false,  /* isMovable.  Not relevant for setters. */
   63118             :   false, /* isEliminatable.  Not relevant for setters. */
   63119             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63120             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63121             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63122             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63123             : };
   63124             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63125             : static_assert(0 < 1, "There is no slot for us");
   63126             : 
   63127             : static bool
   63128           0 : get_WebkitMaskOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63129             : {
   63130           0 :   binding_detail::FastErrorResult rv;
   63131           0 :   DOMString result;
   63132           0 :   self->GetWebkitMaskOrigin(result, rv);
   63133           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63134           0 :     return false;
   63135             :   }
   63136           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63137           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63138           0 :     return false;
   63139             :   }
   63140           0 :   return true;
   63141             : }
   63142             : 
   63143             : static bool
   63144           0 : set_WebkitMaskOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63145             : {
   63146           0 :   binding_detail::FakeString arg0;
   63147           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63148           0 :     return false;
   63149             :   }
   63150           0 :   binding_detail::FastErrorResult rv;
   63151           0 :   self->SetWebkitMaskOrigin(NonNullHelper(Constify(arg0)), rv);
   63152           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63153           0 :     return false;
   63154             :   }
   63155           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63156             : 
   63157           0 :   return true;
   63158             : }
   63159             : 
   63160             : static const JSJitInfo WebkitMaskOrigin_getterinfo = {
   63161             :   { (JSJitGetterOp)get_WebkitMaskOrigin },
   63162             :   { prototypes::id::CSS2Properties },
   63163             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63164             :   JSJitInfo::Getter,
   63165             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63166             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63167             :   false,  /* isInfallible. False in setters. */
   63168             :   false,  /* isMovable.  Not relevant for setters. */
   63169             :   false, /* isEliminatable.  Not relevant for setters. */
   63170             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63171             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63172             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63173             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63174             : };
   63175             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63176             : static_assert(0 < 1, "There is no slot for us");
   63177             : static const JSJitInfo WebkitMaskOrigin_setterinfo = {
   63178             :   { (JSJitGetterOp)set_WebkitMaskOrigin },
   63179             :   { prototypes::id::CSS2Properties },
   63180             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63181             :   JSJitInfo::Setter,
   63182             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63183             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63184             :   false,  /* isInfallible. False in setters. */
   63185             :   false,  /* isMovable.  Not relevant for setters. */
   63186             :   false, /* isEliminatable.  Not relevant for setters. */
   63187             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63188             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63189             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63190             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63191             : };
   63192             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63193             : static_assert(0 < 1, "There is no slot for us");
   63194             : 
   63195             : static bool
   63196           0 : get_webkitMaskOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63197             : {
   63198           0 :   binding_detail::FastErrorResult rv;
   63199           0 :   DOMString result;
   63200           0 :   self->GetWebkitMaskOrigin(result, rv);
   63201           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63202           0 :     return false;
   63203             :   }
   63204           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63205           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63206           0 :     return false;
   63207             :   }
   63208           0 :   return true;
   63209             : }
   63210             : 
   63211             : static bool
   63212           0 : set_webkitMaskOrigin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63213             : {
   63214           0 :   binding_detail::FakeString arg0;
   63215           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63216           0 :     return false;
   63217             :   }
   63218           0 :   binding_detail::FastErrorResult rv;
   63219           0 :   self->SetWebkitMaskOrigin(NonNullHelper(Constify(arg0)), rv);
   63220           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63221           0 :     return false;
   63222             :   }
   63223           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63224             : 
   63225           0 :   return true;
   63226             : }
   63227             : 
   63228             : static const JSJitInfo webkitMaskOrigin_getterinfo = {
   63229             :   { (JSJitGetterOp)get_webkitMaskOrigin },
   63230             :   { prototypes::id::CSS2Properties },
   63231             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63232             :   JSJitInfo::Getter,
   63233             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63234             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63235             :   false,  /* isInfallible. False in setters. */
   63236             :   false,  /* isMovable.  Not relevant for setters. */
   63237             :   false, /* isEliminatable.  Not relevant for setters. */
   63238             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63239             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63240             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63241             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63242             : };
   63243             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63244             : static_assert(0 < 1, "There is no slot for us");
   63245             : static const JSJitInfo webkitMaskOrigin_setterinfo = {
   63246             :   { (JSJitGetterOp)set_webkitMaskOrigin },
   63247             :   { prototypes::id::CSS2Properties },
   63248             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63249             :   JSJitInfo::Setter,
   63250             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63251             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63252             :   false,  /* isInfallible. False in setters. */
   63253             :   false,  /* isMovable.  Not relevant for setters. */
   63254             :   false, /* isEliminatable.  Not relevant for setters. */
   63255             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63256             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63257             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63258             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63259             : };
   63260             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63261             : static_assert(0 < 1, "There is no slot for us");
   63262             : 
   63263             : static bool
   63264           0 : get__webkit_mask_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63265             : {
   63266           0 :   binding_detail::FastErrorResult rv;
   63267           0 :   DOMString result;
   63268           0 :   self->GetWebkitMaskOrigin(result, rv);
   63269           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63270           0 :     return false;
   63271             :   }
   63272           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63273           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63274           0 :     return false;
   63275             :   }
   63276           0 :   return true;
   63277             : }
   63278             : 
   63279             : static bool
   63280           0 : set__webkit_mask_origin(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63281             : {
   63282           0 :   binding_detail::FakeString arg0;
   63283           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63284           0 :     return false;
   63285             :   }
   63286           0 :   binding_detail::FastErrorResult rv;
   63287           0 :   self->SetWebkitMaskOrigin(NonNullHelper(Constify(arg0)), rv);
   63288           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63289           0 :     return false;
   63290             :   }
   63291           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63292             : 
   63293           0 :   return true;
   63294             : }
   63295             : 
   63296             : static const JSJitInfo _webkit_mask_origin_getterinfo = {
   63297             :   { (JSJitGetterOp)get__webkit_mask_origin },
   63298             :   { prototypes::id::CSS2Properties },
   63299             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63300             :   JSJitInfo::Getter,
   63301             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63302             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63303             :   false,  /* isInfallible. False in setters. */
   63304             :   false,  /* isMovable.  Not relevant for setters. */
   63305             :   false, /* isEliminatable.  Not relevant for setters. */
   63306             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63307             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63308             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63309             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63310             : };
   63311             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63312             : static_assert(0 < 1, "There is no slot for us");
   63313             : static const JSJitInfo _webkit_mask_origin_setterinfo = {
   63314             :   { (JSJitGetterOp)set__webkit_mask_origin },
   63315             :   { prototypes::id::CSS2Properties },
   63316             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63317             :   JSJitInfo::Setter,
   63318             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63319             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63320             :   false,  /* isInfallible. False in setters. */
   63321             :   false,  /* isMovable.  Not relevant for setters. */
   63322             :   false, /* isEliminatable.  Not relevant for setters. */
   63323             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63324             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63325             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63326             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63327             : };
   63328             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63329             : static_assert(0 < 1, "There is no slot for us");
   63330             : 
   63331             : static bool
   63332           0 : get_WebkitMaskPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63333             : {
   63334           0 :   binding_detail::FastErrorResult rv;
   63335           0 :   DOMString result;
   63336           0 :   self->GetWebkitMaskPosition(result, rv);
   63337           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63338           0 :     return false;
   63339             :   }
   63340           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63341           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63342           0 :     return false;
   63343             :   }
   63344           0 :   return true;
   63345             : }
   63346             : 
   63347             : static bool
   63348           0 : set_WebkitMaskPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63349             : {
   63350           0 :   binding_detail::FakeString arg0;
   63351           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63352           0 :     return false;
   63353             :   }
   63354           0 :   binding_detail::FastErrorResult rv;
   63355           0 :   self->SetWebkitMaskPosition(NonNullHelper(Constify(arg0)), rv);
   63356           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63357           0 :     return false;
   63358             :   }
   63359           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63360             : 
   63361           0 :   return true;
   63362             : }
   63363             : 
   63364             : static const JSJitInfo WebkitMaskPosition_getterinfo = {
   63365             :   { (JSJitGetterOp)get_WebkitMaskPosition },
   63366             :   { prototypes::id::CSS2Properties },
   63367             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63368             :   JSJitInfo::Getter,
   63369             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63370             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63371             :   false,  /* isInfallible. False in setters. */
   63372             :   false,  /* isMovable.  Not relevant for setters. */
   63373             :   false, /* isEliminatable.  Not relevant for setters. */
   63374             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63375             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63376             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63377             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63378             : };
   63379             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63380             : static_assert(0 < 1, "There is no slot for us");
   63381             : static const JSJitInfo WebkitMaskPosition_setterinfo = {
   63382             :   { (JSJitGetterOp)set_WebkitMaskPosition },
   63383             :   { prototypes::id::CSS2Properties },
   63384             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63385             :   JSJitInfo::Setter,
   63386             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63387             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63388             :   false,  /* isInfallible. False in setters. */
   63389             :   false,  /* isMovable.  Not relevant for setters. */
   63390             :   false, /* isEliminatable.  Not relevant for setters. */
   63391             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63392             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63393             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63394             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63395             : };
   63396             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63397             : static_assert(0 < 1, "There is no slot for us");
   63398             : 
   63399             : static bool
   63400           0 : get_webkitMaskPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63401             : {
   63402           0 :   binding_detail::FastErrorResult rv;
   63403           0 :   DOMString result;
   63404           0 :   self->GetWebkitMaskPosition(result, rv);
   63405           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63406           0 :     return false;
   63407             :   }
   63408           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63409           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63410           0 :     return false;
   63411             :   }
   63412           0 :   return true;
   63413             : }
   63414             : 
   63415             : static bool
   63416           0 : set_webkitMaskPosition(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63417             : {
   63418           0 :   binding_detail::FakeString arg0;
   63419           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63420           0 :     return false;
   63421             :   }
   63422           0 :   binding_detail::FastErrorResult rv;
   63423           0 :   self->SetWebkitMaskPosition(NonNullHelper(Constify(arg0)), rv);
   63424           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63425           0 :     return false;
   63426             :   }
   63427           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63428             : 
   63429           0 :   return true;
   63430             : }
   63431             : 
   63432             : static const JSJitInfo webkitMaskPosition_getterinfo = {
   63433             :   { (JSJitGetterOp)get_webkitMaskPosition },
   63434             :   { prototypes::id::CSS2Properties },
   63435             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63436             :   JSJitInfo::Getter,
   63437             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63438             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63439             :   false,  /* isInfallible. False in setters. */
   63440             :   false,  /* isMovable.  Not relevant for setters. */
   63441             :   false, /* isEliminatable.  Not relevant for setters. */
   63442             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63443             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63444             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63445             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63446             : };
   63447             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63448             : static_assert(0 < 1, "There is no slot for us");
   63449             : static const JSJitInfo webkitMaskPosition_setterinfo = {
   63450             :   { (JSJitGetterOp)set_webkitMaskPosition },
   63451             :   { prototypes::id::CSS2Properties },
   63452             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63453             :   JSJitInfo::Setter,
   63454             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63455             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63456             :   false,  /* isInfallible. False in setters. */
   63457             :   false,  /* isMovable.  Not relevant for setters. */
   63458             :   false, /* isEliminatable.  Not relevant for setters. */
   63459             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63460             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63461             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63462             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63463             : };
   63464             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63465             : static_assert(0 < 1, "There is no slot for us");
   63466             : 
   63467             : static bool
   63468           0 : get__webkit_mask_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63469             : {
   63470           0 :   binding_detail::FastErrorResult rv;
   63471           0 :   DOMString result;
   63472           0 :   self->GetWebkitMaskPosition(result, rv);
   63473           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63474           0 :     return false;
   63475             :   }
   63476           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63477           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63478           0 :     return false;
   63479             :   }
   63480           0 :   return true;
   63481             : }
   63482             : 
   63483             : static bool
   63484           0 : set__webkit_mask_position(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63485             : {
   63486           0 :   binding_detail::FakeString arg0;
   63487           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63488           0 :     return false;
   63489             :   }
   63490           0 :   binding_detail::FastErrorResult rv;
   63491           0 :   self->SetWebkitMaskPosition(NonNullHelper(Constify(arg0)), rv);
   63492           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63493           0 :     return false;
   63494             :   }
   63495           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63496             : 
   63497           0 :   return true;
   63498             : }
   63499             : 
   63500             : static const JSJitInfo _webkit_mask_position_getterinfo = {
   63501             :   { (JSJitGetterOp)get__webkit_mask_position },
   63502             :   { prototypes::id::CSS2Properties },
   63503             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63504             :   JSJitInfo::Getter,
   63505             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63506             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63507             :   false,  /* isInfallible. False in setters. */
   63508             :   false,  /* isMovable.  Not relevant for setters. */
   63509             :   false, /* isEliminatable.  Not relevant for setters. */
   63510             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63511             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63512             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63513             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63514             : };
   63515             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63516             : static_assert(0 < 1, "There is no slot for us");
   63517             : static const JSJitInfo _webkit_mask_position_setterinfo = {
   63518             :   { (JSJitGetterOp)set__webkit_mask_position },
   63519             :   { prototypes::id::CSS2Properties },
   63520             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63521             :   JSJitInfo::Setter,
   63522             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63523             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63524             :   false,  /* isInfallible. False in setters. */
   63525             :   false,  /* isMovable.  Not relevant for setters. */
   63526             :   false, /* isEliminatable.  Not relevant for setters. */
   63527             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63528             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63529             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63530             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63531             : };
   63532             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63533             : static_assert(0 < 1, "There is no slot for us");
   63534             : 
   63535             : static bool
   63536           0 : get_WebkitMaskPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63537             : {
   63538           0 :   binding_detail::FastErrorResult rv;
   63539           0 :   DOMString result;
   63540           0 :   self->GetWebkitMaskPositionX(result, rv);
   63541           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63542           0 :     return false;
   63543             :   }
   63544           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63545           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63546           0 :     return false;
   63547             :   }
   63548           0 :   return true;
   63549             : }
   63550             : 
   63551             : static bool
   63552           0 : set_WebkitMaskPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63553             : {
   63554           0 :   binding_detail::FakeString arg0;
   63555           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63556           0 :     return false;
   63557             :   }
   63558           0 :   binding_detail::FastErrorResult rv;
   63559           0 :   self->SetWebkitMaskPositionX(NonNullHelper(Constify(arg0)), rv);
   63560           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63561           0 :     return false;
   63562             :   }
   63563           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63564             : 
   63565           0 :   return true;
   63566             : }
   63567             : 
   63568             : static const JSJitInfo WebkitMaskPositionX_getterinfo = {
   63569             :   { (JSJitGetterOp)get_WebkitMaskPositionX },
   63570             :   { prototypes::id::CSS2Properties },
   63571             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63572             :   JSJitInfo::Getter,
   63573             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63574             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63575             :   false,  /* isInfallible. False in setters. */
   63576             :   false,  /* isMovable.  Not relevant for setters. */
   63577             :   false, /* isEliminatable.  Not relevant for setters. */
   63578             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63579             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63580             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63581             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63582             : };
   63583             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63584             : static_assert(0 < 1, "There is no slot for us");
   63585             : static const JSJitInfo WebkitMaskPositionX_setterinfo = {
   63586             :   { (JSJitGetterOp)set_WebkitMaskPositionX },
   63587             :   { prototypes::id::CSS2Properties },
   63588             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63589             :   JSJitInfo::Setter,
   63590             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63591             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63592             :   false,  /* isInfallible. False in setters. */
   63593             :   false,  /* isMovable.  Not relevant for setters. */
   63594             :   false, /* isEliminatable.  Not relevant for setters. */
   63595             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63596             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63597             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63598             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63599             : };
   63600             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63601             : static_assert(0 < 1, "There is no slot for us");
   63602             : 
   63603             : static bool
   63604           0 : get_webkitMaskPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63605             : {
   63606           0 :   binding_detail::FastErrorResult rv;
   63607           0 :   DOMString result;
   63608           0 :   self->GetWebkitMaskPositionX(result, rv);
   63609           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63610           0 :     return false;
   63611             :   }
   63612           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63613           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63614           0 :     return false;
   63615             :   }
   63616           0 :   return true;
   63617             : }
   63618             : 
   63619             : static bool
   63620           0 : set_webkitMaskPositionX(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63621             : {
   63622           0 :   binding_detail::FakeString arg0;
   63623           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63624           0 :     return false;
   63625             :   }
   63626           0 :   binding_detail::FastErrorResult rv;
   63627           0 :   self->SetWebkitMaskPositionX(NonNullHelper(Constify(arg0)), rv);
   63628           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63629           0 :     return false;
   63630             :   }
   63631           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63632             : 
   63633           0 :   return true;
   63634             : }
   63635             : 
   63636             : static const JSJitInfo webkitMaskPositionX_getterinfo = {
   63637             :   { (JSJitGetterOp)get_webkitMaskPositionX },
   63638             :   { prototypes::id::CSS2Properties },
   63639             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63640             :   JSJitInfo::Getter,
   63641             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63642             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63643             :   false,  /* isInfallible. False in setters. */
   63644             :   false,  /* isMovable.  Not relevant for setters. */
   63645             :   false, /* isEliminatable.  Not relevant for setters. */
   63646             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63647             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63648             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63649             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63650             : };
   63651             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63652             : static_assert(0 < 1, "There is no slot for us");
   63653             : static const JSJitInfo webkitMaskPositionX_setterinfo = {
   63654             :   { (JSJitGetterOp)set_webkitMaskPositionX },
   63655             :   { prototypes::id::CSS2Properties },
   63656             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63657             :   JSJitInfo::Setter,
   63658             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63659             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63660             :   false,  /* isInfallible. False in setters. */
   63661             :   false,  /* isMovable.  Not relevant for setters. */
   63662             :   false, /* isEliminatable.  Not relevant for setters. */
   63663             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63664             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63665             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63666             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63667             : };
   63668             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63669             : static_assert(0 < 1, "There is no slot for us");
   63670             : 
   63671             : static bool
   63672           0 : get__webkit_mask_position_x(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63673             : {
   63674           0 :   binding_detail::FastErrorResult rv;
   63675           0 :   DOMString result;
   63676           0 :   self->GetWebkitMaskPositionX(result, rv);
   63677           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63678           0 :     return false;
   63679             :   }
   63680           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63681           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63682           0 :     return false;
   63683             :   }
   63684           0 :   return true;
   63685             : }
   63686             : 
   63687             : static bool
   63688           0 : set__webkit_mask_position_x(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63689             : {
   63690           0 :   binding_detail::FakeString arg0;
   63691           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63692           0 :     return false;
   63693             :   }
   63694           0 :   binding_detail::FastErrorResult rv;
   63695           0 :   self->SetWebkitMaskPositionX(NonNullHelper(Constify(arg0)), rv);
   63696           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63697           0 :     return false;
   63698             :   }
   63699           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63700             : 
   63701           0 :   return true;
   63702             : }
   63703             : 
   63704             : static const JSJitInfo _webkit_mask_position_x_getterinfo = {
   63705             :   { (JSJitGetterOp)get__webkit_mask_position_x },
   63706             :   { prototypes::id::CSS2Properties },
   63707             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63708             :   JSJitInfo::Getter,
   63709             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63710             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63711             :   false,  /* isInfallible. False in setters. */
   63712             :   false,  /* isMovable.  Not relevant for setters. */
   63713             :   false, /* isEliminatable.  Not relevant for setters. */
   63714             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63715             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63716             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63717             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63718             : };
   63719             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63720             : static_assert(0 < 1, "There is no slot for us");
   63721             : static const JSJitInfo _webkit_mask_position_x_setterinfo = {
   63722             :   { (JSJitGetterOp)set__webkit_mask_position_x },
   63723             :   { prototypes::id::CSS2Properties },
   63724             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63725             :   JSJitInfo::Setter,
   63726             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63727             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63728             :   false,  /* isInfallible. False in setters. */
   63729             :   false,  /* isMovable.  Not relevant for setters. */
   63730             :   false, /* isEliminatable.  Not relevant for setters. */
   63731             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63732             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63733             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63734             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63735             : };
   63736             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63737             : static_assert(0 < 1, "There is no slot for us");
   63738             : 
   63739             : static bool
   63740           0 : get_WebkitMaskPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63741             : {
   63742           0 :   binding_detail::FastErrorResult rv;
   63743           0 :   DOMString result;
   63744           0 :   self->GetWebkitMaskPositionY(result, rv);
   63745           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63746           0 :     return false;
   63747             :   }
   63748           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63749           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63750           0 :     return false;
   63751             :   }
   63752           0 :   return true;
   63753             : }
   63754             : 
   63755             : static bool
   63756           0 : set_WebkitMaskPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63757             : {
   63758           0 :   binding_detail::FakeString arg0;
   63759           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63760           0 :     return false;
   63761             :   }
   63762           0 :   binding_detail::FastErrorResult rv;
   63763           0 :   self->SetWebkitMaskPositionY(NonNullHelper(Constify(arg0)), rv);
   63764           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63765           0 :     return false;
   63766             :   }
   63767           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63768             : 
   63769           0 :   return true;
   63770             : }
   63771             : 
   63772             : static const JSJitInfo WebkitMaskPositionY_getterinfo = {
   63773             :   { (JSJitGetterOp)get_WebkitMaskPositionY },
   63774             :   { prototypes::id::CSS2Properties },
   63775             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63776             :   JSJitInfo::Getter,
   63777             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63778             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63779             :   false,  /* isInfallible. False in setters. */
   63780             :   false,  /* isMovable.  Not relevant for setters. */
   63781             :   false, /* isEliminatable.  Not relevant for setters. */
   63782             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63783             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63784             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63785             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63786             : };
   63787             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63788             : static_assert(0 < 1, "There is no slot for us");
   63789             : static const JSJitInfo WebkitMaskPositionY_setterinfo = {
   63790             :   { (JSJitGetterOp)set_WebkitMaskPositionY },
   63791             :   { prototypes::id::CSS2Properties },
   63792             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63793             :   JSJitInfo::Setter,
   63794             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63795             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63796             :   false,  /* isInfallible. False in setters. */
   63797             :   false,  /* isMovable.  Not relevant for setters. */
   63798             :   false, /* isEliminatable.  Not relevant for setters. */
   63799             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63800             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63801             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63802             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63803             : };
   63804             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63805             : static_assert(0 < 1, "There is no slot for us");
   63806             : 
   63807             : static bool
   63808           0 : get_webkitMaskPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63809             : {
   63810           0 :   binding_detail::FastErrorResult rv;
   63811           0 :   DOMString result;
   63812           0 :   self->GetWebkitMaskPositionY(result, rv);
   63813           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63814           0 :     return false;
   63815             :   }
   63816           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63817           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63818           0 :     return false;
   63819             :   }
   63820           0 :   return true;
   63821             : }
   63822             : 
   63823             : static bool
   63824           0 : set_webkitMaskPositionY(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63825             : {
   63826           0 :   binding_detail::FakeString arg0;
   63827           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63828           0 :     return false;
   63829             :   }
   63830           0 :   binding_detail::FastErrorResult rv;
   63831           0 :   self->SetWebkitMaskPositionY(NonNullHelper(Constify(arg0)), rv);
   63832           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63833           0 :     return false;
   63834             :   }
   63835           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63836             : 
   63837           0 :   return true;
   63838             : }
   63839             : 
   63840             : static const JSJitInfo webkitMaskPositionY_getterinfo = {
   63841             :   { (JSJitGetterOp)get_webkitMaskPositionY },
   63842             :   { prototypes::id::CSS2Properties },
   63843             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63844             :   JSJitInfo::Getter,
   63845             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63846             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63847             :   false,  /* isInfallible. False in setters. */
   63848             :   false,  /* isMovable.  Not relevant for setters. */
   63849             :   false, /* isEliminatable.  Not relevant for setters. */
   63850             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63851             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63852             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63853             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63854             : };
   63855             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63856             : static_assert(0 < 1, "There is no slot for us");
   63857             : static const JSJitInfo webkitMaskPositionY_setterinfo = {
   63858             :   { (JSJitGetterOp)set_webkitMaskPositionY },
   63859             :   { prototypes::id::CSS2Properties },
   63860             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63861             :   JSJitInfo::Setter,
   63862             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63863             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63864             :   false,  /* isInfallible. False in setters. */
   63865             :   false,  /* isMovable.  Not relevant for setters. */
   63866             :   false, /* isEliminatable.  Not relevant for setters. */
   63867             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63868             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63869             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63870             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63871             : };
   63872             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63873             : static_assert(0 < 1, "There is no slot for us");
   63874             : 
   63875             : static bool
   63876           0 : get__webkit_mask_position_y(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63877             : {
   63878           0 :   binding_detail::FastErrorResult rv;
   63879           0 :   DOMString result;
   63880           0 :   self->GetWebkitMaskPositionY(result, rv);
   63881           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63882           0 :     return false;
   63883             :   }
   63884           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63885           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63886           0 :     return false;
   63887             :   }
   63888           0 :   return true;
   63889             : }
   63890             : 
   63891             : static bool
   63892           0 : set__webkit_mask_position_y(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63893             : {
   63894           0 :   binding_detail::FakeString arg0;
   63895           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63896           0 :     return false;
   63897             :   }
   63898           0 :   binding_detail::FastErrorResult rv;
   63899           0 :   self->SetWebkitMaskPositionY(NonNullHelper(Constify(arg0)), rv);
   63900           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63901           0 :     return false;
   63902             :   }
   63903           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63904             : 
   63905           0 :   return true;
   63906             : }
   63907             : 
   63908             : static const JSJitInfo _webkit_mask_position_y_getterinfo = {
   63909             :   { (JSJitGetterOp)get__webkit_mask_position_y },
   63910             :   { prototypes::id::CSS2Properties },
   63911             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63912             :   JSJitInfo::Getter,
   63913             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63914             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63915             :   false,  /* isInfallible. False in setters. */
   63916             :   false,  /* isMovable.  Not relevant for setters. */
   63917             :   false, /* isEliminatable.  Not relevant for setters. */
   63918             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63919             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63920             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63921             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63922             : };
   63923             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63924             : static_assert(0 < 1, "There is no slot for us");
   63925             : static const JSJitInfo _webkit_mask_position_y_setterinfo = {
   63926             :   { (JSJitGetterOp)set__webkit_mask_position_y },
   63927             :   { prototypes::id::CSS2Properties },
   63928             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63929             :   JSJitInfo::Setter,
   63930             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63931             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   63932             :   false,  /* isInfallible. False in setters. */
   63933             :   false,  /* isMovable.  Not relevant for setters. */
   63934             :   false, /* isEliminatable.  Not relevant for setters. */
   63935             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63936             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63937             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63938             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63939             : };
   63940             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63941             : static_assert(0 < 1, "There is no slot for us");
   63942             : 
   63943             : static bool
   63944           0 : get_WebkitMaskRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   63945             : {
   63946           0 :   binding_detail::FastErrorResult rv;
   63947           0 :   DOMString result;
   63948           0 :   self->GetWebkitMaskRepeat(result, rv);
   63949           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63950           0 :     return false;
   63951             :   }
   63952           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63953           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   63954           0 :     return false;
   63955             :   }
   63956           0 :   return true;
   63957             : }
   63958             : 
   63959             : static bool
   63960           0 : set_WebkitMaskRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   63961             : {
   63962           0 :   binding_detail::FakeString arg0;
   63963           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   63964           0 :     return false;
   63965             :   }
   63966           0 :   binding_detail::FastErrorResult rv;
   63967           0 :   self->SetWebkitMaskRepeat(NonNullHelper(Constify(arg0)), rv);
   63968           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   63969           0 :     return false;
   63970             :   }
   63971           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   63972             : 
   63973           0 :   return true;
   63974             : }
   63975             : 
   63976             : static const JSJitInfo WebkitMaskRepeat_getterinfo = {
   63977             :   { (JSJitGetterOp)get_WebkitMaskRepeat },
   63978             :   { prototypes::id::CSS2Properties },
   63979             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63980             :   JSJitInfo::Getter,
   63981             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63982             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   63983             :   false,  /* isInfallible. False in setters. */
   63984             :   false,  /* isMovable.  Not relevant for setters. */
   63985             :   false, /* isEliminatable.  Not relevant for setters. */
   63986             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   63987             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   63988             :   false,  /* isTypedMethod.  Only relevant for methods. */
   63989             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   63990             : };
   63991             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   63992             : static_assert(0 < 1, "There is no slot for us");
   63993             : static const JSJitInfo WebkitMaskRepeat_setterinfo = {
   63994             :   { (JSJitGetterOp)set_WebkitMaskRepeat },
   63995             :   { prototypes::id::CSS2Properties },
   63996             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   63997             :   JSJitInfo::Setter,
   63998             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   63999             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   64000             :   false,  /* isInfallible. False in setters. */
   64001             :   false,  /* isMovable.  Not relevant for setters. */
   64002             :   false, /* isEliminatable.  Not relevant for setters. */
   64003             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   64004             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   64005             :   false,  /* isTypedMethod.  Only relevant for methods. */
   64006             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   64007             : };
   64008             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   64009             : static_assert(0 < 1, "There is no slot for us");
   64010             : 
   64011             : static bool
   64012           0 : get_webkitMaskRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   64013             : {
   64014           0 :   binding_detail::FastErrorResult rv;
   64015           0 :   DOMString result;
   64016           0 :   self->GetWebkitMaskRepeat(result, rv);
   64017           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   64018           0 :     return false;
   64019             :   }
   64020           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   64021           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   64022           0 :     return false;
   64023             :   }
   64024           0 :   return true;
   64025             : }
   64026             : 
   64027             : static bool
   64028           0 : set_webkitMaskRepeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   64029             : {
   64030           0 :   binding_detail::FakeString arg0;
   64031           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   64032           0 :     return false;
   64033             :   }
   64034           0 :   binding_detail::FastErrorResult rv;
   64035           0 :   self->SetWebkitMaskRepeat(NonNullHelper(Constify(arg0)), rv);
   64036           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   64037           0 :     return false;
   64038             :   }
   64039           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   64040             : 
   64041           0 :   return true;
   64042             : }
   64043             : 
   64044             : static const JSJitInfo webkitMaskRepeat_getterinfo = {
   64045             :   { (JSJitGetterOp)get_webkitMaskRepeat },
   64046             :   { prototypes::id::CSS2Properties },
   64047             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   64048             :   JSJitInfo::Getter,
   64049             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   64050             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   64051             :   false,  /* isInfallible. False in setters. */
   64052             :   false,  /* isMovable.  Not relevant for setters. */
   64053             :   false, /* isEliminatable.  Not relevant for setters. */
   64054             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   64055             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   64056             :   false,  /* isTypedMethod.  Only relevant for methods. */
   64057             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   64058             : };
   64059             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   64060             : static_assert(0 < 1, "There is no slot for us");
   64061             : static const JSJitInfo webkitMaskRepeat_setterinfo = {
   64062             :   { (JSJitGetterOp)set_webkitMaskRepeat },
   64063             :   { prototypes::id::CSS2Properties },
   64064             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   64065             :   JSJitInfo::Setter,
   64066             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   64067             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   64068             :   false,  /* isInfallible. False in setters. */
   64069             :   false,  /* isMovable.  Not relevant for setters. */
   64070             :   false, /* isEliminatable.  Not relevant for setters. */
   64071             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   64072             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   64073             :   false,  /* isTypedMethod.  Only relevant for methods. */
   64074             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   64075             : };
   64076             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   64077             : static_assert(0 < 1, "There is no slot for us");
   64078             : 
   64079             : static bool
   64080           0 : get__webkit_mask_repeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   64081             : {
   64082           0 :   binding_detail::FastErrorResult rv;
   64083           0 :   DOMString result;
   64084           0 :   self->GetWebkitMaskRepeat(result, rv);
   64085           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   64086           0 :     return false;
   64087             :   }
   64088           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   64089           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   64090           0 :     return false;
   64091             :   }
   64092           0 :   return true;
   64093             : }
   64094             : 
   64095             : static bool
   64096           0 : set__webkit_mask_repeat(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   64097             : {
   64098           0 :   binding_detail::FakeString arg0;
   64099           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   64100           0 :     return false;
   64101             :   }
   64102           0 :   binding_detail::FastErrorResult rv;
   64103           0 :   self->SetWebkitMaskRepeat(NonNullHelper(Constify(arg0)), rv);
   64104           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   64105           0 :     return false;
   64106             :   }
   64107           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   64108             : 
   64109           0 :   return true;
   64110             : }
   64111             : 
   64112             : static const JSJitInfo _webkit_mask_repeat_getterinfo = {
   64113             :   { (JSJitGetterOp)get__webkit_mask_repeat },
   64114             :   { prototypes::id::CSS2Properties },
   64115             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   64116             :   JSJitInfo::Getter,
   64117             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   64118             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   64119             :   false,  /* isInfallible. False in setters. */
   64120             :   false,  /* isMovable.  Not relevant for setters. */
   64121             :   false, /* isEliminatable.  Not relevant for setters. */
   64122             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   64123             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   64124             :   false,  /* isTypedMethod.  Only relevant for methods. */
   64125             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   64126             : };
   64127             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   64128             : static_assert(0 < 1, "There is no slot for us");
   64129             : static const JSJitInfo _webkit_mask_repeat_setterinfo = {
   64130             :   { (JSJitGetterOp)set__webkit_mask_repeat },
   64131             :   { prototypes::id::CSS2Properties },
   64132             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   64133             :   JSJitInfo::Setter,
   64134             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   64135             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   64136             :   false,  /* isInfallible. False in setters. */
   64137             :   false,  /* isMovable.  Not relevant for setters. */
   64138             :   false, /* isEliminatable.  Not relevant for setters. */
   64139             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   64140             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   64141             :   false,  /* isTypedMethod.  Only relevant for methods. */
   64142             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   64143             : };
   64144             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   64145             : static_assert(0 < 1, "There is no slot for us");
   64146             : 
   64147             : static bool
   64148           0 : get_WebkitMaskSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   64149             : {
   64150           0 :   binding_detail::FastErrorResult rv;
   64151           0 :   DOMString result;
   64152           0 :   self->GetWebkitMaskSize(result, rv);
   64153           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   64154           0 :     return false;
   64155             :   }
   64156           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   64157           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   64158           0 :     return false;
   64159             :   }
   64160           0 :   return true;
   64161             : }
   64162             : 
   64163             : static bool
   64164           0 : set_WebkitMaskSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   64165             : {
   64166           0 :   binding_detail::FakeString arg0;
   64167           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   64168           0 :     return false;
   64169             :   }
   64170           0 :   binding_detail::FastErrorResult rv;
   64171           0 :   self->SetWebkitMaskSize(NonNullHelper(Constify(arg0)), rv);
   64172           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   64173           0 :     return false;
   64174             :   }
   64175           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   64176             : 
   64177           0 :   return true;
   64178             : }
   64179             : 
   64180             : static const JSJitInfo WebkitMaskSize_getterinfo = {
   64181             :   { (JSJitGetterOp)get_WebkitMaskSize },
   64182             :   { prototypes::id::CSS2Properties },
   64183             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   64184             :   JSJitInfo::Getter,
   64185             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   64186             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   64187             :   false,  /* isInfallible. False in setters. */
   64188             :   false,  /* isMovable.  Not relevant for setters. */
   64189             :   false, /* isEliminatable.  Not relevant for setters. */
   64190             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   64191             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   64192             :   false,  /* isTypedMethod.  Only relevant for methods. */
   64193             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   64194             : };
   64195             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   64196             : static_assert(0 < 1, "There is no slot for us");
   64197             : static const JSJitInfo WebkitMaskSize_setterinfo = {
   64198             :   { (JSJitGetterOp)set_WebkitMaskSize },
   64199             :   { prototypes::id::CSS2Properties },
   64200             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   64201             :   JSJitInfo::Setter,
   64202             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   64203             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   64204             :   false,  /* isInfallible. False in setters. */
   64205             :   false,  /* isMovable.  Not relevant for setters. */
   64206             :   false, /* isEliminatable.  Not relevant for setters. */
   64207             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   64208             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   64209             :   false,  /* isTypedMethod.  Only relevant for methods. */
   64210             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   64211             : };
   64212             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   64213             : static_assert(0 < 1, "There is no slot for us");
   64214             : 
   64215             : static bool
   64216           0 : get_webkitMaskSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   64217             : {
   64218           0 :   binding_detail::FastErrorResult rv;
   64219           0 :   DOMString result;
   64220           0 :   self->GetWebkitMaskSize(result, rv);
   64221           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   64222           0 :     return false;
   64223             :   }
   64224           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   64225           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   64226           0 :     return false;
   64227             :   }
   64228           0 :   return true;
   64229             : }
   64230             : 
   64231             : static bool
   64232           0 : set_webkitMaskSize(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   64233             : {
   64234           0 :   binding_detail::FakeString arg0;
   64235           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   64236           0 :     return false;
   64237             :   }
   64238           0 :   binding_detail::FastErrorResult rv;
   64239           0 :   self->SetWebkitMaskSize(NonNullHelper(Constify(arg0)), rv);
   64240           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   64241           0 :     return false;
   64242             :   }
   64243           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   64244             : 
   64245           0 :   return true;
   64246             : }
   64247             : 
   64248             : static const JSJitInfo webkitMaskSize_getterinfo = {
   64249             :   { (JSJitGetterOp)get_webkitMaskSize },
   64250             :   { prototypes::id::CSS2Properties },
   64251             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   64252             :   JSJitInfo::Getter,
   64253             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   64254             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   64255             :   false,  /* isInfallible. False in setters. */
   64256             :   false,  /* isMovable.  Not relevant for setters. */
   64257             :   false, /* isEliminatable.  Not relevant for setters. */
   64258             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   64259             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   64260             :   false,  /* isTypedMethod.  Only relevant for methods. */
   64261             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   64262             : };
   64263             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   64264             : static_assert(0 < 1, "There is no slot for us");
   64265             : static const JSJitInfo webkitMaskSize_setterinfo = {
   64266             :   { (JSJitGetterOp)set_webkitMaskSize },
   64267             :   { prototypes::id::CSS2Properties },
   64268             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   64269             :   JSJitInfo::Setter,
   64270             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   64271             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   64272             :   false,  /* isInfallible. False in setters. */
   64273             :   false,  /* isMovable.  Not relevant for setters. */
   64274             :   false, /* isEliminatable.  Not relevant for setters. */
   64275             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   64276             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   64277             :   false,  /* isTypedMethod.  Only relevant for methods. */
   64278             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   64279             : };
   64280             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   64281             : static_assert(0 < 1, "There is no slot for us");
   64282             : 
   64283             : static bool
   64284           0 : get__webkit_mask_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitGetterCallArgs args)
   64285             : {
   64286           0 :   binding_detail::FastErrorResult rv;
   64287           0 :   DOMString result;
   64288           0 :   self->GetWebkitMaskSize(result, rv);
   64289           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   64290           0 :     return false;
   64291             :   }
   64292           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   64293           0 :   if (!xpc::NonVoidStringToJsval(cx, result, args.rval())) {
   64294           0 :     return false;
   64295             :   }
   64296           0 :   return true;
   64297             : }
   64298             : 
   64299             : static bool
   64300           0 : set__webkit_mask_size(JSContext* cx, JS::Handle<JSObject*> obj, nsDOMCSSDeclaration* self, JSJitSetterCallArgs args)
   64301             : {
   64302           0 :   binding_detail::FakeString arg0;
   64303           0 :   if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
   64304           0 :     return false;
   64305             :   }
   64306           0 :   binding_detail::FastErrorResult rv;
   64307           0 :   self->SetWebkitMaskSize(NonNullHelper(Constify(arg0)), rv);
   64308           0 :   if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx))) {
   64309           0 :     return false;
   64310             :   }
   64311           0 :   MOZ_ASSERT(!JS_IsExceptionPending(cx));
   64312             : 
   64313           0 :   return true;
   64314             : }
   64315             : 
   64316             : static const JSJitInfo _webkit_mask_size_getterinfo = {
   64317             :   { (JSJitGetterOp)get__webkit_mask_size },
   64318             :   { prototypes::id::CSS2Properties },
   64319             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   64320             :   JSJitInfo::Getter,
   64321             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   64322             :   JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
   64323             :   false,  /* isInfallible. False in setters. */
   64324             :   false,  /* isMovable.  Not relevant for setters. */
   64325             :   false, /* isEliminatable.  Not relevant for setters. */
   64326             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   64327             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   64328             :   false,  /* isTypedMethod.  Only relevant for methods. */
   64329             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   64330             : };
   64331             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   64332             : static_assert(0 < 1, "There is no slot for us");
   64333             : static const JSJitInfo _webkit_mask_size_setterinfo = {
   64334             :   { (JSJitGetterOp)set__webkit_mask_size },
   64335             :   { prototypes::id::CSS2Properties },
   64336             :   { PrototypeTraits<prototypes::id::CSS2Properties>::Depth },
   64337             :   JSJitInfo::Setter,
   64338             :   JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
   64339             :   JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
   64340             :   false,  /* isInfallible. False in setters. */
   64341             :   false,  /* isMovable.  Not relevant for setters. */
   64342             :   false, /* isEliminatable.  Not relevant for setters. */
   64343             :   false, /* isAlwaysInSlot.  Only relevant for getters. */
   64344             :   false, /* isLazilyCachedInSlot.  Only relevant for getters. */
   64345             :   false,  /* isTypedMethod.  Only relevant for methods. */
   64346             :   0   /* Reserved slot index, if we're stored in a slot, else 0. */
   64347             : };
   64348             : static_assert(0 <= JSJitInfo::maxSlotIndex, "We won't fit");
   64349             : static_assert(0 < 1, "There is no slot for us");
   64350             : 
   64351             : static void
   64352           0 : _objectMoved(JSObject* obj, const JSObject* old)
   64353             : {
   64354           0 :   nsDOMCSSDeclaration* self = UnwrapPossiblyNotInitializedDOMObject<nsDOMCSSDeclaration>(obj);
   64355           0 :   if (self) {
   64356           0 :     UpdateWrapper(self, self, obj, old);
   64357             :   }
   64358           0 : }
   64359             : 
   64360             : // We deliberately use brace-elision to make Visual Studio produce better initalization code.
   64361             : #if defined(__clang__)
   64362             : #pragma clang diagnostic push
   64363             : #pragma clang diagnostic ignored "-Wmissing-braces"
   64364             : #endif
   64365             : static const JSFunctionSpec sMethods_specs[] = {
   64366             :   JS_SYM_FNSPEC(iterator, nullptr, nullptr, 0, 0, "ArrayValues"),
   64367             :   JS_FS_END
   64368             : };
   64369             : #if defined(__clang__)
   64370             : #pragma clang diagnostic pop
   64371             : #endif
   64372             : 
   64373             : 
   64374             : // Can't be const because the pref-enabled boolean needs to be writable
   64375             : static Prefable<const JSFunctionSpec> sMethods[] = {
   64376             :   { nullptr, &sMethods_specs[0] },
   64377             :   { nullptr, nullptr }
   64378             : };
   64379             : 
   64380             : static_assert(1 <= 1ull << NUM_BITS_PROPERTY_INFO_PREF_INDEX,
   64381             :     "We have a prefable index that is >= (1 << NUM_BITS_PROPERTY_INFO_PREF_INDEX)");
   64382             : static_assert(1 <= 1ull << NUM_BITS_PROPERTY_INFO_SPEC_INDEX,
   64383             :     "We have a spec index that is >= (1 << NUM_BITS_PROPERTY_INFO_SPEC_INDEX)");
   64384             : 
   64385             : // We deliberately use brace-elision to make Visual Studio produce better initalization code.
   64386             : #if defined(__clang__)
   64387             : #pragma clang diagnostic push
   64388             : #pragma clang diagnostic ignored "-Wmissing-braces"
   64389             : #endif
   64390             : static const JSPropertySpec sAttributes_specs[] = {
   64391             :   { "alignContent", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &alignContent_getterinfo, GenericBindingSetter, &alignContent_setterinfo },
   64392             :   { "align-content", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &align_content_getterinfo, GenericBindingSetter, &align_content_setterinfo },
   64393             :   { "alignItems", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &alignItems_getterinfo, GenericBindingSetter, &alignItems_setterinfo },
   64394             :   { "align-items", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &align_items_getterinfo, GenericBindingSetter, &align_items_setterinfo },
   64395             :   { "alignSelf", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &alignSelf_getterinfo, GenericBindingSetter, &alignSelf_setterinfo },
   64396             :   { "align-self", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &align_self_getterinfo, GenericBindingSetter, &align_self_setterinfo },
   64397             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64398             :   { "all", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &all_getterinfo, GenericBindingSetter, &all_setterinfo },
   64399             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64400             :   { "animation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animation_getterinfo, GenericBindingSetter, &animation_setterinfo },
   64401             :   { "animationDelay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animationDelay_getterinfo, GenericBindingSetter, &animationDelay_setterinfo },
   64402             :   { "animation-delay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animation_delay_getterinfo, GenericBindingSetter, &animation_delay_setterinfo },
   64403             :   { "animationDirection", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animationDirection_getterinfo, GenericBindingSetter, &animationDirection_setterinfo },
   64404             :   { "animation-direction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animation_direction_getterinfo, GenericBindingSetter, &animation_direction_setterinfo },
   64405             :   { "animationDuration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animationDuration_getterinfo, GenericBindingSetter, &animationDuration_setterinfo },
   64406             :   { "animation-duration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animation_duration_getterinfo, GenericBindingSetter, &animation_duration_setterinfo },
   64407             :   { "animationFillMode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animationFillMode_getterinfo, GenericBindingSetter, &animationFillMode_setterinfo },
   64408             :   { "animation-fill-mode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animation_fill_mode_getterinfo, GenericBindingSetter, &animation_fill_mode_setterinfo },
   64409             :   { "animationIterationCount", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animationIterationCount_getterinfo, GenericBindingSetter, &animationIterationCount_setterinfo },
   64410             :   { "animation-iteration-count", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animation_iteration_count_getterinfo, GenericBindingSetter, &animation_iteration_count_setterinfo },
   64411             :   { "animationName", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animationName_getterinfo, GenericBindingSetter, &animationName_setterinfo },
   64412             :   { "animation-name", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animation_name_getterinfo, GenericBindingSetter, &animation_name_setterinfo },
   64413             :   { "animationPlayState", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animationPlayState_getterinfo, GenericBindingSetter, &animationPlayState_setterinfo },
   64414             :   { "animation-play-state", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animation_play_state_getterinfo, GenericBindingSetter, &animation_play_state_setterinfo },
   64415             :   { "animationTimingFunction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animationTimingFunction_getterinfo, GenericBindingSetter, &animationTimingFunction_setterinfo },
   64416             :   { "animation-timing-function", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &animation_timing_function_getterinfo, GenericBindingSetter, &animation_timing_function_setterinfo },
   64417             :   { "MozAppearance", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozAppearance_getterinfo, GenericBindingSetter, &MozAppearance_setterinfo },
   64418             :   { "-moz-appearance", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_appearance_getterinfo, GenericBindingSetter, &_moz_appearance_setterinfo },
   64419             :   { "backfaceVisibility", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backfaceVisibility_getterinfo, GenericBindingSetter, &backfaceVisibility_setterinfo },
   64420             :   { "backface-visibility", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backface_visibility_getterinfo, GenericBindingSetter, &backface_visibility_setterinfo },
   64421             :   { "background", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &background_getterinfo, GenericBindingSetter, &background_setterinfo },
   64422             :   { "backgroundAttachment", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backgroundAttachment_getterinfo, GenericBindingSetter, &backgroundAttachment_setterinfo },
   64423             :   { "background-attachment", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &background_attachment_getterinfo, GenericBindingSetter, &background_attachment_setterinfo },
   64424             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64425             :   { "backgroundBlendMode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backgroundBlendMode_getterinfo, GenericBindingSetter, &backgroundBlendMode_setterinfo },
   64426             :   { "background-blend-mode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &background_blend_mode_getterinfo, GenericBindingSetter, &background_blend_mode_setterinfo },
   64427             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64428             :   { "backgroundClip", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backgroundClip_getterinfo, GenericBindingSetter, &backgroundClip_setterinfo },
   64429             :   { "background-clip", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &background_clip_getterinfo, GenericBindingSetter, &background_clip_setterinfo },
   64430             :   { "backgroundColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backgroundColor_getterinfo, GenericBindingSetter, &backgroundColor_setterinfo },
   64431             :   { "background-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &background_color_getterinfo, GenericBindingSetter, &background_color_setterinfo },
   64432             :   { "backgroundImage", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backgroundImage_getterinfo, GenericBindingSetter, &backgroundImage_setterinfo },
   64433             :   { "background-image", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &background_image_getterinfo, GenericBindingSetter, &background_image_setterinfo },
   64434             :   { "backgroundOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backgroundOrigin_getterinfo, GenericBindingSetter, &backgroundOrigin_setterinfo },
   64435             :   { "background-origin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &background_origin_getterinfo, GenericBindingSetter, &background_origin_setterinfo },
   64436             :   { "backgroundPosition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backgroundPosition_getterinfo, GenericBindingSetter, &backgroundPosition_setterinfo },
   64437             :   { "background-position", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &background_position_getterinfo, GenericBindingSetter, &background_position_setterinfo },
   64438             :   { "backgroundPositionX", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backgroundPositionX_getterinfo, GenericBindingSetter, &backgroundPositionX_setterinfo },
   64439             :   { "background-position-x", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &background_position_x_getterinfo, GenericBindingSetter, &background_position_x_setterinfo },
   64440             :   { "backgroundPositionY", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backgroundPositionY_getterinfo, GenericBindingSetter, &backgroundPositionY_setterinfo },
   64441             :   { "background-position-y", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &background_position_y_getterinfo, GenericBindingSetter, &background_position_y_setterinfo },
   64442             :   { "backgroundRepeat", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backgroundRepeat_getterinfo, GenericBindingSetter, &backgroundRepeat_setterinfo },
   64443             :   { "background-repeat", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &background_repeat_getterinfo, GenericBindingSetter, &background_repeat_setterinfo },
   64444             :   { "backgroundSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &backgroundSize_getterinfo, GenericBindingSetter, &backgroundSize_setterinfo },
   64445             :   { "background-size", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &background_size_getterinfo, GenericBindingSetter, &background_size_setterinfo },
   64446             :   { "MozBinding", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBinding_getterinfo, GenericBindingSetter, &MozBinding_setterinfo },
   64447             :   { "-moz-binding", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_binding_getterinfo, GenericBindingSetter, &_moz_binding_setterinfo },
   64448             :   { "blockSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &blockSize_getterinfo, GenericBindingSetter, &blockSize_setterinfo },
   64449             :   { "block-size", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &block_size_getterinfo, GenericBindingSetter, &block_size_setterinfo },
   64450             :   { "border", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_getterinfo, GenericBindingSetter, &border_setterinfo },
   64451             :   { "borderBlockEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBlockEnd_getterinfo, GenericBindingSetter, &borderBlockEnd_setterinfo },
   64452             :   { "border-block-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_block_end_getterinfo, GenericBindingSetter, &border_block_end_setterinfo },
   64453             :   { "borderBlockEndColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBlockEndColor_getterinfo, GenericBindingSetter, &borderBlockEndColor_setterinfo },
   64454             :   { "border-block-end-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_block_end_color_getterinfo, GenericBindingSetter, &border_block_end_color_setterinfo },
   64455             :   { "borderBlockEndStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBlockEndStyle_getterinfo, GenericBindingSetter, &borderBlockEndStyle_setterinfo },
   64456             :   { "border-block-end-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_block_end_style_getterinfo, GenericBindingSetter, &border_block_end_style_setterinfo },
   64457             :   { "borderBlockEndWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBlockEndWidth_getterinfo, GenericBindingSetter, &borderBlockEndWidth_setterinfo },
   64458             :   { "border-block-end-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_block_end_width_getterinfo, GenericBindingSetter, &border_block_end_width_setterinfo },
   64459             :   { "borderBlockStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBlockStart_getterinfo, GenericBindingSetter, &borderBlockStart_setterinfo },
   64460             :   { "border-block-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_block_start_getterinfo, GenericBindingSetter, &border_block_start_setterinfo },
   64461             :   { "borderBlockStartColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBlockStartColor_getterinfo, GenericBindingSetter, &borderBlockStartColor_setterinfo },
   64462             :   { "border-block-start-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_block_start_color_getterinfo, GenericBindingSetter, &border_block_start_color_setterinfo },
   64463             :   { "borderBlockStartStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBlockStartStyle_getterinfo, GenericBindingSetter, &borderBlockStartStyle_setterinfo },
   64464             :   { "border-block-start-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_block_start_style_getterinfo, GenericBindingSetter, &border_block_start_style_setterinfo },
   64465             :   { "borderBlockStartWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBlockStartWidth_getterinfo, GenericBindingSetter, &borderBlockStartWidth_setterinfo },
   64466             :   { "border-block-start-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_block_start_width_getterinfo, GenericBindingSetter, &border_block_start_width_setterinfo },
   64467             :   { "borderBottom", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBottom_getterinfo, GenericBindingSetter, &borderBottom_setterinfo },
   64468             :   { "border-bottom", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_bottom_getterinfo, GenericBindingSetter, &border_bottom_setterinfo },
   64469             :   { "borderBottomColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBottomColor_getterinfo, GenericBindingSetter, &borderBottomColor_setterinfo },
   64470             :   { "border-bottom-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_bottom_color_getterinfo, GenericBindingSetter, &border_bottom_color_setterinfo },
   64471             :   { "MozBorderBottomColors", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderBottomColors_getterinfo, GenericBindingSetter, &MozBorderBottomColors_setterinfo },
   64472             :   { "-moz-border-bottom-colors", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_bottom_colors_getterinfo, GenericBindingSetter, &_moz_border_bottom_colors_setterinfo },
   64473             :   { "borderBottomLeftRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBottomLeftRadius_getterinfo, GenericBindingSetter, &borderBottomLeftRadius_setterinfo },
   64474             :   { "border-bottom-left-radius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_bottom_left_radius_getterinfo, GenericBindingSetter, &border_bottom_left_radius_setterinfo },
   64475             :   { "borderBottomRightRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBottomRightRadius_getterinfo, GenericBindingSetter, &borderBottomRightRadius_setterinfo },
   64476             :   { "border-bottom-right-radius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_bottom_right_radius_getterinfo, GenericBindingSetter, &border_bottom_right_radius_setterinfo },
   64477             :   { "borderBottomStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBottomStyle_getterinfo, GenericBindingSetter, &borderBottomStyle_setterinfo },
   64478             :   { "border-bottom-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_bottom_style_getterinfo, GenericBindingSetter, &border_bottom_style_setterinfo },
   64479             :   { "borderBottomWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderBottomWidth_getterinfo, GenericBindingSetter, &borderBottomWidth_setterinfo },
   64480             :   { "border-bottom-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_bottom_width_getterinfo, GenericBindingSetter, &border_bottom_width_setterinfo },
   64481             :   { "borderCollapse", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderCollapse_getterinfo, GenericBindingSetter, &borderCollapse_setterinfo },
   64482             :   { "border-collapse", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_collapse_getterinfo, GenericBindingSetter, &border_collapse_setterinfo },
   64483             :   { "borderColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderColor_getterinfo, GenericBindingSetter, &borderColor_setterinfo },
   64484             :   { "border-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_color_getterinfo, GenericBindingSetter, &border_color_setterinfo },
   64485             :   { "borderImage", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderImage_getterinfo, GenericBindingSetter, &borderImage_setterinfo },
   64486             :   { "border-image", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_image_getterinfo, GenericBindingSetter, &border_image_setterinfo },
   64487             :   { "borderImageOutset", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderImageOutset_getterinfo, GenericBindingSetter, &borderImageOutset_setterinfo },
   64488             :   { "border-image-outset", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_image_outset_getterinfo, GenericBindingSetter, &border_image_outset_setterinfo },
   64489             :   { "borderImageRepeat", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderImageRepeat_getterinfo, GenericBindingSetter, &borderImageRepeat_setterinfo },
   64490             :   { "border-image-repeat", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_image_repeat_getterinfo, GenericBindingSetter, &border_image_repeat_setterinfo },
   64491             :   { "borderImageSlice", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderImageSlice_getterinfo, GenericBindingSetter, &borderImageSlice_setterinfo },
   64492             :   { "border-image-slice", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_image_slice_getterinfo, GenericBindingSetter, &border_image_slice_setterinfo },
   64493             :   { "borderImageSource", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderImageSource_getterinfo, GenericBindingSetter, &borderImageSource_setterinfo },
   64494             :   { "border-image-source", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_image_source_getterinfo, GenericBindingSetter, &border_image_source_setterinfo },
   64495             :   { "borderImageWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderImageWidth_getterinfo, GenericBindingSetter, &borderImageWidth_setterinfo },
   64496             :   { "border-image-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_image_width_getterinfo, GenericBindingSetter, &border_image_width_setterinfo },
   64497             :   { "borderInlineEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderInlineEnd_getterinfo, GenericBindingSetter, &borderInlineEnd_setterinfo },
   64498             :   { "border-inline-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_inline_end_getterinfo, GenericBindingSetter, &border_inline_end_setterinfo },
   64499             :   { "borderInlineEndColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderInlineEndColor_getterinfo, GenericBindingSetter, &borderInlineEndColor_setterinfo },
   64500             :   { "border-inline-end-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_inline_end_color_getterinfo, GenericBindingSetter, &border_inline_end_color_setterinfo },
   64501             :   { "borderInlineEndStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderInlineEndStyle_getterinfo, GenericBindingSetter, &borderInlineEndStyle_setterinfo },
   64502             :   { "border-inline-end-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_inline_end_style_getterinfo, GenericBindingSetter, &border_inline_end_style_setterinfo },
   64503             :   { "borderInlineEndWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderInlineEndWidth_getterinfo, GenericBindingSetter, &borderInlineEndWidth_setterinfo },
   64504             :   { "border-inline-end-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_inline_end_width_getterinfo, GenericBindingSetter, &border_inline_end_width_setterinfo },
   64505             :   { "borderInlineStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderInlineStart_getterinfo, GenericBindingSetter, &borderInlineStart_setterinfo },
   64506             :   { "border-inline-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_inline_start_getterinfo, GenericBindingSetter, &border_inline_start_setterinfo },
   64507             :   { "borderInlineStartColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderInlineStartColor_getterinfo, GenericBindingSetter, &borderInlineStartColor_setterinfo },
   64508             :   { "border-inline-start-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_inline_start_color_getterinfo, GenericBindingSetter, &border_inline_start_color_setterinfo },
   64509             :   { "borderInlineStartStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderInlineStartStyle_getterinfo, GenericBindingSetter, &borderInlineStartStyle_setterinfo },
   64510             :   { "border-inline-start-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_inline_start_style_getterinfo, GenericBindingSetter, &border_inline_start_style_setterinfo },
   64511             :   { "borderInlineStartWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderInlineStartWidth_getterinfo, GenericBindingSetter, &borderInlineStartWidth_setterinfo },
   64512             :   { "border-inline-start-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_inline_start_width_getterinfo, GenericBindingSetter, &border_inline_start_width_setterinfo },
   64513             :   { "borderLeft", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderLeft_getterinfo, GenericBindingSetter, &borderLeft_setterinfo },
   64514             :   { "border-left", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_left_getterinfo, GenericBindingSetter, &border_left_setterinfo },
   64515             :   { "borderLeftColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderLeftColor_getterinfo, GenericBindingSetter, &borderLeftColor_setterinfo },
   64516             :   { "border-left-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_left_color_getterinfo, GenericBindingSetter, &border_left_color_setterinfo },
   64517             :   { "MozBorderLeftColors", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderLeftColors_getterinfo, GenericBindingSetter, &MozBorderLeftColors_setterinfo },
   64518             :   { "-moz-border-left-colors", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_left_colors_getterinfo, GenericBindingSetter, &_moz_border_left_colors_setterinfo },
   64519             :   { "borderLeftStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderLeftStyle_getterinfo, GenericBindingSetter, &borderLeftStyle_setterinfo },
   64520             :   { "border-left-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_left_style_getterinfo, GenericBindingSetter, &border_left_style_setterinfo },
   64521             :   { "borderLeftWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderLeftWidth_getterinfo, GenericBindingSetter, &borderLeftWidth_setterinfo },
   64522             :   { "border-left-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_left_width_getterinfo, GenericBindingSetter, &border_left_width_setterinfo },
   64523             :   { "borderRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderRadius_getterinfo, GenericBindingSetter, &borderRadius_setterinfo },
   64524             :   { "border-radius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_radius_getterinfo, GenericBindingSetter, &border_radius_setterinfo },
   64525             :   { "borderRight", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderRight_getterinfo, GenericBindingSetter, &borderRight_setterinfo },
   64526             :   { "border-right", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_right_getterinfo, GenericBindingSetter, &border_right_setterinfo },
   64527             :   { "borderRightColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderRightColor_getterinfo, GenericBindingSetter, &borderRightColor_setterinfo },
   64528             :   { "border-right-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_right_color_getterinfo, GenericBindingSetter, &border_right_color_setterinfo },
   64529             :   { "MozBorderRightColors", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderRightColors_getterinfo, GenericBindingSetter, &MozBorderRightColors_setterinfo },
   64530             :   { "-moz-border-right-colors", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_right_colors_getterinfo, GenericBindingSetter, &_moz_border_right_colors_setterinfo },
   64531             :   { "borderRightStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderRightStyle_getterinfo, GenericBindingSetter, &borderRightStyle_setterinfo },
   64532             :   { "border-right-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_right_style_getterinfo, GenericBindingSetter, &border_right_style_setterinfo },
   64533             :   { "borderRightWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderRightWidth_getterinfo, GenericBindingSetter, &borderRightWidth_setterinfo },
   64534             :   { "border-right-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_right_width_getterinfo, GenericBindingSetter, &border_right_width_setterinfo },
   64535             :   { "borderSpacing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderSpacing_getterinfo, GenericBindingSetter, &borderSpacing_setterinfo },
   64536             :   { "border-spacing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_spacing_getterinfo, GenericBindingSetter, &border_spacing_setterinfo },
   64537             :   { "borderStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderStyle_getterinfo, GenericBindingSetter, &borderStyle_setterinfo },
   64538             :   { "border-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_style_getterinfo, GenericBindingSetter, &border_style_setterinfo },
   64539             :   { "borderTop", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderTop_getterinfo, GenericBindingSetter, &borderTop_setterinfo },
   64540             :   { "border-top", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_top_getterinfo, GenericBindingSetter, &border_top_setterinfo },
   64541             :   { "borderTopColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderTopColor_getterinfo, GenericBindingSetter, &borderTopColor_setterinfo },
   64542             :   { "border-top-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_top_color_getterinfo, GenericBindingSetter, &border_top_color_setterinfo },
   64543             :   { "MozBorderTopColors", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderTopColors_getterinfo, GenericBindingSetter, &MozBorderTopColors_setterinfo },
   64544             :   { "-moz-border-top-colors", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_top_colors_getterinfo, GenericBindingSetter, &_moz_border_top_colors_setterinfo },
   64545             :   { "borderTopLeftRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderTopLeftRadius_getterinfo, GenericBindingSetter, &borderTopLeftRadius_setterinfo },
   64546             :   { "border-top-left-radius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_top_left_radius_getterinfo, GenericBindingSetter, &border_top_left_radius_setterinfo },
   64547             :   { "borderTopRightRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderTopRightRadius_getterinfo, GenericBindingSetter, &borderTopRightRadius_setterinfo },
   64548             :   { "border-top-right-radius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_top_right_radius_getterinfo, GenericBindingSetter, &border_top_right_radius_setterinfo },
   64549             :   { "borderTopStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderTopStyle_getterinfo, GenericBindingSetter, &borderTopStyle_setterinfo },
   64550             :   { "border-top-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_top_style_getterinfo, GenericBindingSetter, &border_top_style_setterinfo },
   64551             :   { "borderTopWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderTopWidth_getterinfo, GenericBindingSetter, &borderTopWidth_setterinfo },
   64552             :   { "border-top-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_top_width_getterinfo, GenericBindingSetter, &border_top_width_setterinfo },
   64553             :   { "borderWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &borderWidth_getterinfo, GenericBindingSetter, &borderWidth_setterinfo },
   64554             :   { "border-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &border_width_getterinfo, GenericBindingSetter, &border_width_setterinfo },
   64555             :   { "bottom", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &bottom_getterinfo, GenericBindingSetter, &bottom_setterinfo },
   64556             :   { "MozBoxAlign", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBoxAlign_getterinfo, GenericBindingSetter, &MozBoxAlign_setterinfo },
   64557             :   { "-moz-box-align", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_box_align_getterinfo, GenericBindingSetter, &_moz_box_align_setterinfo },
   64558             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64559             :   { "boxDecorationBreak", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &boxDecorationBreak_getterinfo, GenericBindingSetter, &boxDecorationBreak_setterinfo },
   64560             :   { "box-decoration-break", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &box_decoration_break_getterinfo, GenericBindingSetter, &box_decoration_break_setterinfo },
   64561             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64562             :   { "MozBoxDirection", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBoxDirection_getterinfo, GenericBindingSetter, &MozBoxDirection_setterinfo },
   64563             :   { "-moz-box-direction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_box_direction_getterinfo, GenericBindingSetter, &_moz_box_direction_setterinfo },
   64564             :   { "MozBoxFlex", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBoxFlex_getterinfo, GenericBindingSetter, &MozBoxFlex_setterinfo },
   64565             :   { "-moz-box-flex", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_box_flex_getterinfo, GenericBindingSetter, &_moz_box_flex_setterinfo },
   64566             :   { "MozBoxOrdinalGroup", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBoxOrdinalGroup_getterinfo, GenericBindingSetter, &MozBoxOrdinalGroup_setterinfo },
   64567             :   { "-moz-box-ordinal-group", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_box_ordinal_group_getterinfo, GenericBindingSetter, &_moz_box_ordinal_group_setterinfo },
   64568             :   { "MozBoxOrient", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBoxOrient_getterinfo, GenericBindingSetter, &MozBoxOrient_setterinfo },
   64569             :   { "-moz-box-orient", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_box_orient_getterinfo, GenericBindingSetter, &_moz_box_orient_setterinfo },
   64570             :   { "MozBoxPack", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBoxPack_getterinfo, GenericBindingSetter, &MozBoxPack_setterinfo },
   64571             :   { "-moz-box-pack", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_box_pack_getterinfo, GenericBindingSetter, &_moz_box_pack_setterinfo },
   64572             :   { "boxShadow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &boxShadow_getterinfo, GenericBindingSetter, &boxShadow_setterinfo },
   64573             :   { "box-shadow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &box_shadow_getterinfo, GenericBindingSetter, &box_shadow_setterinfo },
   64574             :   { "boxSizing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &boxSizing_getterinfo, GenericBindingSetter, &boxSizing_setterinfo },
   64575             :   { "box-sizing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &box_sizing_getterinfo, GenericBindingSetter, &box_sizing_setterinfo },
   64576             :   { "captionSide", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &captionSide_getterinfo, GenericBindingSetter, &captionSide_setterinfo },
   64577             :   { "caption-side", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &caption_side_getterinfo, GenericBindingSetter, &caption_side_setterinfo },
   64578             :   { "caretColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &caretColor_getterinfo, GenericBindingSetter, &caretColor_setterinfo },
   64579             :   { "caret-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &caret_color_getterinfo, GenericBindingSetter, &caret_color_setterinfo },
   64580             :   { "clear", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &clear_getterinfo, GenericBindingSetter, &clear_setterinfo },
   64581             :   { "clip", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &clip_getterinfo, GenericBindingSetter, &clip_setterinfo },
   64582             :   { "clipPath", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &clipPath_getterinfo, GenericBindingSetter, &clipPath_setterinfo },
   64583             :   { "clip-path", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &clip_path_getterinfo, GenericBindingSetter, &clip_path_setterinfo },
   64584             :   { "clipRule", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &clipRule_getterinfo, GenericBindingSetter, &clipRule_setterinfo },
   64585             :   { "clip-rule", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &clip_rule_getterinfo, GenericBindingSetter, &clip_rule_setterinfo },
   64586             :   { "color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &color_getterinfo, GenericBindingSetter, &color_setterinfo },
   64587             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64588             :   { "colorAdjust", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &colorAdjust_getterinfo, GenericBindingSetter, &colorAdjust_setterinfo },
   64589             :   { "color-adjust", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &color_adjust_getterinfo, GenericBindingSetter, &color_adjust_setterinfo },
   64590             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64591             :   { "colorInterpolation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &colorInterpolation_getterinfo, GenericBindingSetter, &colorInterpolation_setterinfo },
   64592             :   { "color-interpolation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &color_interpolation_getterinfo, GenericBindingSetter, &color_interpolation_setterinfo },
   64593             :   { "colorInterpolationFilters", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &colorInterpolationFilters_getterinfo, GenericBindingSetter, &colorInterpolationFilters_setterinfo },
   64594             :   { "color-interpolation-filters", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &color_interpolation_filters_getterinfo, GenericBindingSetter, &color_interpolation_filters_setterinfo },
   64595             :   { "columnCount", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &columnCount_getterinfo, GenericBindingSetter, &columnCount_setterinfo },
   64596             :   { "column-count", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &column_count_getterinfo, GenericBindingSetter, &column_count_setterinfo },
   64597             :   { "columnFill", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &columnFill_getterinfo, GenericBindingSetter, &columnFill_setterinfo },
   64598             :   { "column-fill", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &column_fill_getterinfo, GenericBindingSetter, &column_fill_setterinfo },
   64599             :   { "columnGap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &columnGap_getterinfo, GenericBindingSetter, &columnGap_setterinfo },
   64600             :   { "column-gap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &column_gap_getterinfo, GenericBindingSetter, &column_gap_setterinfo },
   64601             :   { "columnRule", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &columnRule_getterinfo, GenericBindingSetter, &columnRule_setterinfo },
   64602             :   { "column-rule", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &column_rule_getterinfo, GenericBindingSetter, &column_rule_setterinfo },
   64603             :   { "columnRuleColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &columnRuleColor_getterinfo, GenericBindingSetter, &columnRuleColor_setterinfo },
   64604             :   { "column-rule-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &column_rule_color_getterinfo, GenericBindingSetter, &column_rule_color_setterinfo },
   64605             :   { "columnRuleStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &columnRuleStyle_getterinfo, GenericBindingSetter, &columnRuleStyle_setterinfo },
   64606             :   { "column-rule-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &column_rule_style_getterinfo, GenericBindingSetter, &column_rule_style_setterinfo },
   64607             :   { "columnRuleWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &columnRuleWidth_getterinfo, GenericBindingSetter, &columnRuleWidth_setterinfo },
   64608             :   { "column-rule-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &column_rule_width_getterinfo, GenericBindingSetter, &column_rule_width_setterinfo },
   64609             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64610             :   { "columnSpan", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &columnSpan_getterinfo, GenericBindingSetter, &columnSpan_setterinfo },
   64611             :   { "column-span", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &column_span_getterinfo, GenericBindingSetter, &column_span_setterinfo },
   64612             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64613             :   { "columnWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &columnWidth_getterinfo, GenericBindingSetter, &columnWidth_setterinfo },
   64614             :   { "column-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &column_width_getterinfo, GenericBindingSetter, &column_width_setterinfo },
   64615             :   { "columns", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &columns_getterinfo, GenericBindingSetter, &columns_setterinfo },
   64616             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64617             :   { "contain", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &contain_getterinfo, GenericBindingSetter, &contain_setterinfo },
   64618             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64619             :   { "content", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &content_getterinfo, GenericBindingSetter, &content_setterinfo },
   64620             :   { "counterIncrement", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &counterIncrement_getterinfo, GenericBindingSetter, &counterIncrement_setterinfo },
   64621             :   { "counter-increment", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &counter_increment_getterinfo, GenericBindingSetter, &counter_increment_setterinfo },
   64622             :   { "counterReset", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &counterReset_getterinfo, GenericBindingSetter, &counterReset_setterinfo },
   64623             :   { "counter-reset", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &counter_reset_getterinfo, GenericBindingSetter, &counter_reset_setterinfo },
   64624             :   { "cursor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &cursor_getterinfo, GenericBindingSetter, &cursor_setterinfo },
   64625             :   { "direction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &direction_getterinfo, GenericBindingSetter, &direction_setterinfo },
   64626             :   { "display", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &display_getterinfo, GenericBindingSetter, &display_setterinfo },
   64627             :   { "dominantBaseline", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &dominantBaseline_getterinfo, GenericBindingSetter, &dominantBaseline_setterinfo },
   64628             :   { "dominant-baseline", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &dominant_baseline_getterinfo, GenericBindingSetter, &dominant_baseline_setterinfo },
   64629             :   { "emptyCells", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &emptyCells_getterinfo, GenericBindingSetter, &emptyCells_setterinfo },
   64630             :   { "empty-cells", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &empty_cells_getterinfo, GenericBindingSetter, &empty_cells_setterinfo },
   64631             :   { "fill", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fill_getterinfo, GenericBindingSetter, &fill_setterinfo },
   64632             :   { "fillOpacity", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fillOpacity_getterinfo, GenericBindingSetter, &fillOpacity_setterinfo },
   64633             :   { "fill-opacity", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fill_opacity_getterinfo, GenericBindingSetter, &fill_opacity_setterinfo },
   64634             :   { "fillRule", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fillRule_getterinfo, GenericBindingSetter, &fillRule_setterinfo },
   64635             :   { "fill-rule", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fill_rule_getterinfo, GenericBindingSetter, &fill_rule_setterinfo },
   64636             :   { "filter", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &filter_getterinfo, GenericBindingSetter, &filter_setterinfo },
   64637             :   { "flex", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flex_getterinfo, GenericBindingSetter, &flex_setterinfo },
   64638             :   { "flexBasis", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flexBasis_getterinfo, GenericBindingSetter, &flexBasis_setterinfo },
   64639             :   { "flex-basis", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flex_basis_getterinfo, GenericBindingSetter, &flex_basis_setterinfo },
   64640             :   { "flexDirection", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flexDirection_getterinfo, GenericBindingSetter, &flexDirection_setterinfo },
   64641             :   { "flex-direction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flex_direction_getterinfo, GenericBindingSetter, &flex_direction_setterinfo },
   64642             :   { "flexFlow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flexFlow_getterinfo, GenericBindingSetter, &flexFlow_setterinfo },
   64643             :   { "flex-flow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flex_flow_getterinfo, GenericBindingSetter, &flex_flow_setterinfo },
   64644             :   { "flexGrow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flexGrow_getterinfo, GenericBindingSetter, &flexGrow_setterinfo },
   64645             :   { "flex-grow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flex_grow_getterinfo, GenericBindingSetter, &flex_grow_setterinfo },
   64646             :   { "flexShrink", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flexShrink_getterinfo, GenericBindingSetter, &flexShrink_setterinfo },
   64647             :   { "flex-shrink", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flex_shrink_getterinfo, GenericBindingSetter, &flex_shrink_setterinfo },
   64648             :   { "flexWrap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flexWrap_getterinfo, GenericBindingSetter, &flexWrap_setterinfo },
   64649             :   { "flex-wrap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flex_wrap_getterinfo, GenericBindingSetter, &flex_wrap_setterinfo },
   64650             :   { "cssFloat", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &cssFloat_getterinfo, GenericBindingSetter, &cssFloat_setterinfo },
   64651             :   { "float", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &float_getterinfo, GenericBindingSetter, &float_setterinfo },
   64652             :   { "MozFloatEdge", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozFloatEdge_getterinfo, GenericBindingSetter, &MozFloatEdge_setterinfo },
   64653             :   { "-moz-float-edge", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_float_edge_getterinfo, GenericBindingSetter, &_moz_float_edge_setterinfo },
   64654             :   { "floodColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &floodColor_getterinfo, GenericBindingSetter, &floodColor_setterinfo },
   64655             :   { "flood-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flood_color_getterinfo, GenericBindingSetter, &flood_color_setterinfo },
   64656             :   { "floodOpacity", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &floodOpacity_getterinfo, GenericBindingSetter, &floodOpacity_setterinfo },
   64657             :   { "flood-opacity", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &flood_opacity_getterinfo, GenericBindingSetter, &flood_opacity_setterinfo },
   64658             :   { "font", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_getterinfo, GenericBindingSetter, &font_setterinfo },
   64659             :   { "fontFamily", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontFamily_getterinfo, GenericBindingSetter, &fontFamily_setterinfo },
   64660             :   { "font-family", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_family_getterinfo, GenericBindingSetter, &font_family_setterinfo },
   64661             :   { "fontFeatureSettings", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontFeatureSettings_getterinfo, GenericBindingSetter, &fontFeatureSettings_setterinfo },
   64662             :   { "font-feature-settings", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_feature_settings_getterinfo, GenericBindingSetter, &font_feature_settings_setterinfo },
   64663             :   { "fontKerning", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontKerning_getterinfo, GenericBindingSetter, &fontKerning_setterinfo },
   64664             :   { "font-kerning", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_kerning_getterinfo, GenericBindingSetter, &font_kerning_setterinfo },
   64665             :   { "fontLanguageOverride", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontLanguageOverride_getterinfo, GenericBindingSetter, &fontLanguageOverride_setterinfo },
   64666             :   { "font-language-override", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_language_override_getterinfo, GenericBindingSetter, &font_language_override_setterinfo },
   64667             :   { "fontSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontSize_getterinfo, GenericBindingSetter, &fontSize_setterinfo },
   64668             :   { "font-size", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_size_getterinfo, GenericBindingSetter, &font_size_setterinfo },
   64669             :   { "fontSizeAdjust", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontSizeAdjust_getterinfo, GenericBindingSetter, &fontSizeAdjust_setterinfo },
   64670             :   { "font-size-adjust", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_size_adjust_getterinfo, GenericBindingSetter, &font_size_adjust_setterinfo },
   64671             :   { "fontStretch", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontStretch_getterinfo, GenericBindingSetter, &fontStretch_setterinfo },
   64672             :   { "font-stretch", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_stretch_getterinfo, GenericBindingSetter, &font_stretch_setterinfo },
   64673             :   { "fontStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontStyle_getterinfo, GenericBindingSetter, &fontStyle_setterinfo },
   64674             :   { "font-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_style_getterinfo, GenericBindingSetter, &font_style_setterinfo },
   64675             :   { "fontSynthesis", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontSynthesis_getterinfo, GenericBindingSetter, &fontSynthesis_setterinfo },
   64676             :   { "font-synthesis", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_synthesis_getterinfo, GenericBindingSetter, &font_synthesis_setterinfo },
   64677             :   { "fontVariant", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontVariant_getterinfo, GenericBindingSetter, &fontVariant_setterinfo },
   64678             :   { "font-variant", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_variant_getterinfo, GenericBindingSetter, &font_variant_setterinfo },
   64679             :   { "fontVariantAlternates", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontVariantAlternates_getterinfo, GenericBindingSetter, &fontVariantAlternates_setterinfo },
   64680             :   { "font-variant-alternates", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_variant_alternates_getterinfo, GenericBindingSetter, &font_variant_alternates_setterinfo },
   64681             :   { "fontVariantCaps", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontVariantCaps_getterinfo, GenericBindingSetter, &fontVariantCaps_setterinfo },
   64682             :   { "font-variant-caps", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_variant_caps_getterinfo, GenericBindingSetter, &font_variant_caps_setterinfo },
   64683             :   { "fontVariantEastAsian", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontVariantEastAsian_getterinfo, GenericBindingSetter, &fontVariantEastAsian_setterinfo },
   64684             :   { "font-variant-east-asian", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_variant_east_asian_getterinfo, GenericBindingSetter, &font_variant_east_asian_setterinfo },
   64685             :   { "fontVariantLigatures", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontVariantLigatures_getterinfo, GenericBindingSetter, &fontVariantLigatures_setterinfo },
   64686             :   { "font-variant-ligatures", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_variant_ligatures_getterinfo, GenericBindingSetter, &font_variant_ligatures_setterinfo },
   64687             :   { "fontVariantNumeric", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontVariantNumeric_getterinfo, GenericBindingSetter, &fontVariantNumeric_setterinfo },
   64688             :   { "font-variant-numeric", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_variant_numeric_getterinfo, GenericBindingSetter, &font_variant_numeric_setterinfo },
   64689             :   { "fontVariantPosition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontVariantPosition_getterinfo, GenericBindingSetter, &fontVariantPosition_setterinfo },
   64690             :   { "font-variant-position", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_variant_position_getterinfo, GenericBindingSetter, &font_variant_position_setterinfo },
   64691             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64692             :   { "fontVariationSettings", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontVariationSettings_getterinfo, GenericBindingSetter, &fontVariationSettings_setterinfo },
   64693             :   { "font-variation-settings", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_variation_settings_getterinfo, GenericBindingSetter, &font_variation_settings_setterinfo },
   64694             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64695             :   { "fontWeight", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &fontWeight_getterinfo, GenericBindingSetter, &fontWeight_setterinfo },
   64696             :   { "font-weight", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &font_weight_getterinfo, GenericBindingSetter, &font_weight_setterinfo },
   64697             :   { "MozForceBrokenImageIcon", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozForceBrokenImageIcon_getterinfo, GenericBindingSetter, &MozForceBrokenImageIcon_setterinfo },
   64698             :   { "-moz-force-broken-image-icon", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_force_broken_image_icon_getterinfo, GenericBindingSetter, &_moz_force_broken_image_icon_setterinfo },
   64699             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64700             :   { "grid", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_getterinfo, GenericBindingSetter, &grid_setterinfo },
   64701             :   { "gridArea", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridArea_getterinfo, GenericBindingSetter, &gridArea_setterinfo },
   64702             :   { "grid-area", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_area_getterinfo, GenericBindingSetter, &grid_area_setterinfo },
   64703             :   { "gridAutoColumns", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridAutoColumns_getterinfo, GenericBindingSetter, &gridAutoColumns_setterinfo },
   64704             :   { "grid-auto-columns", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_auto_columns_getterinfo, GenericBindingSetter, &grid_auto_columns_setterinfo },
   64705             :   { "gridAutoFlow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridAutoFlow_getterinfo, GenericBindingSetter, &gridAutoFlow_setterinfo },
   64706             :   { "grid-auto-flow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_auto_flow_getterinfo, GenericBindingSetter, &grid_auto_flow_setterinfo },
   64707             :   { "gridAutoRows", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridAutoRows_getterinfo, GenericBindingSetter, &gridAutoRows_setterinfo },
   64708             :   { "grid-auto-rows", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_auto_rows_getterinfo, GenericBindingSetter, &grid_auto_rows_setterinfo },
   64709             :   { "gridColumn", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridColumn_getterinfo, GenericBindingSetter, &gridColumn_setterinfo },
   64710             :   { "grid-column", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_column_getterinfo, GenericBindingSetter, &grid_column_setterinfo },
   64711             :   { "gridColumnEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridColumnEnd_getterinfo, GenericBindingSetter, &gridColumnEnd_setterinfo },
   64712             :   { "grid-column-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_column_end_getterinfo, GenericBindingSetter, &grid_column_end_setterinfo },
   64713             :   { "gridColumnGap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridColumnGap_getterinfo, GenericBindingSetter, &gridColumnGap_setterinfo },
   64714             :   { "grid-column-gap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_column_gap_getterinfo, GenericBindingSetter, &grid_column_gap_setterinfo },
   64715             :   { "gridColumnStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridColumnStart_getterinfo, GenericBindingSetter, &gridColumnStart_setterinfo },
   64716             :   { "grid-column-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_column_start_getterinfo, GenericBindingSetter, &grid_column_start_setterinfo },
   64717             :   { "gridGap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridGap_getterinfo, GenericBindingSetter, &gridGap_setterinfo },
   64718             :   { "grid-gap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_gap_getterinfo, GenericBindingSetter, &grid_gap_setterinfo },
   64719             :   { "gridRow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridRow_getterinfo, GenericBindingSetter, &gridRow_setterinfo },
   64720             :   { "grid-row", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_row_getterinfo, GenericBindingSetter, &grid_row_setterinfo },
   64721             :   { "gridRowEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridRowEnd_getterinfo, GenericBindingSetter, &gridRowEnd_setterinfo },
   64722             :   { "grid-row-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_row_end_getterinfo, GenericBindingSetter, &grid_row_end_setterinfo },
   64723             :   { "gridRowGap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridRowGap_getterinfo, GenericBindingSetter, &gridRowGap_setterinfo },
   64724             :   { "grid-row-gap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_row_gap_getterinfo, GenericBindingSetter, &grid_row_gap_setterinfo },
   64725             :   { "gridRowStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridRowStart_getterinfo, GenericBindingSetter, &gridRowStart_setterinfo },
   64726             :   { "grid-row-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_row_start_getterinfo, GenericBindingSetter, &grid_row_start_setterinfo },
   64727             :   { "gridTemplate", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridTemplate_getterinfo, GenericBindingSetter, &gridTemplate_setterinfo },
   64728             :   { "grid-template", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_template_getterinfo, GenericBindingSetter, &grid_template_setterinfo },
   64729             :   { "gridTemplateAreas", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridTemplateAreas_getterinfo, GenericBindingSetter, &gridTemplateAreas_setterinfo },
   64730             :   { "grid-template-areas", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_template_areas_getterinfo, GenericBindingSetter, &grid_template_areas_setterinfo },
   64731             :   { "gridTemplateColumns", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridTemplateColumns_getterinfo, GenericBindingSetter, &gridTemplateColumns_setterinfo },
   64732             :   { "grid-template-columns", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_template_columns_getterinfo, GenericBindingSetter, &grid_template_columns_setterinfo },
   64733             :   { "gridTemplateRows", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &gridTemplateRows_getterinfo, GenericBindingSetter, &gridTemplateRows_setterinfo },
   64734             :   { "grid-template-rows", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &grid_template_rows_getterinfo, GenericBindingSetter, &grid_template_rows_setterinfo },
   64735             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64736             :   { "height", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &height_getterinfo, GenericBindingSetter, &height_setterinfo },
   64737             :   { "hyphens", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &hyphens_getterinfo, GenericBindingSetter, &hyphens_setterinfo },
   64738             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64739             :   { "initialLetter", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &initialLetter_getterinfo, GenericBindingSetter, &initialLetter_setterinfo },
   64740             :   { "initial-letter", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &initial_letter_getterinfo, GenericBindingSetter, &initial_letter_setterinfo },
   64741             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64742             :   { "imageOrientation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &imageOrientation_getterinfo, GenericBindingSetter, &imageOrientation_setterinfo },
   64743             :   { "image-orientation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &image_orientation_getterinfo, GenericBindingSetter, &image_orientation_setterinfo },
   64744             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64745             :   { "MozImageRegion", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozImageRegion_getterinfo, GenericBindingSetter, &MozImageRegion_setterinfo },
   64746             :   { "-moz-image-region", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_image_region_getterinfo, GenericBindingSetter, &_moz_image_region_setterinfo },
   64747             :   { "imageRendering", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &imageRendering_getterinfo, GenericBindingSetter, &imageRendering_setterinfo },
   64748             :   { "image-rendering", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &image_rendering_getterinfo, GenericBindingSetter, &image_rendering_setterinfo },
   64749             :   { "imeMode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &imeMode_getterinfo, GenericBindingSetter, &imeMode_setterinfo },
   64750             :   { "ime-mode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &ime_mode_getterinfo, GenericBindingSetter, &ime_mode_setterinfo },
   64751             :   { "inlineSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &inlineSize_getterinfo, GenericBindingSetter, &inlineSize_setterinfo },
   64752             :   { "inline-size", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &inline_size_getterinfo, GenericBindingSetter, &inline_size_setterinfo },
   64753             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64754             :   { "isolation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &isolation_getterinfo, GenericBindingSetter, &isolation_setterinfo },
   64755             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64756             :   { "justifyContent", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &justifyContent_getterinfo, GenericBindingSetter, &justifyContent_setterinfo },
   64757             :   { "justify-content", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &justify_content_getterinfo, GenericBindingSetter, &justify_content_setterinfo },
   64758             :   { "justifyItems", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &justifyItems_getterinfo, GenericBindingSetter, &justifyItems_setterinfo },
   64759             :   { "justify-items", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &justify_items_getterinfo, GenericBindingSetter, &justify_items_setterinfo },
   64760             :   { "justifySelf", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &justifySelf_getterinfo, GenericBindingSetter, &justifySelf_setterinfo },
   64761             :   { "justify-self", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &justify_self_getterinfo, GenericBindingSetter, &justify_self_setterinfo },
   64762             :   { "left", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &left_getterinfo, GenericBindingSetter, &left_setterinfo },
   64763             :   { "letterSpacing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &letterSpacing_getterinfo, GenericBindingSetter, &letterSpacing_setterinfo },
   64764             :   { "letter-spacing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &letter_spacing_getterinfo, GenericBindingSetter, &letter_spacing_setterinfo },
   64765             :   { "lightingColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &lightingColor_getterinfo, GenericBindingSetter, &lightingColor_setterinfo },
   64766             :   { "lighting-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &lighting_color_getterinfo, GenericBindingSetter, &lighting_color_setterinfo },
   64767             :   { "lineHeight", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &lineHeight_getterinfo, GenericBindingSetter, &lineHeight_setterinfo },
   64768             :   { "line-height", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &line_height_getterinfo, GenericBindingSetter, &line_height_setterinfo },
   64769             :   { "listStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &listStyle_getterinfo, GenericBindingSetter, &listStyle_setterinfo },
   64770             :   { "list-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &list_style_getterinfo, GenericBindingSetter, &list_style_setterinfo },
   64771             :   { "listStyleImage", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &listStyleImage_getterinfo, GenericBindingSetter, &listStyleImage_setterinfo },
   64772             :   { "list-style-image", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &list_style_image_getterinfo, GenericBindingSetter, &list_style_image_setterinfo },
   64773             :   { "listStylePosition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &listStylePosition_getterinfo, GenericBindingSetter, &listStylePosition_setterinfo },
   64774             :   { "list-style-position", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &list_style_position_getterinfo, GenericBindingSetter, &list_style_position_setterinfo },
   64775             :   { "listStyleType", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &listStyleType_getterinfo, GenericBindingSetter, &listStyleType_setterinfo },
   64776             :   { "list-style-type", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &list_style_type_getterinfo, GenericBindingSetter, &list_style_type_setterinfo },
   64777             :   { "margin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &margin_getterinfo, GenericBindingSetter, &margin_setterinfo },
   64778             :   { "marginBlockEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &marginBlockEnd_getterinfo, GenericBindingSetter, &marginBlockEnd_setterinfo },
   64779             :   { "margin-block-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &margin_block_end_getterinfo, GenericBindingSetter, &margin_block_end_setterinfo },
   64780             :   { "marginBlockStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &marginBlockStart_getterinfo, GenericBindingSetter, &marginBlockStart_setterinfo },
   64781             :   { "margin-block-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &margin_block_start_getterinfo, GenericBindingSetter, &margin_block_start_setterinfo },
   64782             :   { "marginBottom", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &marginBottom_getterinfo, GenericBindingSetter, &marginBottom_setterinfo },
   64783             :   { "margin-bottom", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &margin_bottom_getterinfo, GenericBindingSetter, &margin_bottom_setterinfo },
   64784             :   { "marginInlineEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &marginInlineEnd_getterinfo, GenericBindingSetter, &marginInlineEnd_setterinfo },
   64785             :   { "margin-inline-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &margin_inline_end_getterinfo, GenericBindingSetter, &margin_inline_end_setterinfo },
   64786             :   { "marginInlineStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &marginInlineStart_getterinfo, GenericBindingSetter, &marginInlineStart_setterinfo },
   64787             :   { "margin-inline-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &margin_inline_start_getterinfo, GenericBindingSetter, &margin_inline_start_setterinfo },
   64788             :   { "marginLeft", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &marginLeft_getterinfo, GenericBindingSetter, &marginLeft_setterinfo },
   64789             :   { "margin-left", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &margin_left_getterinfo, GenericBindingSetter, &margin_left_setterinfo },
   64790             :   { "marginRight", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &marginRight_getterinfo, GenericBindingSetter, &marginRight_setterinfo },
   64791             :   { "margin-right", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &margin_right_getterinfo, GenericBindingSetter, &margin_right_setterinfo },
   64792             :   { "marginTop", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &marginTop_getterinfo, GenericBindingSetter, &marginTop_setterinfo },
   64793             :   { "margin-top", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &margin_top_getterinfo, GenericBindingSetter, &margin_top_setterinfo },
   64794             :   { "marker", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &marker_getterinfo, GenericBindingSetter, &marker_setterinfo },
   64795             :   { "markerEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &markerEnd_getterinfo, GenericBindingSetter, &markerEnd_setterinfo },
   64796             :   { "marker-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &marker_end_getterinfo, GenericBindingSetter, &marker_end_setterinfo },
   64797             :   { "markerMid", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &markerMid_getterinfo, GenericBindingSetter, &markerMid_setterinfo },
   64798             :   { "marker-mid", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &marker_mid_getterinfo, GenericBindingSetter, &marker_mid_setterinfo },
   64799             :   { "markerStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &markerStart_getterinfo, GenericBindingSetter, &markerStart_setterinfo },
   64800             :   { "marker-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &marker_start_getterinfo, GenericBindingSetter, &marker_start_setterinfo },
   64801             :   { "mask", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mask_getterinfo, GenericBindingSetter, &mask_setterinfo },
   64802             :   { "maskClip", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maskClip_getterinfo, GenericBindingSetter, &maskClip_setterinfo },
   64803             :   { "mask-clip", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mask_clip_getterinfo, GenericBindingSetter, &mask_clip_setterinfo },
   64804             :   { "maskComposite", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maskComposite_getterinfo, GenericBindingSetter, &maskComposite_setterinfo },
   64805             :   { "mask-composite", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mask_composite_getterinfo, GenericBindingSetter, &mask_composite_setterinfo },
   64806             :   { "maskImage", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maskImage_getterinfo, GenericBindingSetter, &maskImage_setterinfo },
   64807             :   { "mask-image", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mask_image_getterinfo, GenericBindingSetter, &mask_image_setterinfo },
   64808             :   { "maskMode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maskMode_getterinfo, GenericBindingSetter, &maskMode_setterinfo },
   64809             :   { "mask-mode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mask_mode_getterinfo, GenericBindingSetter, &mask_mode_setterinfo },
   64810             :   { "maskOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maskOrigin_getterinfo, GenericBindingSetter, &maskOrigin_setterinfo },
   64811             :   { "mask-origin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mask_origin_getterinfo, GenericBindingSetter, &mask_origin_setterinfo },
   64812             :   { "maskPosition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maskPosition_getterinfo, GenericBindingSetter, &maskPosition_setterinfo },
   64813             :   { "mask-position", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mask_position_getterinfo, GenericBindingSetter, &mask_position_setterinfo },
   64814             :   { "maskPositionX", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maskPositionX_getterinfo, GenericBindingSetter, &maskPositionX_setterinfo },
   64815             :   { "mask-position-x", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mask_position_x_getterinfo, GenericBindingSetter, &mask_position_x_setterinfo },
   64816             :   { "maskPositionY", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maskPositionY_getterinfo, GenericBindingSetter, &maskPositionY_setterinfo },
   64817             :   { "mask-position-y", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mask_position_y_getterinfo, GenericBindingSetter, &mask_position_y_setterinfo },
   64818             :   { "maskRepeat", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maskRepeat_getterinfo, GenericBindingSetter, &maskRepeat_setterinfo },
   64819             :   { "mask-repeat", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mask_repeat_getterinfo, GenericBindingSetter, &mask_repeat_setterinfo },
   64820             :   { "maskSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maskSize_getterinfo, GenericBindingSetter, &maskSize_setterinfo },
   64821             :   { "mask-size", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mask_size_getterinfo, GenericBindingSetter, &mask_size_setterinfo },
   64822             :   { "maskType", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maskType_getterinfo, GenericBindingSetter, &maskType_setterinfo },
   64823             :   { "mask-type", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mask_type_getterinfo, GenericBindingSetter, &mask_type_setterinfo },
   64824             :   { "maxBlockSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maxBlockSize_getterinfo, GenericBindingSetter, &maxBlockSize_setterinfo },
   64825             :   { "max-block-size", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &max_block_size_getterinfo, GenericBindingSetter, &max_block_size_setterinfo },
   64826             :   { "maxHeight", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maxHeight_getterinfo, GenericBindingSetter, &maxHeight_setterinfo },
   64827             :   { "max-height", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &max_height_getterinfo, GenericBindingSetter, &max_height_setterinfo },
   64828             :   { "maxInlineSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maxInlineSize_getterinfo, GenericBindingSetter, &maxInlineSize_setterinfo },
   64829             :   { "max-inline-size", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &max_inline_size_getterinfo, GenericBindingSetter, &max_inline_size_setterinfo },
   64830             :   { "maxWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &maxWidth_getterinfo, GenericBindingSetter, &maxWidth_setterinfo },
   64831             :   { "max-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &max_width_getterinfo, GenericBindingSetter, &max_width_setterinfo },
   64832             :   { "minBlockSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &minBlockSize_getterinfo, GenericBindingSetter, &minBlockSize_setterinfo },
   64833             :   { "min-block-size", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &min_block_size_getterinfo, GenericBindingSetter, &min_block_size_setterinfo },
   64834             :   { "minHeight", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &minHeight_getterinfo, GenericBindingSetter, &minHeight_setterinfo },
   64835             :   { "min-height", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &min_height_getterinfo, GenericBindingSetter, &min_height_setterinfo },
   64836             :   { "minInlineSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &minInlineSize_getterinfo, GenericBindingSetter, &minInlineSize_setterinfo },
   64837             :   { "min-inline-size", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &min_inline_size_getterinfo, GenericBindingSetter, &min_inline_size_setterinfo },
   64838             :   { "minWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &minWidth_getterinfo, GenericBindingSetter, &minWidth_setterinfo },
   64839             :   { "min-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &min_width_getterinfo, GenericBindingSetter, &min_width_setterinfo },
   64840             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64841             :   { "mixBlendMode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mixBlendMode_getterinfo, GenericBindingSetter, &mixBlendMode_setterinfo },
   64842             :   { "mix-blend-mode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &mix_blend_mode_getterinfo, GenericBindingSetter, &mix_blend_mode_setterinfo },
   64843             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64844             :   { "objectFit", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &objectFit_getterinfo, GenericBindingSetter, &objectFit_setterinfo },
   64845             :   { "object-fit", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &object_fit_getterinfo, GenericBindingSetter, &object_fit_setterinfo },
   64846             :   { "objectPosition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &objectPosition_getterinfo, GenericBindingSetter, &objectPosition_setterinfo },
   64847             :   { "object-position", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &object_position_getterinfo, GenericBindingSetter, &object_position_setterinfo },
   64848             :   { "offsetBlockEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &offsetBlockEnd_getterinfo, GenericBindingSetter, &offsetBlockEnd_setterinfo },
   64849             :   { "offset-block-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &offset_block_end_getterinfo, GenericBindingSetter, &offset_block_end_setterinfo },
   64850             :   { "offsetBlockStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &offsetBlockStart_getterinfo, GenericBindingSetter, &offsetBlockStart_setterinfo },
   64851             :   { "offset-block-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &offset_block_start_getterinfo, GenericBindingSetter, &offset_block_start_setterinfo },
   64852             :   { "offsetInlineEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &offsetInlineEnd_getterinfo, GenericBindingSetter, &offsetInlineEnd_setterinfo },
   64853             :   { "offset-inline-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &offset_inline_end_getterinfo, GenericBindingSetter, &offset_inline_end_setterinfo },
   64854             :   { "offsetInlineStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &offsetInlineStart_getterinfo, GenericBindingSetter, &offsetInlineStart_setterinfo },
   64855             :   { "offset-inline-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &offset_inline_start_getterinfo, GenericBindingSetter, &offset_inline_start_setterinfo },
   64856             :   { "opacity", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &opacity_getterinfo, GenericBindingSetter, &opacity_setterinfo },
   64857             :   { "order", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &order_getterinfo, GenericBindingSetter, &order_setterinfo },
   64858             :   { "MozOrient", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozOrient_getterinfo, GenericBindingSetter, &MozOrient_setterinfo },
   64859             :   { "-moz-orient", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_orient_getterinfo, GenericBindingSetter, &_moz_orient_setterinfo },
   64860             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64861             :   { "MozOsxFontSmoothing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozOsxFontSmoothing_getterinfo, GenericBindingSetter, &MozOsxFontSmoothing_setterinfo },
   64862             :   { "-moz-osx-font-smoothing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_osx_font_smoothing_getterinfo, GenericBindingSetter, &_moz_osx_font_smoothing_setterinfo },
   64863             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64864             :   { "outline", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &outline_getterinfo, GenericBindingSetter, &outline_setterinfo },
   64865             :   { "outlineColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &outlineColor_getterinfo, GenericBindingSetter, &outlineColor_setterinfo },
   64866             :   { "outline-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &outline_color_getterinfo, GenericBindingSetter, &outline_color_setterinfo },
   64867             :   { "outlineOffset", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &outlineOffset_getterinfo, GenericBindingSetter, &outlineOffset_setterinfo },
   64868             :   { "outline-offset", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &outline_offset_getterinfo, GenericBindingSetter, &outline_offset_setterinfo },
   64869             :   { "MozOutlineRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozOutlineRadius_getterinfo, GenericBindingSetter, &MozOutlineRadius_setterinfo },
   64870             :   { "-moz-outline-radius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_outline_radius_getterinfo, GenericBindingSetter, &_moz_outline_radius_setterinfo },
   64871             :   { "MozOutlineRadiusBottomleft", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozOutlineRadiusBottomleft_getterinfo, GenericBindingSetter, &MozOutlineRadiusBottomleft_setterinfo },
   64872             :   { "-moz-outline-radius-bottomleft", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_outline_radius_bottomleft_getterinfo, GenericBindingSetter, &_moz_outline_radius_bottomleft_setterinfo },
   64873             :   { "MozOutlineRadiusBottomright", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozOutlineRadiusBottomright_getterinfo, GenericBindingSetter, &MozOutlineRadiusBottomright_setterinfo },
   64874             :   { "-moz-outline-radius-bottomright", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_outline_radius_bottomright_getterinfo, GenericBindingSetter, &_moz_outline_radius_bottomright_setterinfo },
   64875             :   { "MozOutlineRadiusTopleft", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozOutlineRadiusTopleft_getterinfo, GenericBindingSetter, &MozOutlineRadiusTopleft_setterinfo },
   64876             :   { "-moz-outline-radius-topleft", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_outline_radius_topleft_getterinfo, GenericBindingSetter, &_moz_outline_radius_topleft_setterinfo },
   64877             :   { "MozOutlineRadiusTopright", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozOutlineRadiusTopright_getterinfo, GenericBindingSetter, &MozOutlineRadiusTopright_setterinfo },
   64878             :   { "-moz-outline-radius-topright", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_outline_radius_topright_getterinfo, GenericBindingSetter, &_moz_outline_radius_topright_setterinfo },
   64879             :   { "outlineStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &outlineStyle_getterinfo, GenericBindingSetter, &outlineStyle_setterinfo },
   64880             :   { "outline-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &outline_style_getterinfo, GenericBindingSetter, &outline_style_setterinfo },
   64881             :   { "outlineWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &outlineWidth_getterinfo, GenericBindingSetter, &outlineWidth_setterinfo },
   64882             :   { "outline-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &outline_width_getterinfo, GenericBindingSetter, &outline_width_setterinfo },
   64883             :   { "overflow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &overflow_getterinfo, GenericBindingSetter, &overflow_setterinfo },
   64884             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64885             :   { "overflowClipBox", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &overflowClipBox_getterinfo, GenericBindingSetter, &overflowClipBox_setterinfo },
   64886             :   { "overflow-clip-box", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &overflow_clip_box_getterinfo, GenericBindingSetter, &overflow_clip_box_setterinfo },
   64887             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64888             :   { "overflowX", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &overflowX_getterinfo, GenericBindingSetter, &overflowX_setterinfo },
   64889             :   { "overflow-x", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &overflow_x_getterinfo, GenericBindingSetter, &overflow_x_setterinfo },
   64890             :   { "overflowY", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &overflowY_getterinfo, GenericBindingSetter, &overflowY_setterinfo },
   64891             :   { "overflow-y", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &overflow_y_getterinfo, GenericBindingSetter, &overflow_y_setterinfo },
   64892             :   { "padding", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &padding_getterinfo, GenericBindingSetter, &padding_setterinfo },
   64893             :   { "paddingBlockEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &paddingBlockEnd_getterinfo, GenericBindingSetter, &paddingBlockEnd_setterinfo },
   64894             :   { "padding-block-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &padding_block_end_getterinfo, GenericBindingSetter, &padding_block_end_setterinfo },
   64895             :   { "paddingBlockStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &paddingBlockStart_getterinfo, GenericBindingSetter, &paddingBlockStart_setterinfo },
   64896             :   { "padding-block-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &padding_block_start_getterinfo, GenericBindingSetter, &padding_block_start_setterinfo },
   64897             :   { "paddingBottom", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &paddingBottom_getterinfo, GenericBindingSetter, &paddingBottom_setterinfo },
   64898             :   { "padding-bottom", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &padding_bottom_getterinfo, GenericBindingSetter, &padding_bottom_setterinfo },
   64899             :   { "paddingInlineEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &paddingInlineEnd_getterinfo, GenericBindingSetter, &paddingInlineEnd_setterinfo },
   64900             :   { "padding-inline-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &padding_inline_end_getterinfo, GenericBindingSetter, &padding_inline_end_setterinfo },
   64901             :   { "paddingInlineStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &paddingInlineStart_getterinfo, GenericBindingSetter, &paddingInlineStart_setterinfo },
   64902             :   { "padding-inline-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &padding_inline_start_getterinfo, GenericBindingSetter, &padding_inline_start_setterinfo },
   64903             :   { "paddingLeft", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &paddingLeft_getterinfo, GenericBindingSetter, &paddingLeft_setterinfo },
   64904             :   { "padding-left", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &padding_left_getterinfo, GenericBindingSetter, &padding_left_setterinfo },
   64905             :   { "paddingRight", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &paddingRight_getterinfo, GenericBindingSetter, &paddingRight_setterinfo },
   64906             :   { "padding-right", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &padding_right_getterinfo, GenericBindingSetter, &padding_right_setterinfo },
   64907             :   { "paddingTop", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &paddingTop_getterinfo, GenericBindingSetter, &paddingTop_setterinfo },
   64908             :   { "padding-top", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &padding_top_getterinfo, GenericBindingSetter, &padding_top_setterinfo },
   64909             :   { "pageBreakAfter", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &pageBreakAfter_getterinfo, GenericBindingSetter, &pageBreakAfter_setterinfo },
   64910             :   { "page-break-after", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &page_break_after_getterinfo, GenericBindingSetter, &page_break_after_setterinfo },
   64911             :   { "pageBreakBefore", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &pageBreakBefore_getterinfo, GenericBindingSetter, &pageBreakBefore_setterinfo },
   64912             :   { "page-break-before", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &page_break_before_getterinfo, GenericBindingSetter, &page_break_before_setterinfo },
   64913             :   { "pageBreakInside", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &pageBreakInside_getterinfo, GenericBindingSetter, &pageBreakInside_setterinfo },
   64914             :   { "page-break-inside", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &page_break_inside_getterinfo, GenericBindingSetter, &page_break_inside_setterinfo },
   64915             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64916             :   { "paintOrder", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &paintOrder_getterinfo, GenericBindingSetter, &paintOrder_setterinfo },
   64917             :   { "paint-order", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &paint_order_getterinfo, GenericBindingSetter, &paint_order_setterinfo },
   64918             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64919             :   { "perspective", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &perspective_getterinfo, GenericBindingSetter, &perspective_setterinfo },
   64920             :   { "perspectiveOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &perspectiveOrigin_getterinfo, GenericBindingSetter, &perspectiveOrigin_setterinfo },
   64921             :   { "perspective-origin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &perspective_origin_getterinfo, GenericBindingSetter, &perspective_origin_setterinfo },
   64922             :   { "placeContent", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &placeContent_getterinfo, GenericBindingSetter, &placeContent_setterinfo },
   64923             :   { "place-content", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &place_content_getterinfo, GenericBindingSetter, &place_content_setterinfo },
   64924             :   { "placeItems", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &placeItems_getterinfo, GenericBindingSetter, &placeItems_setterinfo },
   64925             :   { "place-items", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &place_items_getterinfo, GenericBindingSetter, &place_items_setterinfo },
   64926             :   { "placeSelf", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &placeSelf_getterinfo, GenericBindingSetter, &placeSelf_setterinfo },
   64927             :   { "place-self", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &place_self_getterinfo, GenericBindingSetter, &place_self_setterinfo },
   64928             :   { "pointerEvents", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &pointerEvents_getterinfo, GenericBindingSetter, &pointerEvents_setterinfo },
   64929             :   { "pointer-events", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &pointer_events_getterinfo, GenericBindingSetter, &pointer_events_setterinfo },
   64930             :   { "position", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &position_getterinfo, GenericBindingSetter, &position_setterinfo },
   64931             :   { "quotes", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &quotes_getterinfo, GenericBindingSetter, &quotes_setterinfo },
   64932             :   { "resize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &resize_getterinfo, GenericBindingSetter, &resize_setterinfo },
   64933             :   { "right", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &right_getterinfo, GenericBindingSetter, &right_setterinfo },
   64934             :   { "rubyAlign", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &rubyAlign_getterinfo, GenericBindingSetter, &rubyAlign_setterinfo },
   64935             :   { "ruby-align", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &ruby_align_getterinfo, GenericBindingSetter, &ruby_align_setterinfo },
   64936             :   { "rubyPosition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &rubyPosition_getterinfo, GenericBindingSetter, &rubyPosition_setterinfo },
   64937             :   { "ruby-position", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &ruby_position_getterinfo, GenericBindingSetter, &ruby_position_setterinfo },
   64938             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64939             :   { "scrollBehavior", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scrollBehavior_getterinfo, GenericBindingSetter, &scrollBehavior_setterinfo },
   64940             :   { "scroll-behavior", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scroll_behavior_getterinfo, GenericBindingSetter, &scroll_behavior_setterinfo },
   64941             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64942             :   { "scrollSnapCoordinate", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scrollSnapCoordinate_getterinfo, GenericBindingSetter, &scrollSnapCoordinate_setterinfo },
   64943             :   { "scroll-snap-coordinate", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scroll_snap_coordinate_getterinfo, GenericBindingSetter, &scroll_snap_coordinate_setterinfo },
   64944             :   { "scrollSnapDestination", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scrollSnapDestination_getterinfo, GenericBindingSetter, &scrollSnapDestination_setterinfo },
   64945             :   { "scroll-snap-destination", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scroll_snap_destination_getterinfo, GenericBindingSetter, &scroll_snap_destination_setterinfo },
   64946             :   { "scrollSnapPointsX", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scrollSnapPointsX_getterinfo, GenericBindingSetter, &scrollSnapPointsX_setterinfo },
   64947             :   { "scroll-snap-points-x", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scroll_snap_points_x_getterinfo, GenericBindingSetter, &scroll_snap_points_x_setterinfo },
   64948             :   { "scrollSnapPointsY", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scrollSnapPointsY_getterinfo, GenericBindingSetter, &scrollSnapPointsY_setterinfo },
   64949             :   { "scroll-snap-points-y", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scroll_snap_points_y_getterinfo, GenericBindingSetter, &scroll_snap_points_y_setterinfo },
   64950             :   { "scrollSnapType", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scrollSnapType_getterinfo, GenericBindingSetter, &scrollSnapType_setterinfo },
   64951             :   { "scroll-snap-type", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scroll_snap_type_getterinfo, GenericBindingSetter, &scroll_snap_type_setterinfo },
   64952             :   { "scrollSnapTypeX", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scrollSnapTypeX_getterinfo, GenericBindingSetter, &scrollSnapTypeX_setterinfo },
   64953             :   { "scroll-snap-type-x", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scroll_snap_type_x_getterinfo, GenericBindingSetter, &scroll_snap_type_x_setterinfo },
   64954             :   { "scrollSnapTypeY", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scrollSnapTypeY_getterinfo, GenericBindingSetter, &scrollSnapTypeY_setterinfo },
   64955             :   { "scroll-snap-type-y", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &scroll_snap_type_y_getterinfo, GenericBindingSetter, &scroll_snap_type_y_setterinfo },
   64956             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64957             :   { "shapeOutside", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &shapeOutside_getterinfo, GenericBindingSetter, &shapeOutside_setterinfo },
   64958             :   { "shape-outside", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &shape_outside_getterinfo, GenericBindingSetter, &shape_outside_setterinfo },
   64959             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64960             :   { "shapeRendering", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &shapeRendering_getterinfo, GenericBindingSetter, &shapeRendering_setterinfo },
   64961             :   { "shape-rendering", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &shape_rendering_getterinfo, GenericBindingSetter, &shape_rendering_setterinfo },
   64962             :   { "MozStackSizing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozStackSizing_getterinfo, GenericBindingSetter, &MozStackSizing_setterinfo },
   64963             :   { "-moz-stack-sizing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_stack_sizing_getterinfo, GenericBindingSetter, &_moz_stack_sizing_setterinfo },
   64964             :   { "stopColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &stopColor_getterinfo, GenericBindingSetter, &stopColor_setterinfo },
   64965             :   { "stop-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &stop_color_getterinfo, GenericBindingSetter, &stop_color_setterinfo },
   64966             :   { "stopOpacity", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &stopOpacity_getterinfo, GenericBindingSetter, &stopOpacity_setterinfo },
   64967             :   { "stop-opacity", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &stop_opacity_getterinfo, GenericBindingSetter, &stop_opacity_setterinfo },
   64968             :   { "stroke", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &stroke_getterinfo, GenericBindingSetter, &stroke_setterinfo },
   64969             :   { "strokeDasharray", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &strokeDasharray_getterinfo, GenericBindingSetter, &strokeDasharray_setterinfo },
   64970             :   { "stroke-dasharray", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &stroke_dasharray_getterinfo, GenericBindingSetter, &stroke_dasharray_setterinfo },
   64971             :   { "strokeDashoffset", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &strokeDashoffset_getterinfo, GenericBindingSetter, &strokeDashoffset_setterinfo },
   64972             :   { "stroke-dashoffset", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &stroke_dashoffset_getterinfo, GenericBindingSetter, &stroke_dashoffset_setterinfo },
   64973             :   { "strokeLinecap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &strokeLinecap_getterinfo, GenericBindingSetter, &strokeLinecap_setterinfo },
   64974             :   { "stroke-linecap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &stroke_linecap_getterinfo, GenericBindingSetter, &stroke_linecap_setterinfo },
   64975             :   { "strokeLinejoin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &strokeLinejoin_getterinfo, GenericBindingSetter, &strokeLinejoin_setterinfo },
   64976             :   { "stroke-linejoin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &stroke_linejoin_getterinfo, GenericBindingSetter, &stroke_linejoin_setterinfo },
   64977             :   { "strokeMiterlimit", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &strokeMiterlimit_getterinfo, GenericBindingSetter, &strokeMiterlimit_setterinfo },
   64978             :   { "stroke-miterlimit", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &stroke_miterlimit_getterinfo, GenericBindingSetter, &stroke_miterlimit_setterinfo },
   64979             :   { "strokeOpacity", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &strokeOpacity_getterinfo, GenericBindingSetter, &strokeOpacity_setterinfo },
   64980             :   { "stroke-opacity", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &stroke_opacity_getterinfo, GenericBindingSetter, &stroke_opacity_setterinfo },
   64981             :   { "strokeWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &strokeWidth_getterinfo, GenericBindingSetter, &strokeWidth_setterinfo },
   64982             :   { "stroke-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &stroke_width_getterinfo, GenericBindingSetter, &stroke_width_setterinfo },
   64983             :   { "MozTabSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozTabSize_getterinfo, GenericBindingSetter, &MozTabSize_setterinfo },
   64984             :   { "-moz-tab-size", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_tab_size_getterinfo, GenericBindingSetter, &_moz_tab_size_setterinfo },
   64985             :   { "tableLayout", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &tableLayout_getterinfo, GenericBindingSetter, &tableLayout_setterinfo },
   64986             :   { "table-layout", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &table_layout_getterinfo, GenericBindingSetter, &table_layout_setterinfo },
   64987             :   { "textAlign", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textAlign_getterinfo, GenericBindingSetter, &textAlign_setterinfo },
   64988             :   { "text-align", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_align_getterinfo, GenericBindingSetter, &text_align_setterinfo },
   64989             :   { "textAlignLast", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textAlignLast_getterinfo, GenericBindingSetter, &textAlignLast_setterinfo },
   64990             :   { "text-align-last", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_align_last_getterinfo, GenericBindingSetter, &text_align_last_setterinfo },
   64991             :   { "textAnchor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textAnchor_getterinfo, GenericBindingSetter, &textAnchor_setterinfo },
   64992             :   { "text-anchor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_anchor_getterinfo, GenericBindingSetter, &text_anchor_setterinfo },
   64993             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64994             :   { "textCombineUpright", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textCombineUpright_getterinfo, GenericBindingSetter, &textCombineUpright_setterinfo },
   64995             :   { "text-combine-upright", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_combine_upright_getterinfo, GenericBindingSetter, &text_combine_upright_setterinfo },
   64996             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   64997             :   { "textDecoration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textDecoration_getterinfo, GenericBindingSetter, &textDecoration_setterinfo },
   64998             :   { "text-decoration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_decoration_getterinfo, GenericBindingSetter, &text_decoration_setterinfo },
   64999             :   { "textDecorationColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textDecorationColor_getterinfo, GenericBindingSetter, &textDecorationColor_setterinfo },
   65000             :   { "text-decoration-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_decoration_color_getterinfo, GenericBindingSetter, &text_decoration_color_setterinfo },
   65001             :   { "textDecorationLine", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textDecorationLine_getterinfo, GenericBindingSetter, &textDecorationLine_setterinfo },
   65002             :   { "text-decoration-line", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_decoration_line_getterinfo, GenericBindingSetter, &text_decoration_line_setterinfo },
   65003             :   { "textDecorationStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textDecorationStyle_getterinfo, GenericBindingSetter, &textDecorationStyle_setterinfo },
   65004             :   { "text-decoration-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_decoration_style_getterinfo, GenericBindingSetter, &text_decoration_style_setterinfo },
   65005             :   { "textEmphasis", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textEmphasis_getterinfo, GenericBindingSetter, &textEmphasis_setterinfo },
   65006             :   { "text-emphasis", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_emphasis_getterinfo, GenericBindingSetter, &text_emphasis_setterinfo },
   65007             :   { "textEmphasisColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textEmphasisColor_getterinfo, GenericBindingSetter, &textEmphasisColor_setterinfo },
   65008             :   { "text-emphasis-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_emphasis_color_getterinfo, GenericBindingSetter, &text_emphasis_color_setterinfo },
   65009             :   { "textEmphasisPosition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textEmphasisPosition_getterinfo, GenericBindingSetter, &textEmphasisPosition_setterinfo },
   65010             :   { "text-emphasis-position", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_emphasis_position_getterinfo, GenericBindingSetter, &text_emphasis_position_setterinfo },
   65011             :   { "textEmphasisStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textEmphasisStyle_getterinfo, GenericBindingSetter, &textEmphasisStyle_setterinfo },
   65012             :   { "text-emphasis-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_emphasis_style_getterinfo, GenericBindingSetter, &text_emphasis_style_setterinfo },
   65013             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65014             :   { "WebkitTextFillColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTextFillColor_getterinfo, GenericBindingSetter, &WebkitTextFillColor_setterinfo },
   65015             :   { "webkitTextFillColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTextFillColor_getterinfo, GenericBindingSetter, &webkitTextFillColor_setterinfo },
   65016             :   { "-webkit-text-fill-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_text_fill_color_getterinfo, GenericBindingSetter, &_webkit_text_fill_color_setterinfo },
   65017             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65018             :   { "textIndent", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textIndent_getterinfo, GenericBindingSetter, &textIndent_setterinfo },
   65019             :   { "text-indent", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_indent_getterinfo, GenericBindingSetter, &text_indent_setterinfo },
   65020             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65021             :   { "textJustify", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textJustify_getterinfo, GenericBindingSetter, &textJustify_setterinfo },
   65022             :   { "text-justify", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_justify_getterinfo, GenericBindingSetter, &text_justify_setterinfo },
   65023             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65024             :   { "textOrientation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textOrientation_getterinfo, GenericBindingSetter, &textOrientation_setterinfo },
   65025             :   { "text-orientation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_orientation_getterinfo, GenericBindingSetter, &text_orientation_setterinfo },
   65026             :   { "textOverflow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textOverflow_getterinfo, GenericBindingSetter, &textOverflow_setterinfo },
   65027             :   { "text-overflow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_overflow_getterinfo, GenericBindingSetter, &text_overflow_setterinfo },
   65028             :   { "textRendering", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textRendering_getterinfo, GenericBindingSetter, &textRendering_setterinfo },
   65029             :   { "text-rendering", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_rendering_getterinfo, GenericBindingSetter, &text_rendering_setterinfo },
   65030             :   { "textShadow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textShadow_getterinfo, GenericBindingSetter, &textShadow_setterinfo },
   65031             :   { "text-shadow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_shadow_getterinfo, GenericBindingSetter, &text_shadow_setterinfo },
   65032             :   { "MozTextSizeAdjust", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozTextSizeAdjust_getterinfo, GenericBindingSetter, &MozTextSizeAdjust_setterinfo },
   65033             :   { "-moz-text-size-adjust", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_text_size_adjust_getterinfo, GenericBindingSetter, &_moz_text_size_adjust_setterinfo },
   65034             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65035             :   { "WebkitTextStroke", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTextStroke_getterinfo, GenericBindingSetter, &WebkitTextStroke_setterinfo },
   65036             :   { "webkitTextStroke", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTextStroke_getterinfo, GenericBindingSetter, &webkitTextStroke_setterinfo },
   65037             :   { "-webkit-text-stroke", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_text_stroke_getterinfo, GenericBindingSetter, &_webkit_text_stroke_setterinfo },
   65038             :   { "WebkitTextStrokeColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTextStrokeColor_getterinfo, GenericBindingSetter, &WebkitTextStrokeColor_setterinfo },
   65039             :   { "webkitTextStrokeColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTextStrokeColor_getterinfo, GenericBindingSetter, &webkitTextStrokeColor_setterinfo },
   65040             :   { "-webkit-text-stroke-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_text_stroke_color_getterinfo, GenericBindingSetter, &_webkit_text_stroke_color_setterinfo },
   65041             :   { "WebkitTextStrokeWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTextStrokeWidth_getterinfo, GenericBindingSetter, &WebkitTextStrokeWidth_setterinfo },
   65042             :   { "webkitTextStrokeWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTextStrokeWidth_getterinfo, GenericBindingSetter, &webkitTextStrokeWidth_setterinfo },
   65043             :   { "-webkit-text-stroke-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_text_stroke_width_getterinfo, GenericBindingSetter, &_webkit_text_stroke_width_setterinfo },
   65044             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65045             :   { "textTransform", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &textTransform_getterinfo, GenericBindingSetter, &textTransform_setterinfo },
   65046             :   { "text-transform", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &text_transform_getterinfo, GenericBindingSetter, &text_transform_setterinfo },
   65047             :   { "top", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &top_getterinfo, GenericBindingSetter, &top_setterinfo },
   65048             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65049             :   { "touchAction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &touchAction_getterinfo, GenericBindingSetter, &touchAction_setterinfo },
   65050             :   { "touch-action", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &touch_action_getterinfo, GenericBindingSetter, &touch_action_setterinfo },
   65051             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65052             :   { "transform", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transform_getterinfo, GenericBindingSetter, &transform_setterinfo },
   65053             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65054             :   { "MozTransform", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozTransform_getterinfo, GenericBindingSetter, &MozTransform_setterinfo },
   65055             :   { "-moz-transform", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_transform_getterinfo, GenericBindingSetter, &_moz_transform_setterinfo },
   65056             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65057             :   { "transformBox", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transformBox_getterinfo, GenericBindingSetter, &transformBox_setterinfo },
   65058             :   { "transform-box", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transform_box_getterinfo, GenericBindingSetter, &transform_box_setterinfo },
   65059             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65060             :   { "transformOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transformOrigin_getterinfo, GenericBindingSetter, &transformOrigin_setterinfo },
   65061             :   { "transform-origin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transform_origin_getterinfo, GenericBindingSetter, &transform_origin_setterinfo },
   65062             :   { "transformStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transformStyle_getterinfo, GenericBindingSetter, &transformStyle_setterinfo },
   65063             :   { "transform-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transform_style_getterinfo, GenericBindingSetter, &transform_style_setterinfo },
   65064             :   { "transition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transition_getterinfo, GenericBindingSetter, &transition_setterinfo },
   65065             :   { "transitionDelay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transitionDelay_getterinfo, GenericBindingSetter, &transitionDelay_setterinfo },
   65066             :   { "transition-delay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transition_delay_getterinfo, GenericBindingSetter, &transition_delay_setterinfo },
   65067             :   { "transitionDuration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transitionDuration_getterinfo, GenericBindingSetter, &transitionDuration_setterinfo },
   65068             :   { "transition-duration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transition_duration_getterinfo, GenericBindingSetter, &transition_duration_setterinfo },
   65069             :   { "transitionProperty", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transitionProperty_getterinfo, GenericBindingSetter, &transitionProperty_setterinfo },
   65070             :   { "transition-property", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transition_property_getterinfo, GenericBindingSetter, &transition_property_setterinfo },
   65071             :   { "transitionTimingFunction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transitionTimingFunction_getterinfo, GenericBindingSetter, &transitionTimingFunction_setterinfo },
   65072             :   { "transition-timing-function", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &transition_timing_function_getterinfo, GenericBindingSetter, &transition_timing_function_setterinfo },
   65073             :   { "unicodeBidi", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &unicodeBidi_getterinfo, GenericBindingSetter, &unicodeBidi_setterinfo },
   65074             :   { "unicode-bidi", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &unicode_bidi_getterinfo, GenericBindingSetter, &unicode_bidi_setterinfo },
   65075             :   { "MozUserFocus", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozUserFocus_getterinfo, GenericBindingSetter, &MozUserFocus_setterinfo },
   65076             :   { "-moz-user-focus", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_user_focus_getterinfo, GenericBindingSetter, &_moz_user_focus_setterinfo },
   65077             :   { "MozUserInput", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozUserInput_getterinfo, GenericBindingSetter, &MozUserInput_setterinfo },
   65078             :   { "-moz-user-input", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_user_input_getterinfo, GenericBindingSetter, &_moz_user_input_setterinfo },
   65079             :   { "MozUserModify", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozUserModify_getterinfo, GenericBindingSetter, &MozUserModify_setterinfo },
   65080             :   { "-moz-user-modify", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_user_modify_getterinfo, GenericBindingSetter, &_moz_user_modify_setterinfo },
   65081             :   { "MozUserSelect", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozUserSelect_getterinfo, GenericBindingSetter, &MozUserSelect_setterinfo },
   65082             :   { "-moz-user-select", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_user_select_getterinfo, GenericBindingSetter, &_moz_user_select_setterinfo },
   65083             :   { "vectorEffect", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &vectorEffect_getterinfo, GenericBindingSetter, &vectorEffect_setterinfo },
   65084             :   { "vector-effect", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &vector_effect_getterinfo, GenericBindingSetter, &vector_effect_setterinfo },
   65085             :   { "verticalAlign", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &verticalAlign_getterinfo, GenericBindingSetter, &verticalAlign_setterinfo },
   65086             :   { "vertical-align", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &vertical_align_getterinfo, GenericBindingSetter, &vertical_align_setterinfo },
   65087             :   { "visibility", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &visibility_getterinfo, GenericBindingSetter, &visibility_setterinfo },
   65088             :   { "whiteSpace", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &whiteSpace_getterinfo, GenericBindingSetter, &whiteSpace_setterinfo },
   65089             :   { "white-space", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &white_space_getterinfo, GenericBindingSetter, &white_space_setterinfo },
   65090             :   { "width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &width_getterinfo, GenericBindingSetter, &width_setterinfo },
   65091             :   { "willChange", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &willChange_getterinfo, GenericBindingSetter, &willChange_setterinfo },
   65092             :   { "will-change", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &will_change_getterinfo, GenericBindingSetter, &will_change_setterinfo },
   65093             :   { "MozWindowDragging", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozWindowDragging_getterinfo, GenericBindingSetter, &MozWindowDragging_setterinfo },
   65094             :   { "-moz-window-dragging", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_window_dragging_getterinfo, GenericBindingSetter, &_moz_window_dragging_setterinfo },
   65095             :   { "wordBreak", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &wordBreak_getterinfo, GenericBindingSetter, &wordBreak_setterinfo },
   65096             :   { "word-break", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &word_break_getterinfo, GenericBindingSetter, &word_break_setterinfo },
   65097             :   { "wordSpacing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &wordSpacing_getterinfo, GenericBindingSetter, &wordSpacing_setterinfo },
   65098             :   { "word-spacing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &word_spacing_getterinfo, GenericBindingSetter, &word_spacing_setterinfo },
   65099             :   { "overflowWrap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &overflowWrap_getterinfo, GenericBindingSetter, &overflowWrap_setterinfo },
   65100             :   { "overflow-wrap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &overflow_wrap_getterinfo, GenericBindingSetter, &overflow_wrap_setterinfo },
   65101             :   { "writingMode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &writingMode_getterinfo, GenericBindingSetter, &writingMode_setterinfo },
   65102             :   { "writing-mode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &writing_mode_getterinfo, GenericBindingSetter, &writing_mode_setterinfo },
   65103             :   { "zIndex", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &zIndex_getterinfo, GenericBindingSetter, &zIndex_setterinfo },
   65104             :   { "z-index", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &z_index_getterinfo, GenericBindingSetter, &z_index_setterinfo },
   65105             :   { "wordWrap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &wordWrap_getterinfo, GenericBindingSetter, &wordWrap_setterinfo },
   65106             :   { "word-wrap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &word_wrap_getterinfo, GenericBindingSetter, &word_wrap_setterinfo },
   65107             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65108             :   { "MozTransformOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozTransformOrigin_getterinfo, GenericBindingSetter, &MozTransformOrigin_setterinfo },
   65109             :   { "-moz-transform-origin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_transform_origin_getterinfo, GenericBindingSetter, &_moz_transform_origin_setterinfo },
   65110             :   { "MozPerspectiveOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozPerspectiveOrigin_getterinfo, GenericBindingSetter, &MozPerspectiveOrigin_setterinfo },
   65111             :   { "-moz-perspective-origin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_perspective_origin_getterinfo, GenericBindingSetter, &_moz_perspective_origin_setterinfo },
   65112             :   { "MozPerspective", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozPerspective_getterinfo, GenericBindingSetter, &MozPerspective_setterinfo },
   65113             :   { "-moz-perspective", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_perspective_getterinfo, GenericBindingSetter, &_moz_perspective_setterinfo },
   65114             :   { "MozTransformStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozTransformStyle_getterinfo, GenericBindingSetter, &MozTransformStyle_setterinfo },
   65115             :   { "-moz-transform-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_transform_style_getterinfo, GenericBindingSetter, &_moz_transform_style_setterinfo },
   65116             :   { "MozBackfaceVisibility", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBackfaceVisibility_getterinfo, GenericBindingSetter, &MozBackfaceVisibility_setterinfo },
   65117             :   { "-moz-backface-visibility", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_backface_visibility_getterinfo, GenericBindingSetter, &_moz_backface_visibility_setterinfo },
   65118             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65119             :   { "MozBorderImage", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderImage_getterinfo, GenericBindingSetter, &MozBorderImage_setterinfo },
   65120             :   { "-moz-border-image", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_image_getterinfo, GenericBindingSetter, &_moz_border_image_setterinfo },
   65121             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65122             :   { "MozTransition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozTransition_getterinfo, GenericBindingSetter, &MozTransition_setterinfo },
   65123             :   { "-moz-transition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_transition_getterinfo, GenericBindingSetter, &_moz_transition_setterinfo },
   65124             :   { "MozTransitionDelay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozTransitionDelay_getterinfo, GenericBindingSetter, &MozTransitionDelay_setterinfo },
   65125             :   { "-moz-transition-delay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_transition_delay_getterinfo, GenericBindingSetter, &_moz_transition_delay_setterinfo },
   65126             :   { "MozTransitionDuration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozTransitionDuration_getterinfo, GenericBindingSetter, &MozTransitionDuration_setterinfo },
   65127             :   { "-moz-transition-duration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_transition_duration_getterinfo, GenericBindingSetter, &_moz_transition_duration_setterinfo },
   65128             :   { "MozTransitionProperty", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozTransitionProperty_getterinfo, GenericBindingSetter, &MozTransitionProperty_setterinfo },
   65129             :   { "-moz-transition-property", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_transition_property_getterinfo, GenericBindingSetter, &_moz_transition_property_setterinfo },
   65130             :   { "MozTransitionTimingFunction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozTransitionTimingFunction_getterinfo, GenericBindingSetter, &MozTransitionTimingFunction_setterinfo },
   65131             :   { "-moz-transition-timing-function", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_transition_timing_function_getterinfo, GenericBindingSetter, &_moz_transition_timing_function_setterinfo },
   65132             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65133             :   { "MozAnimation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozAnimation_getterinfo, GenericBindingSetter, &MozAnimation_setterinfo },
   65134             :   { "-moz-animation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_animation_getterinfo, GenericBindingSetter, &_moz_animation_setterinfo },
   65135             :   { "MozAnimationDelay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozAnimationDelay_getterinfo, GenericBindingSetter, &MozAnimationDelay_setterinfo },
   65136             :   { "-moz-animation-delay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_animation_delay_getterinfo, GenericBindingSetter, &_moz_animation_delay_setterinfo },
   65137             :   { "MozAnimationDirection", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozAnimationDirection_getterinfo, GenericBindingSetter, &MozAnimationDirection_setterinfo },
   65138             :   { "-moz-animation-direction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_animation_direction_getterinfo, GenericBindingSetter, &_moz_animation_direction_setterinfo },
   65139             :   { "MozAnimationDuration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozAnimationDuration_getterinfo, GenericBindingSetter, &MozAnimationDuration_setterinfo },
   65140             :   { "-moz-animation-duration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_animation_duration_getterinfo, GenericBindingSetter, &_moz_animation_duration_setterinfo },
   65141             :   { "MozAnimationFillMode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozAnimationFillMode_getterinfo, GenericBindingSetter, &MozAnimationFillMode_setterinfo },
   65142             :   { "-moz-animation-fill-mode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_animation_fill_mode_getterinfo, GenericBindingSetter, &_moz_animation_fill_mode_setterinfo },
   65143             :   { "MozAnimationIterationCount", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozAnimationIterationCount_getterinfo, GenericBindingSetter, &MozAnimationIterationCount_setterinfo },
   65144             :   { "-moz-animation-iteration-count", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_animation_iteration_count_getterinfo, GenericBindingSetter, &_moz_animation_iteration_count_setterinfo },
   65145             :   { "MozAnimationName", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozAnimationName_getterinfo, GenericBindingSetter, &MozAnimationName_setterinfo },
   65146             :   { "-moz-animation-name", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_animation_name_getterinfo, GenericBindingSetter, &_moz_animation_name_setterinfo },
   65147             :   { "MozAnimationPlayState", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozAnimationPlayState_getterinfo, GenericBindingSetter, &MozAnimationPlayState_setterinfo },
   65148             :   { "-moz-animation-play-state", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_animation_play_state_getterinfo, GenericBindingSetter, &_moz_animation_play_state_setterinfo },
   65149             :   { "MozAnimationTimingFunction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozAnimationTimingFunction_getterinfo, GenericBindingSetter, &MozAnimationTimingFunction_setterinfo },
   65150             :   { "-moz-animation-timing-function", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_animation_timing_function_getterinfo, GenericBindingSetter, &_moz_animation_timing_function_setterinfo },
   65151             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65152             :   { "MozBoxSizing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBoxSizing_getterinfo, GenericBindingSetter, &MozBoxSizing_setterinfo },
   65153             :   { "-moz-box-sizing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_box_sizing_getterinfo, GenericBindingSetter, &_moz_box_sizing_setterinfo },
   65154             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65155             :   { "MozFontFeatureSettings", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozFontFeatureSettings_getterinfo, GenericBindingSetter, &MozFontFeatureSettings_setterinfo },
   65156             :   { "-moz-font-feature-settings", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_font_feature_settings_getterinfo, GenericBindingSetter, &_moz_font_feature_settings_setterinfo },
   65157             :   { "MozFontLanguageOverride", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozFontLanguageOverride_getterinfo, GenericBindingSetter, &MozFontLanguageOverride_setterinfo },
   65158             :   { "-moz-font-language-override", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_font_language_override_getterinfo, GenericBindingSetter, &_moz_font_language_override_setterinfo },
   65159             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65160             :   { "MozPaddingEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozPaddingEnd_getterinfo, GenericBindingSetter, &MozPaddingEnd_setterinfo },
   65161             :   { "-moz-padding-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_padding_end_getterinfo, GenericBindingSetter, &_moz_padding_end_setterinfo },
   65162             :   { "MozPaddingStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozPaddingStart_getterinfo, GenericBindingSetter, &MozPaddingStart_setterinfo },
   65163             :   { "-moz-padding-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_padding_start_getterinfo, GenericBindingSetter, &_moz_padding_start_setterinfo },
   65164             :   { "MozMarginEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozMarginEnd_getterinfo, GenericBindingSetter, &MozMarginEnd_setterinfo },
   65165             :   { "-moz-margin-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_margin_end_getterinfo, GenericBindingSetter, &_moz_margin_end_setterinfo },
   65166             :   { "MozMarginStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozMarginStart_getterinfo, GenericBindingSetter, &MozMarginStart_setterinfo },
   65167             :   { "-moz-margin-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_margin_start_getterinfo, GenericBindingSetter, &_moz_margin_start_setterinfo },
   65168             :   { "MozBorderEnd", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderEnd_getterinfo, GenericBindingSetter, &MozBorderEnd_setterinfo },
   65169             :   { "-moz-border-end", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_end_getterinfo, GenericBindingSetter, &_moz_border_end_setterinfo },
   65170             :   { "MozBorderEndColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderEndColor_getterinfo, GenericBindingSetter, &MozBorderEndColor_setterinfo },
   65171             :   { "-moz-border-end-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_end_color_getterinfo, GenericBindingSetter, &_moz_border_end_color_setterinfo },
   65172             :   { "MozBorderEndStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderEndStyle_getterinfo, GenericBindingSetter, &MozBorderEndStyle_setterinfo },
   65173             :   { "-moz-border-end-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_end_style_getterinfo, GenericBindingSetter, &_moz_border_end_style_setterinfo },
   65174             :   { "MozBorderEndWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderEndWidth_getterinfo, GenericBindingSetter, &MozBorderEndWidth_setterinfo },
   65175             :   { "-moz-border-end-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_end_width_getterinfo, GenericBindingSetter, &_moz_border_end_width_setterinfo },
   65176             :   { "MozBorderStart", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderStart_getterinfo, GenericBindingSetter, &MozBorderStart_setterinfo },
   65177             :   { "-moz-border-start", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_start_getterinfo, GenericBindingSetter, &_moz_border_start_setterinfo },
   65178             :   { "MozBorderStartColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderStartColor_getterinfo, GenericBindingSetter, &MozBorderStartColor_setterinfo },
   65179             :   { "-moz-border-start-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_start_color_getterinfo, GenericBindingSetter, &_moz_border_start_color_setterinfo },
   65180             :   { "MozBorderStartStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderStartStyle_getterinfo, GenericBindingSetter, &MozBorderStartStyle_setterinfo },
   65181             :   { "-moz-border-start-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_start_style_getterinfo, GenericBindingSetter, &_moz_border_start_style_setterinfo },
   65182             :   { "MozBorderStartWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozBorderStartWidth_getterinfo, GenericBindingSetter, &MozBorderStartWidth_setterinfo },
   65183             :   { "-moz-border-start-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_border_start_width_getterinfo, GenericBindingSetter, &_moz_border_start_width_setterinfo },
   65184             :   { "MozHyphens", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozHyphens_getterinfo, GenericBindingSetter, &MozHyphens_setterinfo },
   65185             :   { "-moz-hyphens", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_hyphens_getterinfo, GenericBindingSetter, &_moz_hyphens_setterinfo },
   65186             :   { "MozColumnCount", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozColumnCount_getterinfo, GenericBindingSetter, &MozColumnCount_setterinfo },
   65187             :   { "-moz-column-count", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_column_count_getterinfo, GenericBindingSetter, &_moz_column_count_setterinfo },
   65188             :   { "MozColumnFill", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozColumnFill_getterinfo, GenericBindingSetter, &MozColumnFill_setterinfo },
   65189             :   { "-moz-column-fill", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_column_fill_getterinfo, GenericBindingSetter, &_moz_column_fill_setterinfo },
   65190             :   { "MozColumnGap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozColumnGap_getterinfo, GenericBindingSetter, &MozColumnGap_setterinfo },
   65191             :   { "-moz-column-gap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_column_gap_getterinfo, GenericBindingSetter, &_moz_column_gap_setterinfo },
   65192             :   { "MozColumnRule", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozColumnRule_getterinfo, GenericBindingSetter, &MozColumnRule_setterinfo },
   65193             :   { "-moz-column-rule", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_column_rule_getterinfo, GenericBindingSetter, &_moz_column_rule_setterinfo },
   65194             :   { "MozColumnRuleColor", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozColumnRuleColor_getterinfo, GenericBindingSetter, &MozColumnRuleColor_setterinfo },
   65195             :   { "-moz-column-rule-color", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_column_rule_color_getterinfo, GenericBindingSetter, &_moz_column_rule_color_setterinfo },
   65196             :   { "MozColumnRuleStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozColumnRuleStyle_getterinfo, GenericBindingSetter, &MozColumnRuleStyle_setterinfo },
   65197             :   { "-moz-column-rule-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_column_rule_style_getterinfo, GenericBindingSetter, &_moz_column_rule_style_setterinfo },
   65198             :   { "MozColumnRuleWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozColumnRuleWidth_getterinfo, GenericBindingSetter, &MozColumnRuleWidth_setterinfo },
   65199             :   { "-moz-column-rule-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_column_rule_width_getterinfo, GenericBindingSetter, &_moz_column_rule_width_setterinfo },
   65200             :   { "MozColumnWidth", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozColumnWidth_getterinfo, GenericBindingSetter, &MozColumnWidth_setterinfo },
   65201             :   { "-moz-column-width", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_column_width_getterinfo, GenericBindingSetter, &_moz_column_width_setterinfo },
   65202             :   { "MozColumns", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &MozColumns_getterinfo, GenericBindingSetter, &MozColumns_setterinfo },
   65203             :   { "-moz-columns", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_moz_columns_getterinfo, GenericBindingSetter, &_moz_columns_setterinfo },
   65204             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr },
   65205             :   { "WebkitAnimation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitAnimation_getterinfo, GenericBindingSetter, &WebkitAnimation_setterinfo },
   65206             :   { "webkitAnimation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitAnimation_getterinfo, GenericBindingSetter, &webkitAnimation_setterinfo },
   65207             :   { "-webkit-animation", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_animation_getterinfo, GenericBindingSetter, &_webkit_animation_setterinfo },
   65208             :   { "WebkitAnimationDelay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitAnimationDelay_getterinfo, GenericBindingSetter, &WebkitAnimationDelay_setterinfo },
   65209             :   { "webkitAnimationDelay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitAnimationDelay_getterinfo, GenericBindingSetter, &webkitAnimationDelay_setterinfo },
   65210             :   { "-webkit-animation-delay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_animation_delay_getterinfo, GenericBindingSetter, &_webkit_animation_delay_setterinfo },
   65211             :   { "WebkitAnimationDirection", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitAnimationDirection_getterinfo, GenericBindingSetter, &WebkitAnimationDirection_setterinfo },
   65212             :   { "webkitAnimationDirection", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitAnimationDirection_getterinfo, GenericBindingSetter, &webkitAnimationDirection_setterinfo },
   65213             :   { "-webkit-animation-direction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_animation_direction_getterinfo, GenericBindingSetter, &_webkit_animation_direction_setterinfo },
   65214             :   { "WebkitAnimationDuration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitAnimationDuration_getterinfo, GenericBindingSetter, &WebkitAnimationDuration_setterinfo },
   65215             :   { "webkitAnimationDuration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitAnimationDuration_getterinfo, GenericBindingSetter, &webkitAnimationDuration_setterinfo },
   65216             :   { "-webkit-animation-duration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_animation_duration_getterinfo, GenericBindingSetter, &_webkit_animation_duration_setterinfo },
   65217             :   { "WebkitAnimationFillMode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitAnimationFillMode_getterinfo, GenericBindingSetter, &WebkitAnimationFillMode_setterinfo },
   65218             :   { "webkitAnimationFillMode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitAnimationFillMode_getterinfo, GenericBindingSetter, &webkitAnimationFillMode_setterinfo },
   65219             :   { "-webkit-animation-fill-mode", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_animation_fill_mode_getterinfo, GenericBindingSetter, &_webkit_animation_fill_mode_setterinfo },
   65220             :   { "WebkitAnimationIterationCount", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitAnimationIterationCount_getterinfo, GenericBindingSetter, &WebkitAnimationIterationCount_setterinfo },
   65221             :   { "webkitAnimationIterationCount", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitAnimationIterationCount_getterinfo, GenericBindingSetter, &webkitAnimationIterationCount_setterinfo },
   65222             :   { "-webkit-animation-iteration-count", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_animation_iteration_count_getterinfo, GenericBindingSetter, &_webkit_animation_iteration_count_setterinfo },
   65223             :   { "WebkitAnimationName", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitAnimationName_getterinfo, GenericBindingSetter, &WebkitAnimationName_setterinfo },
   65224             :   { "webkitAnimationName", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitAnimationName_getterinfo, GenericBindingSetter, &webkitAnimationName_setterinfo },
   65225             :   { "-webkit-animation-name", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_animation_name_getterinfo, GenericBindingSetter, &_webkit_animation_name_setterinfo },
   65226             :   { "WebkitAnimationPlayState", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitAnimationPlayState_getterinfo, GenericBindingSetter, &WebkitAnimationPlayState_setterinfo },
   65227             :   { "webkitAnimationPlayState", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitAnimationPlayState_getterinfo, GenericBindingSetter, &webkitAnimationPlayState_setterinfo },
   65228             :   { "-webkit-animation-play-state", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_animation_play_state_getterinfo, GenericBindingSetter, &_webkit_animation_play_state_setterinfo },
   65229             :   { "WebkitAnimationTimingFunction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitAnimationTimingFunction_getterinfo, GenericBindingSetter, &WebkitAnimationTimingFunction_setterinfo },
   65230             :   { "webkitAnimationTimingFunction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitAnimationTimingFunction_getterinfo, GenericBindingSetter, &webkitAnimationTimingFunction_setterinfo },
   65231             :   { "-webkit-animation-timing-function", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_animation_timing_function_getterinfo, GenericBindingSetter, &_webkit_animation_timing_function_setterinfo },
   65232             :   { "WebkitFilter", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitFilter_getterinfo, GenericBindingSetter, &WebkitFilter_setterinfo },
   65233             :   { "webkitFilter", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitFilter_getterinfo, GenericBindingSetter, &webkitFilter_setterinfo },
   65234             :   { "-webkit-filter", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_filter_getterinfo, GenericBindingSetter, &_webkit_filter_setterinfo },
   65235             :   { "WebkitTextSizeAdjust", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTextSizeAdjust_getterinfo, GenericBindingSetter, &WebkitTextSizeAdjust_setterinfo },
   65236             :   { "webkitTextSizeAdjust", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTextSizeAdjust_getterinfo, GenericBindingSetter, &webkitTextSizeAdjust_setterinfo },
   65237             :   { "-webkit-text-size-adjust", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_text_size_adjust_getterinfo, GenericBindingSetter, &_webkit_text_size_adjust_setterinfo },
   65238             :   { "WebkitTransform", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTransform_getterinfo, GenericBindingSetter, &WebkitTransform_setterinfo },
   65239             :   { "webkitTransform", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTransform_getterinfo, GenericBindingSetter, &webkitTransform_setterinfo },
   65240             :   { "-webkit-transform", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_transform_getterinfo, GenericBindingSetter, &_webkit_transform_setterinfo },
   65241             :   { "WebkitTransformOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTransformOrigin_getterinfo, GenericBindingSetter, &WebkitTransformOrigin_setterinfo },
   65242             :   { "webkitTransformOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTransformOrigin_getterinfo, GenericBindingSetter, &webkitTransformOrigin_setterinfo },
   65243             :   { "-webkit-transform-origin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_transform_origin_getterinfo, GenericBindingSetter, &_webkit_transform_origin_setterinfo },
   65244             :   { "WebkitTransformStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTransformStyle_getterinfo, GenericBindingSetter, &WebkitTransformStyle_setterinfo },
   65245             :   { "webkitTransformStyle", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTransformStyle_getterinfo, GenericBindingSetter, &webkitTransformStyle_setterinfo },
   65246             :   { "-webkit-transform-style", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_transform_style_getterinfo, GenericBindingSetter, &_webkit_transform_style_setterinfo },
   65247             :   { "WebkitBackfaceVisibility", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBackfaceVisibility_getterinfo, GenericBindingSetter, &WebkitBackfaceVisibility_setterinfo },
   65248             :   { "webkitBackfaceVisibility", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBackfaceVisibility_getterinfo, GenericBindingSetter, &webkitBackfaceVisibility_setterinfo },
   65249             :   { "-webkit-backface-visibility", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_backface_visibility_getterinfo, GenericBindingSetter, &_webkit_backface_visibility_setterinfo },
   65250             :   { "WebkitPerspective", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitPerspective_getterinfo, GenericBindingSetter, &WebkitPerspective_setterinfo },
   65251             :   { "webkitPerspective", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitPerspective_getterinfo, GenericBindingSetter, &webkitPerspective_setterinfo },
   65252             :   { "-webkit-perspective", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_perspective_getterinfo, GenericBindingSetter, &_webkit_perspective_setterinfo },
   65253             :   { "WebkitPerspectiveOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitPerspectiveOrigin_getterinfo, GenericBindingSetter, &WebkitPerspectiveOrigin_setterinfo },
   65254             :   { "webkitPerspectiveOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitPerspectiveOrigin_getterinfo, GenericBindingSetter, &webkitPerspectiveOrigin_setterinfo },
   65255             :   { "-webkit-perspective-origin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_perspective_origin_getterinfo, GenericBindingSetter, &_webkit_perspective_origin_setterinfo },
   65256             :   { "WebkitTransition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTransition_getterinfo, GenericBindingSetter, &WebkitTransition_setterinfo },
   65257             :   { "webkitTransition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTransition_getterinfo, GenericBindingSetter, &webkitTransition_setterinfo },
   65258             :   { "-webkit-transition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_transition_getterinfo, GenericBindingSetter, &_webkit_transition_setterinfo },
   65259             :   { "WebkitTransitionDelay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTransitionDelay_getterinfo, GenericBindingSetter, &WebkitTransitionDelay_setterinfo },
   65260             :   { "webkitTransitionDelay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTransitionDelay_getterinfo, GenericBindingSetter, &webkitTransitionDelay_setterinfo },
   65261             :   { "-webkit-transition-delay", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_transition_delay_getterinfo, GenericBindingSetter, &_webkit_transition_delay_setterinfo },
   65262             :   { "WebkitTransitionDuration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTransitionDuration_getterinfo, GenericBindingSetter, &WebkitTransitionDuration_setterinfo },
   65263             :   { "webkitTransitionDuration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTransitionDuration_getterinfo, GenericBindingSetter, &webkitTransitionDuration_setterinfo },
   65264             :   { "-webkit-transition-duration", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_transition_duration_getterinfo, GenericBindingSetter, &_webkit_transition_duration_setterinfo },
   65265             :   { "WebkitTransitionProperty", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTransitionProperty_getterinfo, GenericBindingSetter, &WebkitTransitionProperty_setterinfo },
   65266             :   { "webkitTransitionProperty", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTransitionProperty_getterinfo, GenericBindingSetter, &webkitTransitionProperty_setterinfo },
   65267             :   { "-webkit-transition-property", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_transition_property_getterinfo, GenericBindingSetter, &_webkit_transition_property_setterinfo },
   65268             :   { "WebkitTransitionTimingFunction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitTransitionTimingFunction_getterinfo, GenericBindingSetter, &WebkitTransitionTimingFunction_setterinfo },
   65269             :   { "webkitTransitionTimingFunction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitTransitionTimingFunction_getterinfo, GenericBindingSetter, &webkitTransitionTimingFunction_setterinfo },
   65270             :   { "-webkit-transition-timing-function", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_transition_timing_function_getterinfo, GenericBindingSetter, &_webkit_transition_timing_function_setterinfo },
   65271             :   { "WebkitBorderRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBorderRadius_getterinfo, GenericBindingSetter, &WebkitBorderRadius_setterinfo },
   65272             :   { "webkitBorderRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBorderRadius_getterinfo, GenericBindingSetter, &webkitBorderRadius_setterinfo },
   65273             :   { "-webkit-border-radius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_border_radius_getterinfo, GenericBindingSetter, &_webkit_border_radius_setterinfo },
   65274             :   { "WebkitBorderTopLeftRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBorderTopLeftRadius_getterinfo, GenericBindingSetter, &WebkitBorderTopLeftRadius_setterinfo },
   65275             :   { "webkitBorderTopLeftRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBorderTopLeftRadius_getterinfo, GenericBindingSetter, &webkitBorderTopLeftRadius_setterinfo },
   65276             :   { "-webkit-border-top-left-radius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_border_top_left_radius_getterinfo, GenericBindingSetter, &_webkit_border_top_left_radius_setterinfo },
   65277             :   { "WebkitBorderTopRightRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBorderTopRightRadius_getterinfo, GenericBindingSetter, &WebkitBorderTopRightRadius_setterinfo },
   65278             :   { "webkitBorderTopRightRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBorderTopRightRadius_getterinfo, GenericBindingSetter, &webkitBorderTopRightRadius_setterinfo },
   65279             :   { "-webkit-border-top-right-radius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_border_top_right_radius_getterinfo, GenericBindingSetter, &_webkit_border_top_right_radius_setterinfo },
   65280             :   { "WebkitBorderBottomLeftRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBorderBottomLeftRadius_getterinfo, GenericBindingSetter, &WebkitBorderBottomLeftRadius_setterinfo },
   65281             :   { "webkitBorderBottomLeftRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBorderBottomLeftRadius_getterinfo, GenericBindingSetter, &webkitBorderBottomLeftRadius_setterinfo },
   65282             :   { "-webkit-border-bottom-left-radius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_border_bottom_left_radius_getterinfo, GenericBindingSetter, &_webkit_border_bottom_left_radius_setterinfo },
   65283             :   { "WebkitBorderBottomRightRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBorderBottomRightRadius_getterinfo, GenericBindingSetter, &WebkitBorderBottomRightRadius_setterinfo },
   65284             :   { "webkitBorderBottomRightRadius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBorderBottomRightRadius_getterinfo, GenericBindingSetter, &webkitBorderBottomRightRadius_setterinfo },
   65285             :   { "-webkit-border-bottom-right-radius", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_border_bottom_right_radius_getterinfo, GenericBindingSetter, &_webkit_border_bottom_right_radius_setterinfo },
   65286             :   { "WebkitBackgroundClip", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBackgroundClip_getterinfo, GenericBindingSetter, &WebkitBackgroundClip_setterinfo },
   65287             :   { "webkitBackgroundClip", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBackgroundClip_getterinfo, GenericBindingSetter, &webkitBackgroundClip_setterinfo },
   65288             :   { "-webkit-background-clip", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_background_clip_getterinfo, GenericBindingSetter, &_webkit_background_clip_setterinfo },
   65289             :   { "WebkitBackgroundOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBackgroundOrigin_getterinfo, GenericBindingSetter, &WebkitBackgroundOrigin_setterinfo },
   65290             :   { "webkitBackgroundOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBackgroundOrigin_getterinfo, GenericBindingSetter, &webkitBackgroundOrigin_setterinfo },
   65291             :   { "-webkit-background-origin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_background_origin_getterinfo, GenericBindingSetter, &_webkit_background_origin_setterinfo },
   65292             :   { "WebkitBackgroundSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBackgroundSize_getterinfo, GenericBindingSetter, &WebkitBackgroundSize_setterinfo },
   65293             :   { "webkitBackgroundSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBackgroundSize_getterinfo, GenericBindingSetter, &webkitBackgroundSize_setterinfo },
   65294             :   { "-webkit-background-size", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_background_size_getterinfo, GenericBindingSetter, &_webkit_background_size_setterinfo },
   65295             :   { "WebkitBorderImage", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBorderImage_getterinfo, GenericBindingSetter, &WebkitBorderImage_setterinfo },
   65296             :   { "webkitBorderImage", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBorderImage_getterinfo, GenericBindingSetter, &webkitBorderImage_setterinfo },
   65297             :   { "-webkit-border-image", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_border_image_getterinfo, GenericBindingSetter, &_webkit_border_image_setterinfo },
   65298             :   { "WebkitBoxShadow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBoxShadow_getterinfo, GenericBindingSetter, &WebkitBoxShadow_setterinfo },
   65299             :   { "webkitBoxShadow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBoxShadow_getterinfo, GenericBindingSetter, &webkitBoxShadow_setterinfo },
   65300             :   { "-webkit-box-shadow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_box_shadow_getterinfo, GenericBindingSetter, &_webkit_box_shadow_setterinfo },
   65301             :   { "WebkitBoxSizing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBoxSizing_getterinfo, GenericBindingSetter, &WebkitBoxSizing_setterinfo },
   65302             :   { "webkitBoxSizing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBoxSizing_getterinfo, GenericBindingSetter, &webkitBoxSizing_setterinfo },
   65303             :   { "-webkit-box-sizing", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_box_sizing_getterinfo, GenericBindingSetter, &_webkit_box_sizing_setterinfo },
   65304             :   { "WebkitBoxFlex", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBoxFlex_getterinfo, GenericBindingSetter, &WebkitBoxFlex_setterinfo },
   65305             :   { "webkitBoxFlex", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBoxFlex_getterinfo, GenericBindingSetter, &webkitBoxFlex_setterinfo },
   65306             :   { "-webkit-box-flex", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_box_flex_getterinfo, GenericBindingSetter, &_webkit_box_flex_setterinfo },
   65307             :   { "WebkitBoxOrdinalGroup", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBoxOrdinalGroup_getterinfo, GenericBindingSetter, &WebkitBoxOrdinalGroup_setterinfo },
   65308             :   { "webkitBoxOrdinalGroup", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBoxOrdinalGroup_getterinfo, GenericBindingSetter, &webkitBoxOrdinalGroup_setterinfo },
   65309             :   { "-webkit-box-ordinal-group", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_box_ordinal_group_getterinfo, GenericBindingSetter, &_webkit_box_ordinal_group_setterinfo },
   65310             :   { "WebkitBoxOrient", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBoxOrient_getterinfo, GenericBindingSetter, &WebkitBoxOrient_setterinfo },
   65311             :   { "webkitBoxOrient", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBoxOrient_getterinfo, GenericBindingSetter, &webkitBoxOrient_setterinfo },
   65312             :   { "-webkit-box-orient", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_box_orient_getterinfo, GenericBindingSetter, &_webkit_box_orient_setterinfo },
   65313             :   { "WebkitBoxDirection", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBoxDirection_getterinfo, GenericBindingSetter, &WebkitBoxDirection_setterinfo },
   65314             :   { "webkitBoxDirection", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBoxDirection_getterinfo, GenericBindingSetter, &webkitBoxDirection_setterinfo },
   65315             :   { "-webkit-box-direction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_box_direction_getterinfo, GenericBindingSetter, &_webkit_box_direction_setterinfo },
   65316             :   { "WebkitBoxAlign", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBoxAlign_getterinfo, GenericBindingSetter, &WebkitBoxAlign_setterinfo },
   65317             :   { "webkitBoxAlign", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBoxAlign_getterinfo, GenericBindingSetter, &webkitBoxAlign_setterinfo },
   65318             :   { "-webkit-box-align", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_box_align_getterinfo, GenericBindingSetter, &_webkit_box_align_setterinfo },
   65319             :   { "WebkitBoxPack", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitBoxPack_getterinfo, GenericBindingSetter, &WebkitBoxPack_setterinfo },
   65320             :   { "webkitBoxPack", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitBoxPack_getterinfo, GenericBindingSetter, &webkitBoxPack_setterinfo },
   65321             :   { "-webkit-box-pack", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_box_pack_getterinfo, GenericBindingSetter, &_webkit_box_pack_setterinfo },
   65322             :   { "WebkitFlexDirection", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitFlexDirection_getterinfo, GenericBindingSetter, &WebkitFlexDirection_setterinfo },
   65323             :   { "webkitFlexDirection", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitFlexDirection_getterinfo, GenericBindingSetter, &webkitFlexDirection_setterinfo },
   65324             :   { "-webkit-flex-direction", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_flex_direction_getterinfo, GenericBindingSetter, &_webkit_flex_direction_setterinfo },
   65325             :   { "WebkitFlexWrap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitFlexWrap_getterinfo, GenericBindingSetter, &WebkitFlexWrap_setterinfo },
   65326             :   { "webkitFlexWrap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitFlexWrap_getterinfo, GenericBindingSetter, &webkitFlexWrap_setterinfo },
   65327             :   { "-webkit-flex-wrap", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_flex_wrap_getterinfo, GenericBindingSetter, &_webkit_flex_wrap_setterinfo },
   65328             :   { "WebkitFlexFlow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitFlexFlow_getterinfo, GenericBindingSetter, &WebkitFlexFlow_setterinfo },
   65329             :   { "webkitFlexFlow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitFlexFlow_getterinfo, GenericBindingSetter, &webkitFlexFlow_setterinfo },
   65330             :   { "-webkit-flex-flow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_flex_flow_getterinfo, GenericBindingSetter, &_webkit_flex_flow_setterinfo },
   65331             :   { "WebkitOrder", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitOrder_getterinfo, GenericBindingSetter, &WebkitOrder_setterinfo },
   65332             :   { "webkitOrder", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitOrder_getterinfo, GenericBindingSetter, &webkitOrder_setterinfo },
   65333             :   { "-webkit-order", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_order_getterinfo, GenericBindingSetter, &_webkit_order_setterinfo },
   65334             :   { "WebkitFlex", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitFlex_getterinfo, GenericBindingSetter, &WebkitFlex_setterinfo },
   65335             :   { "webkitFlex", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitFlex_getterinfo, GenericBindingSetter, &webkitFlex_setterinfo },
   65336             :   { "-webkit-flex", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_flex_getterinfo, GenericBindingSetter, &_webkit_flex_setterinfo },
   65337             :   { "WebkitFlexGrow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitFlexGrow_getterinfo, GenericBindingSetter, &WebkitFlexGrow_setterinfo },
   65338             :   { "webkitFlexGrow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitFlexGrow_getterinfo, GenericBindingSetter, &webkitFlexGrow_setterinfo },
   65339             :   { "-webkit-flex-grow", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_flex_grow_getterinfo, GenericBindingSetter, &_webkit_flex_grow_setterinfo },
   65340             :   { "WebkitFlexShrink", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitFlexShrink_getterinfo, GenericBindingSetter, &WebkitFlexShrink_setterinfo },
   65341             :   { "webkitFlexShrink", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitFlexShrink_getterinfo, GenericBindingSetter, &webkitFlexShrink_setterinfo },
   65342             :   { "-webkit-flex-shrink", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_flex_shrink_getterinfo, GenericBindingSetter, &_webkit_flex_shrink_setterinfo },
   65343             :   { "WebkitFlexBasis", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitFlexBasis_getterinfo, GenericBindingSetter, &WebkitFlexBasis_setterinfo },
   65344             :   { "webkitFlexBasis", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitFlexBasis_getterinfo, GenericBindingSetter, &webkitFlexBasis_setterinfo },
   65345             :   { "-webkit-flex-basis", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_flex_basis_getterinfo, GenericBindingSetter, &_webkit_flex_basis_setterinfo },
   65346             :   { "WebkitJustifyContent", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitJustifyContent_getterinfo, GenericBindingSetter, &WebkitJustifyContent_setterinfo },
   65347             :   { "webkitJustifyContent", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitJustifyContent_getterinfo, GenericBindingSetter, &webkitJustifyContent_setterinfo },
   65348             :   { "-webkit-justify-content", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_justify_content_getterinfo, GenericBindingSetter, &_webkit_justify_content_setterinfo },
   65349             :   { "WebkitAlignItems", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitAlignItems_getterinfo, GenericBindingSetter, &WebkitAlignItems_setterinfo },
   65350             :   { "webkitAlignItems", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitAlignItems_getterinfo, GenericBindingSetter, &webkitAlignItems_setterinfo },
   65351             :   { "-webkit-align-items", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_align_items_getterinfo, GenericBindingSetter, &_webkit_align_items_setterinfo },
   65352             :   { "WebkitAlignSelf", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitAlignSelf_getterinfo, GenericBindingSetter, &WebkitAlignSelf_setterinfo },
   65353             :   { "webkitAlignSelf", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitAlignSelf_getterinfo, GenericBindingSetter, &webkitAlignSelf_setterinfo },
   65354             :   { "-webkit-align-self", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_align_self_getterinfo, GenericBindingSetter, &_webkit_align_self_setterinfo },
   65355             :   { "WebkitAlignContent", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitAlignContent_getterinfo, GenericBindingSetter, &WebkitAlignContent_setterinfo },
   65356             :   { "webkitAlignContent", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitAlignContent_getterinfo, GenericBindingSetter, &webkitAlignContent_setterinfo },
   65357             :   { "-webkit-align-content", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_align_content_getterinfo, GenericBindingSetter, &_webkit_align_content_setterinfo },
   65358             :   { "WebkitUserSelect", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitUserSelect_getterinfo, GenericBindingSetter, &WebkitUserSelect_setterinfo },
   65359             :   { "webkitUserSelect", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitUserSelect_getterinfo, GenericBindingSetter, &webkitUserSelect_setterinfo },
   65360             :   { "-webkit-user-select", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_user_select_getterinfo, GenericBindingSetter, &_webkit_user_select_setterinfo },
   65361             :   { "WebkitMask", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitMask_getterinfo, GenericBindingSetter, &WebkitMask_setterinfo },
   65362             :   { "webkitMask", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitMask_getterinfo, GenericBindingSetter, &webkitMask_setterinfo },
   65363             :   { "-webkit-mask", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_mask_getterinfo, GenericBindingSetter, &_webkit_mask_setterinfo },
   65364             :   { "WebkitMaskClip", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitMaskClip_getterinfo, GenericBindingSetter, &WebkitMaskClip_setterinfo },
   65365             :   { "webkitMaskClip", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitMaskClip_getterinfo, GenericBindingSetter, &webkitMaskClip_setterinfo },
   65366             :   { "-webkit-mask-clip", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_mask_clip_getterinfo, GenericBindingSetter, &_webkit_mask_clip_setterinfo },
   65367             :   { "WebkitMaskComposite", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitMaskComposite_getterinfo, GenericBindingSetter, &WebkitMaskComposite_setterinfo },
   65368             :   { "webkitMaskComposite", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitMaskComposite_getterinfo, GenericBindingSetter, &webkitMaskComposite_setterinfo },
   65369             :   { "-webkit-mask-composite", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_mask_composite_getterinfo, GenericBindingSetter, &_webkit_mask_composite_setterinfo },
   65370             :   { "WebkitMaskImage", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitMaskImage_getterinfo, GenericBindingSetter, &WebkitMaskImage_setterinfo },
   65371             :   { "webkitMaskImage", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitMaskImage_getterinfo, GenericBindingSetter, &webkitMaskImage_setterinfo },
   65372             :   { "-webkit-mask-image", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_mask_image_getterinfo, GenericBindingSetter, &_webkit_mask_image_setterinfo },
   65373             :   { "WebkitMaskOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitMaskOrigin_getterinfo, GenericBindingSetter, &WebkitMaskOrigin_setterinfo },
   65374             :   { "webkitMaskOrigin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitMaskOrigin_getterinfo, GenericBindingSetter, &webkitMaskOrigin_setterinfo },
   65375             :   { "-webkit-mask-origin", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_mask_origin_getterinfo, GenericBindingSetter, &_webkit_mask_origin_setterinfo },
   65376             :   { "WebkitMaskPosition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitMaskPosition_getterinfo, GenericBindingSetter, &WebkitMaskPosition_setterinfo },
   65377             :   { "webkitMaskPosition", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitMaskPosition_getterinfo, GenericBindingSetter, &webkitMaskPosition_setterinfo },
   65378             :   { "-webkit-mask-position", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_mask_position_getterinfo, GenericBindingSetter, &_webkit_mask_position_setterinfo },
   65379             :   { "WebkitMaskPositionX", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitMaskPositionX_getterinfo, GenericBindingSetter, &WebkitMaskPositionX_setterinfo },
   65380             :   { "webkitMaskPositionX", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitMaskPositionX_getterinfo, GenericBindingSetter, &webkitMaskPositionX_setterinfo },
   65381             :   { "-webkit-mask-position-x", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_mask_position_x_getterinfo, GenericBindingSetter, &_webkit_mask_position_x_setterinfo },
   65382             :   { "WebkitMaskPositionY", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitMaskPositionY_getterinfo, GenericBindingSetter, &WebkitMaskPositionY_setterinfo },
   65383             :   { "webkitMaskPositionY", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitMaskPositionY_getterinfo, GenericBindingSetter, &webkitMaskPositionY_setterinfo },
   65384             :   { "-webkit-mask-position-y", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_mask_position_y_getterinfo, GenericBindingSetter, &_webkit_mask_position_y_setterinfo },
   65385             :   { "WebkitMaskRepeat", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitMaskRepeat_getterinfo, GenericBindingSetter, &WebkitMaskRepeat_setterinfo },
   65386             :   { "webkitMaskRepeat", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitMaskRepeat_getterinfo, GenericBindingSetter, &webkitMaskRepeat_setterinfo },
   65387             :   { "-webkit-mask-repeat", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_mask_repeat_getterinfo, GenericBindingSetter, &_webkit_mask_repeat_setterinfo },
   65388             :   { "WebkitMaskSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &WebkitMaskSize_getterinfo, GenericBindingSetter, &WebkitMaskSize_setterinfo },
   65389             :   { "webkitMaskSize", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &webkitMaskSize_getterinfo, GenericBindingSetter, &webkitMaskSize_setterinfo },
   65390             :   { "-webkit-mask-size", JSPROP_SHARED | JSPROP_ENUMERATE, GenericBindingGetter, &_webkit_mask_size_getterinfo, GenericBindingSetter, &_webkit_mask_size_setterinfo },
   65391             :   { nullptr, 0, nullptr, nullptr, nullptr, nullptr }
   65392             : };
   65393             : #if defined(__clang__)
   65394             : #pragma clang diagnostic pop
   65395             : #endif
   65396             : 
   65397             : static PrefableDisablers sAttributes_disablers7 = {
   65398             :   true, false, 0, nullptr
   65399             : };
   65400             : 
   65401             : static PrefableDisablers sAttributes_disablers34 = {
   65402             :   true, false, 0, nullptr
   65403             : };
   65404             : 
   65405             : static PrefableDisablers sAttributes_disablers168 = {
   65406             :   true, false, 0, nullptr
   65407             : };
   65408             : 
   65409             : static PrefableDisablers sAttributes_disablers197 = {
   65410             :   true, false, 0, nullptr
   65411             : };
   65412             : 
   65413             : static PrefableDisablers sAttributes_disablers219 = {
   65414             :   true, false, 0, nullptr
   65415             : };
   65416             : 
   65417             : static PrefableDisablers sAttributes_disablers226 = {
   65418             :   true, false, 0, nullptr
   65419             : };
   65420             : 
   65421             : static PrefableDisablers sAttributes_disablers301 = {
   65422             :   true, false, 0, nullptr
   65423             : };
   65424             : 
   65425             : static PrefableDisablers sAttributes_disablers309 = {
   65426             :   true, false, 0, nullptr
   65427             : };
   65428             : 
   65429             : static PrefableDisablers sAttributes_disablers348 = {
   65430             :   true, false, 0, nullptr
   65431             : };
   65432             : 
   65433             : static PrefableDisablers sAttributes_disablers351 = {
   65434             :   true, false, 0, nullptr
   65435             : };
   65436             : 
   65437             : static PrefableDisablers sAttributes_disablers363 = {
   65438             :   true, false, 0, nullptr
   65439             : };
   65440             : 
   65441             : static PrefableDisablers sAttributes_disablers450 = {
   65442             :   true, false, 0, nullptr
   65443             : };
   65444             : 
   65445             : static PrefableDisablers sAttributes_disablers470 = {
   65446             :   true, false, 0, nullptr
   65447             : };
   65448             : 
   65449             : static PrefableDisablers sAttributes_disablers494 = {
   65450             :   true, false, 0, nullptr
   65451             : };
   65452             : 
   65453             : static PrefableDisablers sAttributes_disablers525 = {
   65454             :   true, false, 0, nullptr
   65455             : };
   65456             : 
   65457             : static PrefableDisablers sAttributes_disablers548 = {
   65458             :   true, false, 0, nullptr
   65459             : };
   65460             : 
   65461             : static PrefableDisablers sAttributes_disablers551 = {
   65462             :   true, false, 0, nullptr
   65463             : };
   65464             : 
   65465             : static PrefableDisablers sAttributes_disablers566 = {
   65466             :   true, false, 0, nullptr
   65467             : };
   65468             : 
   65469             : static PrefableDisablers sAttributes_disablers603 = {
   65470             :   true, false, 0, nullptr
   65471             : };
   65472             : 
   65473             : static PrefableDisablers sAttributes_disablers623 = {
   65474             :   true, false, 0, nullptr
   65475             : };
   65476             : 
   65477             : static PrefableDisablers sAttributes_disablers630 = {
   65478             :   true, false, 0, nullptr
   65479             : };
   65480             : 
   65481             : static PrefableDisablers sAttributes_disablers644 = {
   65482             :   true, false, 0, nullptr
   65483             : };
   65484             : 
   65485             : static PrefableDisablers sAttributes_disablers658 = {
   65486             :   true, false, 0, nullptr
   65487             : };
   65488             : 
   65489             : static PrefableDisablers sAttributes_disablers663 = {
   65490             :   true, false, 0, nullptr
   65491             : };
   65492             : 
   65493             : static PrefableDisablers sAttributes_disablers666 = {
   65494             :   true, false, 0, nullptr
   65495             : };
   65496             : 
   65497             : static PrefableDisablers sAttributes_disablers717 = {
   65498             :   true, false, 0, nullptr
   65499             : };
   65500             : 
   65501             : static PrefableDisablers sAttributes_disablers728 = {
   65502             :   true, false, 0, nullptr
   65503             : };
   65504             : 
   65505             : static PrefableDisablers sAttributes_disablers731 = {
   65506             :   true, false, 0, nullptr
   65507             : };
   65508             : 
   65509             : static PrefableDisablers sAttributes_disablers742 = {
   65510             :   true, false, 0, nullptr
   65511             : };
   65512             : 
   65513             : static PrefableDisablers sAttributes_disablers761 = {
   65514             :   true, false, 0, nullptr
   65515             : };
   65516             : 
   65517             : static PrefableDisablers sAttributes_disablers764 = {
   65518             :   true, false, 0, nullptr
   65519             : };
   65520             : 
   65521             : static PrefableDisablers sAttributes_disablers814 = {
   65522             :   true, false, 0, nullptr
   65523             : };
   65524             : 
   65525             : // Can't be const because the pref-enabled boolean needs to be writable
   65526             : static Prefable<const JSPropertySpec> sAttributes[] = {
   65527             :   { nullptr, &sAttributes_specs[0] },
   65528             :   { &sAttributes_disablers7, &sAttributes_specs[7] },
   65529             :   { nullptr, &sAttributes_specs[9] },
   65530             :   { &sAttributes_disablers34, &sAttributes_specs[34] },
   65531             :   { nullptr, &sAttributes_specs[37] },
   65532             :   { &sAttributes_disablers168, &sAttributes_specs[168] },
   65533             :   { nullptr, &sAttributes_specs[171] },
   65534             :   { &sAttributes_disablers197, &sAttributes_specs[197] },
   65535             :   { nullptr, &sAttributes_specs[200] },
   65536             :   { &sAttributes_disablers219, &sAttributes_specs[219] },
   65537             :   { nullptr, &sAttributes_specs[222] },
   65538             :   { &sAttributes_disablers226, &sAttributes_specs[226] },
   65539             :   { nullptr, &sAttributes_specs[228] },
   65540             :   { &sAttributes_disablers301, &sAttributes_specs[301] },
   65541             :   { nullptr, &sAttributes_specs[304] },
   65542             :   { &sAttributes_disablers309, &sAttributes_specs[309] },
   65543             :   { nullptr, &sAttributes_specs[345] },
   65544             :   { &sAttributes_disablers348, &sAttributes_specs[348] },
   65545             :   { &sAttributes_disablers351, &sAttributes_specs[351] },
   65546             :   { nullptr, &sAttributes_specs[354] },
   65547             :   { &sAttributes_disablers363, &sAttributes_specs[363] },
   65548             :   { nullptr, &sAttributes_specs[365] },
   65549             :   { &sAttributes_disablers450, &sAttributes_specs[450] },
   65550             :   { nullptr, &sAttributes_specs[453] },
   65551             :   { &sAttributes_disablers470, &sAttributes_specs[470] },
   65552             :   { nullptr, &sAttributes_specs[473] },
   65553             :   { &sAttributes_disablers494, &sAttributes_specs[494] },
   65554             :   { nullptr, &sAttributes_specs[497] },
   65555             :   { &sAttributes_disablers525, &sAttributes_specs[525] },
   65556             :   { nullptr, &sAttributes_specs[528] },
   65557             :   { &sAttributes_disablers548, &sAttributes_specs[548] },
   65558             :   { &sAttributes_disablers551, &sAttributes_specs[551] },
   65559             :   { &sAttributes_disablers566, &sAttributes_specs[566] },
   65560             :   { nullptr, &sAttributes_specs[569] },
   65561             :   { &sAttributes_disablers603, &sAttributes_specs[603] },
   65562             :   { nullptr, &sAttributes_specs[606] },
   65563             :   { &sAttributes_disablers623, &sAttributes_specs[623] },
   65564             :   { nullptr, &sAttributes_specs[627] },
   65565             :   { &sAttributes_disablers630, &sAttributes_specs[630] },
   65566             :   { nullptr, &sAttributes_specs[633] },
   65567             :   { &sAttributes_disablers644, &sAttributes_specs[644] },
   65568             :   { nullptr, &sAttributes_specs[654] },
   65569             :   { &sAttributes_disablers658, &sAttributes_specs[658] },
   65570             :   { nullptr, &sAttributes_specs[661] },
   65571             :   { &sAttributes_disablers663, &sAttributes_specs[663] },
   65572             :   { &sAttributes_disablers666, &sAttributes_specs[666] },
   65573             :   { nullptr, &sAttributes_specs[669] },
   65574             :   { &sAttributes_disablers717, &sAttributes_specs[717] },
   65575             :   { &sAttributes_disablers728, &sAttributes_specs[728] },
   65576             :   { &sAttributes_disablers731, &sAttributes_specs[731] },
   65577             :   { &sAttributes_disablers742, &sAttributes_specs[742] },
   65578             :   { &sAttributes_disablers761, &sAttributes_specs[761] },
   65579             :   { &sAttributes_disablers764, &sAttributes_specs[764] },
   65580             :   { nullptr, &sAttributes_specs[769] },
   65581             :   { &sAttributes_disablers814, &sAttributes_specs[814] },
   65582             :   { nullptr, nullptr }
   65583             : };
   65584             : 
   65585             : static_assert(55 <= 1ull << NUM_BITS_PROPERTY_INFO_PREF_INDEX,
   65586             :     "We have a prefable index that is >= (1 << NUM_BITS_PROPERTY_INFO_PREF_INDEX)");
   65587             : static_assert(186 <= 1ull << NUM_BITS_PROPERTY_INFO_SPEC_INDEX,
   65588             :     "We have a spec index that is >= (1 << NUM_BITS_PROPERTY_INFO_SPEC_INDEX)");
   65589             : 
   65590             : 
   65591             : static uint16_t sNativeProperties_sortedPropertyIndices[947];
   65592             : static PropertyInfo sNativeProperties_propertyInfos[947];
   65593             : 
   65594             : static const NativePropertiesN<2> sNativeProperties = {
   65595             :   false, 0,
   65596             :   false, 0,
   65597             :   true,  0 /* sMethods */,
   65598             :   true,  1 /* sAttributes */,
   65599             :   false, 0,
   65600             :   false, 0,
   65601             :   false, 0,
   65602             :   -1,
   65603             :   947,
   65604             :   sNativeProperties_sortedPropertyIndices,
   65605             :   {
   65606             :     { sMethods, &sNativeProperties_propertyInfos[0] },
   65607             :     { sAttributes, &sNativeProperties_propertyInfos[1] }
   65608             :   }
   65609             : };
   65610             : static_assert(947 < 1ull << CHAR_BIT * sizeof(sNativeProperties.propertyInfoCount),
   65611             :     "We have a property info count that is oversized");
   65612             : 
   65613             : static const DOMIfaceAndProtoJSClass sInterfaceObjectClass = {
   65614             :   {
   65615             :     "Function",
   65616             :     JSCLASS_IS_DOMIFACEANDPROTOJSCLASS | JSCLASS_HAS_RESERVED_SLOTS(DOM_INTERFACE_SLOTS_BASE),
   65617             :     &sBoringInterfaceObjectClassClassOps,
   65618             :     JS_NULL_CLASS_SPEC,
   65619             :     JS_NULL_CLASS_EXT,
   65620             :     &sInterfaceObjectClassObjectOps
   65621             :   },
   65622             :   eInterface,
   65623             :   true,
   65624             :   prototypes::id::CSS2Properties,
   65625             :   PrototypeTraits<prototypes::id::CSS2Properties>::Depth,
   65626             :   sNativePropertyHooks,
   65627             :   "function CSS2Properties() {\n    [native code]\n}",
   65628             :   CSSStyleDeclarationBinding::GetConstructorObject
   65629             : };
   65630             : 
   65631             : static const DOMIfaceAndProtoJSClass sPrototypeClass = {
   65632             :   {
   65633             :     "CSS2PropertiesPrototype",
   65634             :     JSCLASS_IS_DOMIFACEANDPROTOJSCLASS | JSCLASS_HAS_RESERVED_SLOTS(DOM_INTERFACE_PROTO_SLOTS_BASE),
   65635             :     JS_NULL_CLASS_OPS,
   65636             :     JS_NULL_CLASS_SPEC,
   65637             :     JS_NULL_CLASS_EXT,
   65638             :     JS_NULL_OBJECT_OPS
   65639             :   },
   65640             :   eInterfacePrototype,
   65641             :   false,
   65642             :   prototypes::id::CSS2Properties,
   65643             :   PrototypeTraits<prototypes::id::CSS2Properties>::Depth,
   65644             :   sNativePropertyHooks,
   65645             :   "[object CSS2PropertiesPrototype]",
   65646             :   CSSStyleDeclarationBinding::GetProtoObject
   65647             : };
   65648             : 
   65649             : JSObject*
   65650           0 : DefineDOMInterface(JSContext* aCx, JS::Handle<JSObject*> aGlobal, JS::Handle<jsid> id, bool aDefineOnGlobal)
   65651             : {
   65652           0 :   return GetConstructorObjectHandle(aCx, aDefineOnGlobal);
   65653             : }
   65654             : 
   65655             : static_assert(IsBaseOf<nsISupports, nsDOMCSSDeclaration >::value,
   65656             :                   "We don't support non-nsISupports native classes for "
   65657             :                   "proxy-based bindings yet");
   65658             : 
   65659             : 
   65660             : class DOMProxyHandler : public mozilla::dom::DOMProxyHandler
   65661             : {
   65662             : public:
   65663             :   explicit constexpr DOMProxyHandler()
   65664             :   {
   65665             :   }
   65666             : 
   65667             :   virtual bool
   65668             :   getOwnPropDescriptor(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, bool ignoreNamedProps, JS::MutableHandle<JS::PropertyDescriptor> desc) const override;
   65669             : 
   65670             :   virtual bool
   65671             :   defineProperty(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, JS::Handle<JS::PropertyDescriptor> desc, JS::ObjectOpResult& opresult, bool* defined) const override;
   65672             : 
   65673             :   using mozilla::dom::DOMProxyHandler::defineProperty;
   65674             : 
   65675             :   virtual bool
   65676             :   ownPropNames(JSContext* cx, JS::Handle<JSObject*> proxy, unsigned flags, JS::AutoIdVector& props) const override;
   65677             : 
   65678             :   virtual bool
   65679             :   hasOwn(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, bool* bp) const override;
   65680             : 
   65681             :   virtual bool
   65682             :   get(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<JS::Value> receiver, JS::Handle<jsid> id, JS::MutableHandle<JS::Value> vp) const override;
   65683             : 
   65684             :   virtual const char*
   65685             :   className(JSContext* cx, JS::Handle<JSObject*> proxy) const override;
   65686             : 
   65687             :   virtual bool
   65688             :   finalizeInBackground(const JS::Value& priv) const override;
   65689             : 
   65690             :   virtual void
   65691             :   finalize(JSFreeOp* fop, JSObject* proxy) const override;
   65692             : 
   65693             :   static const DOMProxyHandler*
   65694             :   getInstance();
   65695             : 
   65696             :   virtual bool
   65697             :   delete_(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, JS::ObjectOpResult& opresult) const override;
   65698             : 
   65699             :   virtual bool
   65700             :   getElements(JSContext* cx, JS::Handle<JSObject*> proxy, uint32_t begin, uint32_t end, js::ElementAdder* adder) const override;
   65701             : };
   65702             : 
   65703             : MOZ_ALWAYS_INLINE bool
   65704           0 : IsProxy(JSObject* obj)
   65705             : {
   65706           0 :   return js::IsProxy(obj) && js::GetProxyHandler(obj) == DOMProxyHandler::getInstance();
   65707             : }
   65708             : 
   65709             : MOZ_ALWAYS_INLINE nsDOMCSSDeclaration*
   65710           0 : UnwrapProxy(JSObject* obj)
   65711             : {
   65712           0 :   MOZ_ASSERT(js::IsProxy(obj));
   65713           0 :   if (js::GetProxyHandler(obj) != DOMProxyHandler::getInstance()) {
   65714           0 :     MOZ_ASSERT(xpc::WrapperFactory::IsXrayWrapper(obj));
   65715           0 :     obj = js::UncheckedUnwrap(obj);
   65716             :   }
   65717           0 :   MOZ_ASSERT(IsProxy(obj));
   65718           0 :   return static_cast<nsDOMCSSDeclaration*>(js::GetProxyReservedSlot(obj, DOM_OBJECT_SLOT).toPrivate());
   65719             : }
   65720             : 
   65721             : bool
   65722           9 : DOMProxyHandler::getOwnPropDescriptor(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, bool ignoreNamedProps, JS::MutableHandle<JS::PropertyDescriptor> desc) const
   65723             : {
   65724           9 :   bool isXray = xpc::WrapperFactory::IsXrayWrapper(proxy);
   65725           9 :   uint32_t index = GetArrayIndexFromId(cx, id);
   65726           9 :   if (IsArrayIndex(index)) {
   65727           0 :     nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
   65728           0 :     bool found = false;
   65729           0 :     DOMString result;
   65730           0 :     self->IndexedGetter(index, found, result);
   65731           0 :     MOZ_ASSERT(!JS_IsExceptionPending(cx));
   65732             : 
   65733           0 :     if (found) {
   65734           0 :       if (!xpc::NonVoidStringToJsval(cx, result, desc.value())) {
   65735           0 :         return false;
   65736             :       }
   65737           0 :       FillPropertyDescriptor(desc, proxy, true);
   65738           0 :       return true;
   65739             :     }
   65740             :   }
   65741             : 
   65742          18 :   JS::Rooted<JSObject*> expando(cx);
   65743           9 :   if (!isXray && (expando = GetExpandoObject(proxy))) {
   65744           0 :     if (!JS_GetOwnPropertyDescriptorById(cx, expando, id, desc)) {
   65745           0 :       return false;
   65746             :     }
   65747           0 :     if (desc.object()) {
   65748             :       // Pretend the property lives on the wrapper.
   65749           0 :       desc.object().set(proxy);
   65750           0 :       return true;
   65751             :     }
   65752             :   }
   65753             : 
   65754           9 :   desc.object().set(nullptr);
   65755           9 :   return true;
   65756             : }
   65757             : 
   65758             : bool
   65759           0 : DOMProxyHandler::defineProperty(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, JS::Handle<JS::PropertyDescriptor> desc, JS::ObjectOpResult& opresult, bool* defined) const
   65760             : {
   65761           0 :   if (IsArrayIndex(GetArrayIndexFromId(cx, id))) {
   65762           0 :     *defined = true;
   65763           0 :     return opresult.failNoIndexedSetter();
   65764             :   }
   65765           0 :   return mozilla::dom::DOMProxyHandler::defineProperty(cx, proxy, id, desc, opresult, defined);
   65766             : }
   65767             : 
   65768             : 
   65769             : bool
   65770           0 : DOMProxyHandler::ownPropNames(JSContext* cx, JS::Handle<JSObject*> proxy, unsigned flags, JS::AutoIdVector& props) const
   65771             : {
   65772           0 :   bool isXray = xpc::WrapperFactory::IsXrayWrapper(proxy);
   65773             : 
   65774           0 :   uint32_t length = UnwrapProxy(proxy)->Length();
   65775           0 :   MOZ_ASSERT(int32_t(length) >= 0);
   65776           0 :   for (int32_t i = 0; i < int32_t(length); ++i) {
   65777           0 :     if (!props.append(INT_TO_JSID(i))) {
   65778           0 :       return false;
   65779             :     }
   65780             :   }
   65781             : 
   65782           0 :   JS::Rooted<JSObject*> expando(cx);
   65783           0 :   if (!isXray && (expando = DOMProxyHandler::GetExpandoObject(proxy)) &&
   65784           0 :       !js::GetPropertyKeys(cx, expando, flags, &props)) {
   65785           0 :     return false;
   65786             :   }
   65787             : 
   65788           0 :   return true;
   65789             : }
   65790             : 
   65791             : bool
   65792           0 : DOMProxyHandler::hasOwn(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, bool* bp) const
   65793             : {
   65794           0 :   MOZ_ASSERT(!xpc::WrapperFactory::IsXrayWrapper(proxy),
   65795             :             "Should not have a XrayWrapper here");
   65796             : 
   65797           0 :   uint32_t index = GetArrayIndexFromId(cx, id);
   65798           0 :   if (IsArrayIndex(index)) {
   65799           0 :     bool found = false;
   65800           0 :     nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
   65801           0 :     DOMString result;
   65802           0 :     self->IndexedGetter(index, found, result);
   65803           0 :     MOZ_ASSERT(!JS_IsExceptionPending(cx));
   65804             :     (void)result;
   65805             : 
   65806           0 :     *bp = found;
   65807           0 :     return true;
   65808             :   }
   65809             : 
   65810             : 
   65811           0 :   JS::Rooted<JSObject*> expando(cx, GetExpandoObject(proxy));
   65812           0 :   if (expando) {
   65813           0 :     bool b = true;
   65814           0 :     bool ok = JS_HasPropertyById(cx, expando, id, &b);
   65815           0 :     *bp = !!b;
   65816           0 :     if (!ok || *bp) {
   65817           0 :       return ok;
   65818             :     }
   65819             :   }
   65820             : 
   65821           0 :   *bp = false;
   65822           0 :   return true;
   65823             : }
   65824             : 
   65825             : bool
   65826          13 : DOMProxyHandler::get(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<JS::Value> receiver, JS::Handle<jsid> id, JS::MutableHandle<JS::Value> vp) const
   65827             : {
   65828          13 :   MOZ_ASSERT(!xpc::WrapperFactory::IsXrayWrapper(proxy),
   65829             :               "Should not have a XrayWrapper here");
   65830             : 
   65831          13 :   uint32_t index = GetArrayIndexFromId(cx, id);
   65832          13 :   if (IsArrayIndex(index)) {
   65833           0 :     nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
   65834           0 :     bool found = false;
   65835           0 :     DOMString result;
   65836           0 :     self->IndexedGetter(index, found, result);
   65837           0 :     MOZ_ASSERT(!JS_IsExceptionPending(cx));
   65838             : 
   65839           0 :     if (found) {
   65840           0 :       if (!xpc::NonVoidStringToJsval(cx, result, vp)) {
   65841           0 :         return false;
   65842             :       }
   65843           0 :       return true;
   65844             :     }
   65845             :     // Even if we don't have this index, we don't forward the
   65846             :     // get on to our expando object.
   65847             :   } else {
   65848             :     { // Scope for expando
   65849          26 :       JS::Rooted<JSObject*> expando(cx, DOMProxyHandler::GetExpandoObject(proxy));
   65850          13 :       if (expando) {
   65851             :         bool hasProp;
   65852           0 :         if (!JS_HasPropertyById(cx, expando, id, &hasProp)) {
   65853           0 :           return false;
   65854             :         }
   65855             : 
   65856           0 :         if (hasProp) {
   65857             :           // Forward the get to the expando object, but our receiver is whatever our
   65858             :           // receiver is.
   65859           0 :           return JS_ForwardGetPropertyTo(cx, expando, id, receiver, vp);
   65860             :         }
   65861             :       }
   65862             :     }
   65863             :   }
   65864             : 
   65865             :   bool foundOnPrototype;
   65866          13 :   if (!GetPropertyOnPrototype(cx, proxy, receiver, id, &foundOnPrototype, vp)) {
   65867           0 :     return false;
   65868             :   }
   65869             : 
   65870          13 :   if (foundOnPrototype) {
   65871          13 :     return true;
   65872             :   }
   65873             : 
   65874           0 :   vp.setUndefined();
   65875           0 :   return true;
   65876             : }
   65877             : 
   65878             : const char*
   65879           0 : DOMProxyHandler::className(JSContext* cx, JS::Handle<JSObject*> proxy) const
   65880             : {
   65881           0 :   return "CSS2Properties";
   65882             : }
   65883             : 
   65884             : bool
   65885           9 : DOMProxyHandler::finalizeInBackground(const JS::Value& priv) const
   65886             : {
   65887           9 :   return false;
   65888             : }
   65889             : 
   65890             : void
   65891           0 : DOMProxyHandler::finalize(JSFreeOp* fop, JSObject* proxy) const
   65892             : {
   65893           0 :   nsDOMCSSDeclaration* self = UnwrapPossiblyNotInitializedDOMObject<nsDOMCSSDeclaration>(proxy);
   65894           0 :   if (self) {
   65895           0 :     ClearWrapper(self, self, proxy);
   65896           0 :     AddForDeferredFinalization<nsDOMCSSDeclaration>(self);
   65897             :   }
   65898           0 : }
   65899             : 
   65900             : const DOMProxyHandler*
   65901           9 : DOMProxyHandler::getInstance()
   65902             : {
   65903             :   static const DOMProxyHandler instance;
   65904           9 :   return &instance;
   65905             : }
   65906             : 
   65907             : bool
   65908           0 : DOMProxyHandler::delete_(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, JS::ObjectOpResult& opresult) const
   65909             : {
   65910           0 :   MOZ_ASSERT(!xpc::WrapperFactory::IsXrayWrapper(proxy),
   65911             :             "Should not have a XrayWrapper here");
   65912             : 
   65913           0 :   uint32_t index = GetArrayIndexFromId(cx, id);
   65914           0 :   if (IsArrayIndex(index)) {
   65915             :     bool deleteSucceeded;
   65916           0 :     bool found = false;
   65917           0 :     nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
   65918           0 :     DOMString result;
   65919           0 :     self->IndexedGetter(index, found, result);
   65920           0 :     MOZ_ASSERT(!JS_IsExceptionPending(cx));
   65921             :     (void)result;
   65922           0 :     deleteSucceeded = !found;
   65923           0 :     return deleteSucceeded ? opresult.succeed() : opresult.failCantDelete();
   65924             :   }
   65925             : 
   65926           0 :   return dom::DOMProxyHandler::delete_(cx, proxy, id, opresult);
   65927             : }
   65928             : 
   65929             : bool
   65930           0 : DOMProxyHandler::getElements(JSContext* cx, JS::Handle<JSObject*> proxy, uint32_t begin, uint32_t end, js::ElementAdder* adder) const
   65931             : {
   65932           0 :   JS::Rooted<JS::Value> temp(cx);
   65933           0 :   MOZ_ASSERT(!xpc::WrapperFactory::IsXrayWrapper(proxy),
   65934             :              "Should not have a XrayWrapper here");
   65935             : 
   65936           0 :   nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
   65937           0 :   uint32_t length = self->Length();
   65938             :   // Compute the end of the indices we'll get ourselves
   65939           0 :   uint32_t ourEnd = std::max(begin, std::min(end, length));
   65940             : 
   65941           0 :   for (uint32_t index = begin; index < ourEnd; ++index) {
   65942           0 :     bool found = false;
   65943           0 :     DOMString result;
   65944           0 :     self->IndexedGetter(index, found, result);
   65945           0 :     MOZ_ASSERT(!JS_IsExceptionPending(cx));
   65946             : 
   65947           0 :     MOZ_ASSERT(found);
   65948           0 :     if (!xpc::NonVoidStringToJsval(cx, result, &temp)) {
   65949           0 :       return false;
   65950             :     }
   65951           0 :     if (!adder->append(cx, temp)) return false;
   65952           0 :     continue;
   65953             :   }
   65954             : 
   65955           0 :   if (end > ourEnd) {
   65956           0 :     JS::Rooted<JSObject*> proto(cx);
   65957           0 :     if (!js::GetObjectProto(cx, proxy, &proto)) {
   65958           0 :       return false;
   65959             :     }
   65960           0 :     return js::GetElementsWithAdder(cx, proto, proxy, ourEnd, end, adder);
   65961             :   }
   65962             : 
   65963           0 :   return true;
   65964             : }
   65965             : 
   65966             : static const js::ClassExtension sClassExtension = PROXY_MAKE_EXT(
   65967             :     _objectMoved
   65968             : );
   65969             : 
   65970             : static const DOMJSClass sClass = {
   65971             :   PROXY_CLASS_WITH_EXT("CSS2Properties",
   65972             :                        JSCLASS_IS_DOMJSCLASS | JSCLASS_HAS_RESERVED_SLOTS(1),
   65973             :                        &sClassExtension),
   65974             :   { prototypes::id::CSSStyleDeclaration, prototypes::id::CSS2Properties, prototypes::id::_ID_Count, prototypes::id::_ID_Count, prototypes::id::_ID_Count, prototypes::id::_ID_Count, prototypes::id::_ID_Count, prototypes::id::_ID_Count },
   65975             :   IsBaseOf<nsISupports, nsDOMCSSDeclaration >::value,
   65976             :   sNativePropertyHooks,
   65977             :   FindAssociatedGlobalForNative<nsDOMCSSDeclaration>::Get,
   65978             :   GetProtoObjectHandle,
   65979             :   GetCCParticipant<nsDOMCSSDeclaration>::Get()
   65980             : };
   65981             : 
   65982             : bool
   65983           9 : Wrap(JSContext* aCx, nsDOMCSSDeclaration* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
   65984             : {
   65985             :   MOZ_ASSERT(static_cast<nsDOMCSSDeclaration*>(aObject) ==
   65986             :              reinterpret_cast<nsDOMCSSDeclaration*>(aObject),
   65987             :              "Multiple inheritance for nsDOMCSSDeclaration is broken.");
   65988             :   MOZ_ASSERT(static_cast<nsICSSDeclaration*>(aObject) ==
   65989             :              reinterpret_cast<nsICSSDeclaration*>(aObject),
   65990             :              "Multiple inheritance for nsICSSDeclaration is broken.");
   65991           9 :   MOZ_ASSERT(ToSupportsIsCorrect(aObject));
   65992           9 :   MOZ_ASSERT_IF(aGivenProto, js::IsObjectInContextCompartment(aGivenProto, aCx));
   65993           9 :   MOZ_ASSERT(!aCache->GetWrapper(),
   65994             :              "You should probably not be using Wrap() directly; use "
   65995             :              "GetOrCreateDOMReflector instead");
   65996             : 
   65997           9 :   MOZ_ASSERT(ToSupportsIsOnPrimaryInheritanceChain(aObject, aCache),
   65998             :              "nsISupports must be on our primary inheritance chain");
   65999             : 
   66000          18 :   JS::Rooted<JSObject*> global(aCx, FindAssociatedGlobal(aCx, aObject->GetParentObject()));
   66001           9 :   if (!global) {
   66002           0 :     return false;
   66003             :   }
   66004           9 :   MOZ_ASSERT(JS_IsGlobalObject(global));
   66005           9 :   MOZ_ASSERT(JS::ObjectIsNotGray(global));
   66006             : 
   66007             :   // That might have ended up wrapping us already, due to the wonders
   66008             :   // of XBL.  Check for that, and bail out as needed.
   66009           9 :   aReflector.set(aCache->GetWrapper());
   66010           9 :   if (aReflector) {
   66011             : #ifdef DEBUG
   66012           0 :     binding_detail::AssertReflectorHasGivenProto(aCx, aReflector, aGivenProto);
   66013             : #endif // DEBUG
   66014           0 :     return true;
   66015             :   }
   66016             : 
   66017          18 :   JSAutoCompartment ac(aCx, global);
   66018           9 :   JS::Handle<JSObject*> canonicalProto = GetProtoObjectHandle(aCx);
   66019           9 :   if (!canonicalProto) {
   66020           0 :     return false;
   66021             :   }
   66022          18 :   JS::Rooted<JSObject*> proto(aCx);
   66023           9 :   if (aGivenProto) {
   66024           0 :     proto = aGivenProto;
   66025             :     // Unfortunately, while aGivenProto was in the compartment of aCx
   66026             :     // coming in, we changed compartments to that of "parent" so may need
   66027             :     // to wrap the proto here.
   66028           0 :     if (js::GetContextCompartment(aCx) != js::GetObjectCompartment(proto)) {
   66029           0 :       if (!JS_WrapObject(aCx, &proto)) {
   66030           0 :         return false;
   66031             :       }
   66032             :     }
   66033             :   } else {
   66034           9 :     proto = canonicalProto;
   66035             :   }
   66036             : 
   66037          18 :   BindingJSObjectCreator<nsDOMCSSDeclaration> creator(aCx);
   66038          18 :   JS::Rooted<JS::Value> expandoValue(aCx, JS::UndefinedValue());
   66039          18 :   creator.CreateProxyObject(aCx, &sClass.mBase, DOMProxyHandler::getInstance(),
   66040           9 :                             proto, aObject, expandoValue, aReflector);
   66041           9 :   if (!aReflector) {
   66042           0 :     return false;
   66043             :   }
   66044             : 
   66045             : 
   66046           9 :   aCache->SetWrapper(aReflector);
   66047           9 :   creator.InitializationSucceeded();
   66048             : 
   66049           9 :   MOZ_ASSERT(aCache->GetWrapperPreserveColor() &&
   66050             :              aCache->GetWrapperPreserveColor() == aReflector);
   66051             :   // If proto != canonicalProto, we have to preserve our wrapper;
   66052             :   // otherwise we won't be able to properly recreate it later, since
   66053             :   // we won't know what proto to use.  Note that we don't check
   66054             :   // aGivenProto here, since it's entirely possible (and even
   66055             :   // somewhat common) to have a non-null aGivenProto which is the
   66056             :   // same as canonicalProto.
   66057           9 :   if (proto != canonicalProto) {
   66058           0 :     PreserveWrapper(aObject);
   66059             :   }
   66060             : 
   66061           9 :   return true;
   66062             : }
   66063             : 
   66064             : static bool
   66065           0 : ResolveOwnProperty(JSContext* cx, JS::Handle<JSObject*> wrapper, JS::Handle<JSObject*> obj, JS::Handle<jsid> id, JS::MutableHandle<JS::PropertyDescriptor> desc)
   66066             : {
   66067           0 :   return js::GetProxyHandler(obj)->getOwnPropertyDescriptor(cx, wrapper, id, desc);
   66068             : }
   66069             : 
   66070             : static bool
   66071           0 : EnumerateOwnProperties(JSContext* cx, JS::Handle<JSObject*> wrapper, JS::Handle<JSObject*> obj, JS::AutoIdVector& props)
   66072             : {
   66073           0 :   return js::GetProxyHandler(obj)->ownPropertyKeys(cx, wrapper, props);
   66074             : }
   66075             : 
   66076             : const NativePropertyHooks sNativePropertyHooks[] = { {
   66077             :   ResolveOwnProperty,
   66078             :   EnumerateOwnProperties,
   66079             :   nullptr,
   66080             :   { sNativeProperties.Upcast(), nullptr },
   66081             :   prototypes::id::CSS2Properties,
   66082             :   constructors::id::CSS2Properties,
   66083             :   CSSStyleDeclarationBinding::sNativePropertyHooks,
   66084             :   &DefaultXrayExpandoObjectClass
   66085             : } };
   66086             : 
   66087             : void
   66088           1 : CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, bool aDefineOnGlobal)
   66089             : {
   66090           1 :   JS::Handle<JSObject*> parentProto(CSSStyleDeclarationBinding::GetProtoObjectHandle(aCx));
   66091           1 :   if (!parentProto) {
   66092           0 :     return;
   66093             :   }
   66094             : 
   66095           1 :   JS::Handle<JSObject*> constructorProto(CSSStyleDeclarationBinding::GetConstructorObjectHandle(aCx));
   66096           1 :   if (!constructorProto) {
   66097           0 :     return;
   66098             :   }
   66099             : 
   66100             :   static bool sIdsInited = false;
   66101           1 :   if (!sIdsInited && NS_IsMainThread()) {
   66102           1 :     if (!InitIds(aCx, sNativeProperties.Upcast())) {
   66103           0 :       return;
   66104             :     }
   66105           1 :     sIdsInited = true;
   66106             :   }
   66107             : 
   66108             :   static bool sPrefCachesInited = false;
   66109           1 :   if (!sPrefCachesInited && NS_IsMainThread()) {
   66110           1 :     sPrefCachesInited = true;
   66111           1 :     Preferences::AddBoolVarCache(&sAttributes[1].disablers->enabled, "layout.css.all-shorthand.enabled");
   66112           1 :     Preferences::AddBoolVarCache(&sAttributes[3].disablers->enabled, "layout.css.background-blend-mode.enabled");
   66113           1 :     Preferences::AddBoolVarCache(&sAttributes[5].disablers->enabled, "layout.css.box-decoration-break.enabled");
   66114           1 :     Preferences::AddBoolVarCache(&sAttributes[7].disablers->enabled, "layout.css.color-adjust.enabled");
   66115           1 :     Preferences::AddBoolVarCache(&sAttributes[9].disablers->enabled, "layout.css.column-span.enabled");
   66116           1 :     Preferences::AddBoolVarCache(&sAttributes[11].disablers->enabled, "layout.css.contain.enabled");
   66117           1 :     Preferences::AddBoolVarCache(&sAttributes[13].disablers->enabled, "layout.css.font-variations.enabled");
   66118           1 :     Preferences::AddBoolVarCache(&sAttributes[15].disablers->enabled, "layout.css.grid.enabled");
   66119           1 :     Preferences::AddBoolVarCache(&sAttributes[17].disablers->enabled, "layout.css.initial-letter.enabled");
   66120           1 :     Preferences::AddBoolVarCache(&sAttributes[18].disablers->enabled, "layout.css.image-orientation.enabled");
   66121           1 :     Preferences::AddBoolVarCache(&sAttributes[20].disablers->enabled, "layout.css.isolation.enabled");
   66122           1 :     Preferences::AddBoolVarCache(&sAttributes[22].disablers->enabled, "layout.css.mix-blend-mode.enabled");
   66123           1 :     Preferences::AddBoolVarCache(&sAttributes[24].disablers->enabled, "layout.css.osx-font-smoothing.enabled");
   66124           1 :     Preferences::AddBoolVarCache(&sAttributes[26].disablers->enabled, "layout.css.overflow-clip-box.enabled");
   66125           1 :     Preferences::AddBoolVarCache(&sAttributes[28].disablers->enabled, "svg.paint-order.enabled");
   66126           1 :     Preferences::AddBoolVarCache(&sAttributes[30].disablers->enabled, "layout.css.scroll-behavior.property-enabled");
   66127           1 :     Preferences::AddBoolVarCache(&sAttributes[31].disablers->enabled, "layout.css.scroll-snap.enabled");
   66128           1 :     Preferences::AddBoolVarCache(&sAttributes[32].disablers->enabled, "layout.css.shape-outside.enabled");
   66129           1 :     Preferences::AddBoolVarCache(&sAttributes[34].disablers->enabled, "layout.css.text-combine-upright.enabled");
   66130           1 :     Preferences::AddBoolVarCache(&sAttributes[36].disablers->enabled, "layout.css.prefixes.webkit");
   66131           1 :     Preferences::AddBoolVarCache(&sAttributes[38].disablers->enabled, "layout.css.text-justify.enabled");
   66132           1 :     Preferences::AddBoolVarCache(&sAttributes[40].disablers->enabled, "layout.css.prefixes.webkit");
   66133           1 :     Preferences::AddBoolVarCache(&sAttributes[42].disablers->enabled, "layout.css.touch_action.enabled");
   66134           1 :     Preferences::AddBoolVarCache(&sAttributes[44].disablers->enabled, "layout.css.prefixes.transforms");
   66135           1 :     Preferences::AddBoolVarCache(&sAttributes[45].disablers->enabled, "svg.transform-box.enabled");
   66136           1 :     Preferences::AddBoolVarCache(&sAttributes[47].disablers->enabled, "layout.css.prefixes.transforms");
   66137           1 :     Preferences::AddBoolVarCache(&sAttributes[48].disablers->enabled, "layout.css.prefixes.border-image");
   66138           1 :     Preferences::AddBoolVarCache(&sAttributes[49].disablers->enabled, "layout.css.prefixes.transitions");
   66139           1 :     Preferences::AddBoolVarCache(&sAttributes[50].disablers->enabled, "layout.css.prefixes.animations");
   66140           1 :     Preferences::AddBoolVarCache(&sAttributes[51].disablers->enabled, "layout.css.prefixes.box-sizing");
   66141           1 :     Preferences::AddBoolVarCache(&sAttributes[52].disablers->enabled, "layout.css.prefixes.font-features");
   66142           1 :     Preferences::AddBoolVarCache(&sAttributes[54].disablers->enabled, "layout.css.prefixes.webkit");
   66143             :   }
   66144             : 
   66145           1 :   JS::Heap<JSObject*>* protoCache = &aProtoAndIfaceCache.EntrySlotOrCreate(prototypes::id::CSS2Properties);
   66146           1 :   JS::Heap<JSObject*>* interfaceCache = &aProtoAndIfaceCache.EntrySlotOrCreate(constructors::id::CSS2Properties);
   66147           1 :   dom::CreateInterfaceObjects(aCx, aGlobal, parentProto,
   66148             :                               &sPrototypeClass.mBase, protoCache,
   66149             :                               constructorProto, &sInterfaceObjectClass.mBase, 0, nullptr,
   66150             :                               interfaceCache,
   66151             :                               sNativeProperties.Upcast(),
   66152             :                               nullptr,
   66153             :                               "CSS2Properties", aDefineOnGlobal,
   66154             :                               nullptr,
   66155           1 :                               false);
   66156             : }
   66157             : 
   66158             : JS::Handle<JSObject*>
   66159           9 : GetProtoObjectHandle(JSContext* aCx)
   66160             : {
   66161             :   /* Get the interface prototype object for this class.  This will create the
   66162             :      object as needed. */
   66163           9 :   bool aDefineOnGlobal = true;
   66164             : 
   66165             :   /* Make sure our global is sane.  Hopefully we can remove this sometime */
   66166           9 :   JSObject* global = JS::CurrentGlobalOrNull(aCx);
   66167           9 :   if (!(js::GetObjectClass(global)->flags & JSCLASS_DOM_GLOBAL)) {
   66168           0 :     return nullptr;
   66169             :   }
   66170             : 
   66171             :   /* Check to see whether the interface objects are already installed */
   66172           9 :   ProtoAndIfaceCache& protoAndIfaceCache = *GetProtoAndIfaceCache(global);
   66173           9 :   if (!protoAndIfaceCache.HasEntryInSlot(prototypes::id::CSS2Properties)) {
   66174           2 :     JS::Rooted<JSObject*> rootedGlobal(aCx, global);
   66175           1 :     CreateInterfaceObjects(aCx, rootedGlobal, protoAndIfaceCache, aDefineOnGlobal);
   66176             :   }
   66177             : 
   66178             :   /*
   66179             :    * The object might _still_ be null, but that's OK.
   66180             :    *
   66181             :    * Calling fromMarkedLocation() is safe because protoAndIfaceCache is
   66182             :    * traced by TraceProtoAndIfaceCache() and its contents are never
   66183             :    * changed after they have been set.
   66184             :    *
   66185             :    * Calling address() avoids the read read barrier that does gray
   66186             :    * unmarking, but it's not possible for the object to be gray here.
   66187             :    */
   66188             : 
   66189           9 :   const JS::Heap<JSObject*>& entrySlot = protoAndIfaceCache.EntrySlotMustExist(prototypes::id::CSS2Properties);
   66190           9 :   MOZ_ASSERT(JS::ObjectIsNotGray(entrySlot));
   66191           9 :   return JS::Handle<JSObject*>::fromMarkedLocation(entrySlot.address());
   66192             : }
   66193             : 
   66194             : JS::Handle<JSObject*>
   66195           0 : GetConstructorObjectHandle(JSContext* aCx, bool aDefineOnGlobal)
   66196             : {
   66197             :   /* Get the interface object for this class.  This will create the object as
   66198             :      needed. */
   66199             : 
   66200             :   /* Make sure our global is sane.  Hopefully we can remove this sometime */
   66201           0 :   JSObject* global = JS::CurrentGlobalOrNull(aCx);
   66202           0 :   if (!(js::GetObjectClass(global)->flags & JSCLASS_DOM_GLOBAL)) {
   66203           0 :     return nullptr;
   66204             :   }
   66205             : 
   66206             :   /* Check to see whether the interface objects are already installed */
   66207           0 :   ProtoAndIfaceCache& protoAndIfaceCache = *GetProtoAndIfaceCache(global);
   66208           0 :   if (!protoAndIfaceCache.HasEntryInSlot(constructors::id::CSS2Properties)) {
   66209           0 :     JS::Rooted<JSObject*> rootedGlobal(aCx, global);
   66210           0 :     CreateInterfaceObjects(aCx, rootedGlobal, protoAndIfaceCache, aDefineOnGlobal);
   66211             :   }
   66212             : 
   66213             :   /*
   66214             :    * The object might _still_ be null, but that's OK.
   66215             :    *
   66216             :    * Calling fromMarkedLocation() is safe because protoAndIfaceCache is
   66217             :    * traced by TraceProtoAndIfaceCache() and its contents are never
   66218             :    * changed after they have been set.
   66219             :    *
   66220             :    * Calling address() avoids the read read barrier that does gray
   66221             :    * unmarking, but it's not possible for the object to be gray here.
   66222             :    */
   66223             : 
   66224           0 :   const JS::Heap<JSObject*>& entrySlot = protoAndIfaceCache.EntrySlotMustExist(constructors::id::CSS2Properties);
   66225           0 :   MOZ_ASSERT(JS::ObjectIsNotGray(entrySlot));
   66226           0 :   return JS::Handle<JSObject*>::fromMarkedLocation(entrySlot.address());
   66227             : }
   66228             : 
   66229             : JSObject*
   66230           0 : GetConstructorObject(JSContext* aCx)
   66231             : {
   66232           0 :   return GetConstructorObjectHandle(aCx);
   66233             : }
   66234             : 
   66235             : } // namespace CSS2PropertiesBinding
   66236             : 
   66237             : 
   66238             : 
   66239             : } // namespace dom
   66240             : } // namespace mozilla

Generated by: LCOV version 1.13