/* THIS FILE IS AUTOGENERATED FROM CSSStyleProperties.webidl BY Codegen.py - DO NOT EDIT */

#include <type_traits>
#include "CSSStyleDeclarationBinding.h"
#include "CSSStylePropertiesBinding.h"
#include "MainThreadUtils.h"
#include "WrapperFactory.h"
#include "js/CallAndConstruct.h"
#include "js/Exception.h"
#include "js/MapAndSet.h"
#include "js/Object.h"
#include "js/PropertyAndElement.h"
#include "js/PropertyDescriptor.h"
#include "js/experimental/JitInfo.h"
#include "mozilla/Atomics.h"
#include "mozilla/BasePrincipal.h"
#include "mozilla/OwningNonNull.h"
#include "mozilla/ProfilerLabels.h"
#include "mozilla/dom/BindingUtils.h"
#include "mozilla/dom/CustomElementRegistry.h"
#include "mozilla/dom/DOMJSClass.h"
#include "mozilla/dom/DOMJSProxyHandler.h"
#include "mozilla/dom/DocGroup.h"
#include "mozilla/dom/NonRefcountedDOMObject.h"
#include "mozilla/dom/ProxyHandlerUtils.h"
#include "mozilla/dom/WebIDLPrefs.h"
#include "mozilla/dom/XrayExpandoClass.h"
#include "nsCSSProps.h"
#include "nsContentUtils.h"
#include "nsDOMCSSDeclaration.h"
#include "nsJSPrincipals.h"

namespace mozilla::dom {

namespace binding_detail {}; // Just to make sure it's known as a namespace
using namespace mozilla::dom::binding_detail;


namespace CSSStyleProperties_Binding {

static_assert(IsRefcounted<NativeType>::value == IsRefcounted<CSSStyleDeclaration_Binding::NativeType>::value,
              "Can't inherit from an interface with a different ownership model.");

MOZ_CAN_RUN_SCRIPT static bool
GetPropertyValue(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args, NonCustomCSSPropertyId id)
{
  const char* attrName = nsCSSProps::PropertyIDLName(id);
  AUTO_PROFILER_LABEL_DYNAMIC_FAST(
    "CSSStyleProperties", attrName, DOM, cx,
    uint32_t(js::ProfilingStackFrame::Flags::STRING_TEMPLATE_GETTER) |
    uint32_t(js::ProfilingStackFrame::Flags::RELEVANT_FOR_JS));

  auto* self = static_cast<nsDOMCSSDeclaration*>(void_self);
  nsAutoCString result;
  // NOTE: This assert does NOT call the function.
  static_assert(std::is_void_v<decltype(MOZ_KnownLive(self)->GetPropertyValue(id, result))>, "Should be returning void here");
  MOZ_KnownLive(self)->GetPropertyValue(id, result);
  MOZ_ASSERT(!JS_IsExceptionPending(cx));
  if (!NonVoidUTF8StringToJsval(cx, result, args.rval())) {
    return false;
  }
  return true;
}

MOZ_CAN_RUN_SCRIPT static bool
SetPropertyValue(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args, NonCustomCSSPropertyId id)
{
  const char* attrName = nsCSSProps::PropertyIDLName(id);
  AUTO_PROFILER_LABEL_DYNAMIC_FAST(
    "CSSStyleProperties", attrName, DOM, cx,
    uint32_t(js::ProfilingStackFrame::Flags::STRING_TEMPLATE_SETTER) |
    uint32_t(js::ProfilingStackFrame::Flags::RELEVANT_FOR_JS));

  auto* self = static_cast<nsDOMCSSDeclaration*>(void_self);
  binding_detail::FakeString<char> arg0;
  if (!ConvertJSValueToString(cx, args[0], eEmpty, eStringify, arg0)) {
    return false;
  }
  Maybe<AutoCEReaction> ceReaction;
  DocGroup* docGroup = self->GetDocGroup();
  if (docGroup) {
    ceReaction.emplace(docGroup->CustomElementReactionsStack(), cx);
  }
  FastErrorResult rv;
  nsIPrincipal* subjectPrincipal;
  {
    JS::Realm* realm = js::GetContextRealm(cx);
    MOZ_ASSERT(realm);
    JSPrincipals* principals = JS::GetRealmPrincipals(realm);
    nsIPrincipal* principal = nsJSPrincipals::get(principals);
    if (principal->IsSystemPrincipal()) {
    principal = nullptr;
  }

    subjectPrincipal = principal;
  }
  // NOTE: This assert does NOT call the function.
  static_assert(std::is_void_v<decltype(MOZ_KnownLive(self)->SetPropertyValue(id, Constify(arg0), MOZ_KnownLive(subjectPrincipal), rv))>, "Should be returning void here");
  MOZ_KnownLive(self)->SetPropertyValue(id, Constify(arg0), MOZ_KnownLive(subjectPrincipal), rv);
  if (MOZ_UNLIKELY(rv.MaybeSetPendingException(cx, ErrorDescriptionFor<ErrorFor::setter>{ "CSSStyleProperties", attrName }))) {
    return false;
  }
  MOZ_ASSERT(!JS_IsExceptionPending(cx));

  return true;
}

MOZ_CAN_RUN_SCRIPT static bool
get_alignItems(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_align_items);
}

MOZ_CAN_RUN_SCRIPT static bool
set_alignItems(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_align_items);
}

static const JSJitInfo alignItems_getterinfo = {
  { get_alignItems },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo alignItems_setterinfo = {
  { (JSJitGetterOp)set_alignItems },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_aspectRatio(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_aspect_ratio);
}

MOZ_CAN_RUN_SCRIPT static bool
set_aspectRatio(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_aspect_ratio);
}

static const JSJitInfo aspectRatio_getterinfo = {
  { get_aspectRatio },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo aspectRatio_setterinfo = {
  { (JSJitGetterOp)set_aspectRatio },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_backface_visibility);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_backface_visibility);
}

static const JSJitInfo backfaceVisibility_getterinfo = {
  { get_backfaceVisibility },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backfaceVisibility_setterinfo = {
  { (JSJitGetterOp)set_backfaceVisibility },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_baselineSource(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_baseline_source);
}

MOZ_CAN_RUN_SCRIPT static bool
set_baselineSource(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_baseline_source);
}

static const JSJitInfo baselineSource_getterinfo = {
  { get_baselineSource },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo baselineSource_setterinfo = {
  { (JSJitGetterOp)set_baselineSource },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderCollapse(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_collapse);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderCollapse(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_collapse);
}

static const JSJitInfo borderCollapse_getterinfo = {
  { get_borderCollapse },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderCollapse_setterinfo = {
  { (JSJitGetterOp)set_borderCollapse },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderImageRepeat(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image_repeat);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderImageRepeat(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image_repeat);
}

static const JSJitInfo borderImageRepeat_getterinfo = {
  { get_borderImageRepeat },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderImageRepeat_setterinfo = {
  { (JSJitGetterOp)set_borderImageRepeat },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_boxDecorationBreak(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_box_decoration_break);
}

MOZ_CAN_RUN_SCRIPT static bool
set_boxDecorationBreak(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_box_decoration_break);
}

static const JSJitInfo boxDecorationBreak_getterinfo = {
  { get_boxDecorationBreak },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo boxDecorationBreak_setterinfo = {
  { (JSJitGetterOp)set_boxDecorationBreak },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_boxSizing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_box_sizing);
}

MOZ_CAN_RUN_SCRIPT static bool
set_boxSizing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_box_sizing);
}

static const JSJitInfo boxSizing_getterinfo = {
  { get_boxSizing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo boxSizing_setterinfo = {
  { (JSJitGetterOp)set_boxSizing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_breakInside(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_break_inside);
}

MOZ_CAN_RUN_SCRIPT static bool
set_breakInside(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_break_inside);
}

static const JSJitInfo breakInside_getterinfo = {
  { get_breakInside },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo breakInside_setterinfo = {
  { (JSJitGetterOp)set_breakInside },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_captionSide(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_caption_side);
}

MOZ_CAN_RUN_SCRIPT static bool
set_captionSide(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_caption_side);
}

static const JSJitInfo captionSide_getterinfo = {
  { get_captionSide },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo captionSide_setterinfo = {
  { (JSJitGetterOp)set_captionSide },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_clear(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_clear);
}

MOZ_CAN_RUN_SCRIPT static bool
set_clear(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_clear);
}

static const JSJitInfo clear_getterinfo = {
  { get_clear },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo clear_setterinfo = {
  { (JSJitGetterOp)set_clear },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_colorInterpolation(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_color_interpolation);
}

MOZ_CAN_RUN_SCRIPT static bool
set_colorInterpolation(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_color_interpolation);
}

static const JSJitInfo colorInterpolation_getterinfo = {
  { get_colorInterpolation },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo colorInterpolation_setterinfo = {
  { (JSJitGetterOp)set_colorInterpolation },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_colorInterpolationFilters(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_color_interpolation_filters);
}

MOZ_CAN_RUN_SCRIPT static bool
set_colorInterpolationFilters(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_color_interpolation_filters);
}

static const JSJitInfo colorInterpolationFilters_getterinfo = {
  { get_colorInterpolationFilters },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo colorInterpolationFilters_setterinfo = {
  { (JSJitGetterOp)set_colorInterpolationFilters },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_columnCount(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_count);
}

MOZ_CAN_RUN_SCRIPT static bool
set_columnCount(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_count);
}

static const JSJitInfo columnCount_getterinfo = {
  { get_columnCount },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo columnCount_setterinfo = {
  { (JSJitGetterOp)set_columnCount },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_columnFill(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_fill);
}

MOZ_CAN_RUN_SCRIPT static bool
set_columnFill(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_fill);
}

static const JSJitInfo columnFill_getterinfo = {
  { get_columnFill },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo columnFill_setterinfo = {
  { (JSJitGetterOp)set_columnFill },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_columnSpan(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_span);
}

MOZ_CAN_RUN_SCRIPT static bool
set_columnSpan(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_span);
}

static const JSJitInfo columnSpan_getterinfo = {
  { get_columnSpan },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo columnSpan_setterinfo = {
  { (JSJitGetterOp)set_columnSpan },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_contain(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_contain);
}

MOZ_CAN_RUN_SCRIPT static bool
set_contain(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_contain);
}

static const JSJitInfo contain_getterinfo = {
  { get_contain },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo contain_setterinfo = {
  { (JSJitGetterOp)set_contain },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_containerType(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_container_type);
}

MOZ_CAN_RUN_SCRIPT static bool
set_containerType(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_container_type);
}

static const JSJitInfo containerType_getterinfo = {
  { get_containerType },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo containerType_setterinfo = {
  { (JSJitGetterOp)set_containerType },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_contentVisibility(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_content_visibility);
}

MOZ_CAN_RUN_SCRIPT static bool
set_contentVisibility(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_content_visibility);
}

static const JSJitInfo contentVisibility_getterinfo = {
  { get_contentVisibility },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo contentVisibility_setterinfo = {
  { (JSJitGetterOp)set_contentVisibility },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_direction(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_direction);
}

MOZ_CAN_RUN_SCRIPT static bool
set_direction(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_direction);
}

static const JSJitInfo direction_getterinfo = {
  { get_direction },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo direction_setterinfo = {
  { (JSJitGetterOp)set_direction },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_display(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_display);
}

MOZ_CAN_RUN_SCRIPT static bool
set_display(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_display);
}

static const JSJitInfo display_getterinfo = {
  { get_display },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo display_setterinfo = {
  { (JSJitGetterOp)set_display },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_dominantBaseline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_dominant_baseline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_dominantBaseline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_dominant_baseline);
}

static const JSJitInfo dominantBaseline_getterinfo = {
  { get_dominantBaseline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo dominantBaseline_setterinfo = {
  { (JSJitGetterOp)set_dominantBaseline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_emptyCells(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_empty_cells);
}

MOZ_CAN_RUN_SCRIPT static bool
set_emptyCells(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_empty_cells);
}

static const JSJitInfo emptyCells_getterinfo = {
  { get_emptyCells },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo emptyCells_setterinfo = {
  { (JSJitGetterOp)set_emptyCells },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fieldSizing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_field_sizing);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fieldSizing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_field_sizing);
}

static const JSJitInfo fieldSizing_getterinfo = {
  { get_fieldSizing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fieldSizing_setterinfo = {
  { (JSJitGetterOp)set_fieldSizing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_flexDirection(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex_direction);
}

MOZ_CAN_RUN_SCRIPT static bool
set_flexDirection(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex_direction);
}

static const JSJitInfo flexDirection_getterinfo = {
  { get_flexDirection },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo flexDirection_setterinfo = {
  { (JSJitGetterOp)set_flexDirection },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_flexWrap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex_wrap);
}

MOZ_CAN_RUN_SCRIPT static bool
set_flexWrap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex_wrap);
}

static const JSJitInfo flexWrap_getterinfo = {
  { get_flexWrap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo flexWrap_setterinfo = {
  { (JSJitGetterOp)set_flexWrap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_cssFloat(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_float);
}

MOZ_CAN_RUN_SCRIPT static bool
set_cssFloat(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_float);
}

static const JSJitInfo cssFloat_getterinfo = {
  { get_cssFloat },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo cssFloat_setterinfo = {
  { (JSJitGetterOp)set_cssFloat },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontKerning(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_kerning);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontKerning(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_kerning);
}

static const JSJitInfo fontKerning_getterinfo = {
  { get_fontKerning },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontKerning_setterinfo = {
  { (JSJitGetterOp)set_fontKerning },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontLanguageOverride(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_language_override);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontLanguageOverride(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_language_override);
}

static const JSJitInfo fontLanguageOverride_getterinfo = {
  { get_fontLanguageOverride },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontLanguageOverride_setterinfo = {
  { (JSJitGetterOp)set_fontLanguageOverride },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontOpticalSizing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_optical_sizing);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontOpticalSizing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_optical_sizing);
}

static const JSJitInfo fontOpticalSizing_getterinfo = {
  { get_fontOpticalSizing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontOpticalSizing_setterinfo = {
  { (JSJitGetterOp)set_fontOpticalSizing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_size_adjust);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_size_adjust);
}

static const JSJitInfo fontSizeAdjust_getterinfo = {
  { get_fontSizeAdjust },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontSizeAdjust_setterinfo = {
  { (JSJitGetterOp)set_fontSizeAdjust },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontStretch(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_stretch);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontStretch(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_stretch);
}

static const JSJitInfo fontStretch_getterinfo = {
  { get_fontStretch },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontStretch_setterinfo = {
  { (JSJitGetterOp)set_fontStretch },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_style);
}

static const JSJitInfo fontStyle_getterinfo = {
  { get_fontStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontStyle_setterinfo = {
  { (JSJitGetterOp)set_fontStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontSynthesisStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_synthesis_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontSynthesisStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_synthesis_style);
}

static const JSJitInfo fontSynthesisStyle_getterinfo = {
  { get_fontSynthesisStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontSynthesisStyle_setterinfo = {
  { (JSJitGetterOp)set_fontSynthesisStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontVariantCaps(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_caps);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontVariantCaps(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_caps);
}

static const JSJitInfo fontVariantCaps_getterinfo = {
  { get_fontVariantCaps },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontVariantCaps_setterinfo = {
  { (JSJitGetterOp)set_fontVariantCaps },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontVariantEastAsian(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_east_asian);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontVariantEastAsian(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_east_asian);
}

static const JSJitInfo fontVariantEastAsian_getterinfo = {
  { get_fontVariantEastAsian },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontVariantEastAsian_setterinfo = {
  { (JSJitGetterOp)set_fontVariantEastAsian },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontVariantEmoji(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_emoji);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontVariantEmoji(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_emoji);
}

static const JSJitInfo fontVariantEmoji_getterinfo = {
  { get_fontVariantEmoji },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontVariantEmoji_setterinfo = {
  { (JSJitGetterOp)set_fontVariantEmoji },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontVariantLigatures(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_ligatures);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontVariantLigatures(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_ligatures);
}

static const JSJitInfo fontVariantLigatures_getterinfo = {
  { get_fontVariantLigatures },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontVariantLigatures_setterinfo = {
  { (JSJitGetterOp)set_fontVariantLigatures },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontVariantNumeric(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_numeric);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontVariantNumeric(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_numeric);
}

static const JSJitInfo fontVariantNumeric_getterinfo = {
  { get_fontVariantNumeric },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontVariantNumeric_setterinfo = {
  { (JSJitGetterOp)set_fontVariantNumeric },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontVariantPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_position);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontVariantPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_position);
}

static const JSJitInfo fontVariantPosition_getterinfo = {
  { get_fontVariantPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontVariantPosition_setterinfo = {
  { (JSJitGetterOp)set_fontVariantPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontWeight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_weight);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontWeight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_weight);
}

static const JSJitInfo fontWeight_getterinfo = {
  { get_fontWeight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontWeight_setterinfo = {
  { (JSJitGetterOp)set_fontWeight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_forcedColorAdjust(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_forced_color_adjust);
}

MOZ_CAN_RUN_SCRIPT static bool
set_forcedColorAdjust(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_forced_color_adjust);
}

static const JSJitInfo forcedColorAdjust_getterinfo = {
  { get_forcedColorAdjust },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo forcedColorAdjust_setterinfo = {
  { (JSJitGetterOp)set_forcedColorAdjust },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridAutoFlow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_auto_flow);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridAutoFlow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_auto_flow);
}

static const JSJitInfo gridAutoFlow_getterinfo = {
  { get_gridAutoFlow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridAutoFlow_setterinfo = {
  { (JSJitGetterOp)set_gridAutoFlow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_hyphens(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_hyphens);
}

MOZ_CAN_RUN_SCRIPT static bool
set_hyphens(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_hyphens);
}

static const JSJitInfo hyphens_getterinfo = {
  { get_hyphens },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo hyphens_setterinfo = {
  { (JSJitGetterOp)set_hyphens },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_imageOrientation(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_image_orientation);
}

MOZ_CAN_RUN_SCRIPT static bool
set_imageOrientation(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_image_orientation);
}

static const JSJitInfo imageOrientation_getterinfo = {
  { get_imageOrientation },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo imageOrientation_setterinfo = {
  { (JSJitGetterOp)set_imageOrientation },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_imageRendering(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_image_rendering);
}

MOZ_CAN_RUN_SCRIPT static bool
set_imageRendering(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_image_rendering);
}

static const JSJitInfo imageRendering_getterinfo = {
  { get_imageRendering },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo imageRendering_setterinfo = {
  { (JSJitGetterOp)set_imageRendering },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_imeMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_ime_mode);
}

MOZ_CAN_RUN_SCRIPT static bool
set_imeMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_ime_mode);
}

static const JSJitInfo imeMode_getterinfo = {
  { get_imeMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo imeMode_setterinfo = {
  { (JSJitGetterOp)set_imeMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_initialLetter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_initial_letter);
}

MOZ_CAN_RUN_SCRIPT static bool
set_initialLetter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_initial_letter);
}

static const JSJitInfo initialLetter_getterinfo = {
  { get_initialLetter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo initialLetter_setterinfo = {
  { (JSJitGetterOp)set_initialLetter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_isolation(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_isolation);
}

MOZ_CAN_RUN_SCRIPT static bool
set_isolation(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_isolation);
}

static const JSJitInfo isolation_getterinfo = {
  { get_isolation },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo isolation_setterinfo = {
  { (JSJitGetterOp)set_isolation },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_justifyItems(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_justify_items);
}

MOZ_CAN_RUN_SCRIPT static bool
set_justifyItems(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_justify_items);
}

static const JSJitInfo justifyItems_getterinfo = {
  { get_justifyItems },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo justifyItems_setterinfo = {
  { (JSJitGetterOp)set_justifyItems },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_lineBreak(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_line_break);
}

MOZ_CAN_RUN_SCRIPT static bool
set_lineBreak(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_line_break);
}

static const JSJitInfo lineBreak_getterinfo = {
  { get_lineBreak },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo lineBreak_setterinfo = {
  { (JSJitGetterOp)set_lineBreak },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_listStylePosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_list_style_position);
}

MOZ_CAN_RUN_SCRIPT static bool
set_listStylePosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_list_style_position);
}

static const JSJitInfo listStylePosition_getterinfo = {
  { get_listStylePosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo listStylePosition_setterinfo = {
  { (JSJitGetterOp)set_listStylePosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maskType(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_type);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maskType(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_type);
}

static const JSJitInfo maskType_getterinfo = {
  { get_maskType },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maskType_setterinfo = {
  { (JSJitGetterOp)set_maskType },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_masonryAutoFlow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_masonry_auto_flow);
}

MOZ_CAN_RUN_SCRIPT static bool
set_masonryAutoFlow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_masonry_auto_flow);
}

static const JSJitInfo masonryAutoFlow_getterinfo = {
  { get_masonryAutoFlow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo masonryAutoFlow_setterinfo = {
  { (JSJitGetterOp)set_masonryAutoFlow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_mathDepth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_math_depth);
}

MOZ_CAN_RUN_SCRIPT static bool
set_mathDepth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_math_depth);
}

static const JSJitInfo mathDepth_getterinfo = {
  { get_mathDepth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo mathDepth_setterinfo = {
  { (JSJitGetterOp)set_mathDepth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_mathShift(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_math_shift);
}

MOZ_CAN_RUN_SCRIPT static bool
set_mathShift(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_math_shift);
}

static const JSJitInfo mathShift_getterinfo = {
  { get_mathShift },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo mathShift_setterinfo = {
  { (JSJitGetterOp)set_mathShift },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_mathStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_math_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_mathStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_math_style);
}

static const JSJitInfo mathStyle_getterinfo = {
  { get_mathStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo mathStyle_setterinfo = {
  { (JSJitGetterOp)set_mathStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_mixBlendMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mix_blend_mode);
}

MOZ_CAN_RUN_SCRIPT static bool
set_mixBlendMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mix_blend_mode);
}

static const JSJitInfo mixBlendMode_getterinfo = {
  { get_mixBlendMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo mixBlendMode_setterinfo = {
  { (JSJitGetterOp)set_mixBlendMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozBoxAlign(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_align);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozBoxAlign(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_align);
}

static const JSJitInfo MozBoxAlign_getterinfo = {
  { get_MozBoxAlign },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozBoxAlign_setterinfo = {
  { (JSJitGetterOp)set_MozBoxAlign },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozBoxCollapse(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_collapse);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozBoxCollapse(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_collapse);
}

static const JSJitInfo MozBoxCollapse_getterinfo = {
  { get_MozBoxCollapse },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozBoxCollapse_setterinfo = {
  { (JSJitGetterOp)set_MozBoxCollapse },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozBoxDirection(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_direction);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozBoxDirection(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_direction);
}

static const JSJitInfo MozBoxDirection_getterinfo = {
  { get_MozBoxDirection },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozBoxDirection_setterinfo = {
  { (JSJitGetterOp)set_MozBoxDirection },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozBoxOrient(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_orient);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozBoxOrient(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_orient);
}

static const JSJitInfo MozBoxOrient_getterinfo = {
  { get_MozBoxOrient },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozBoxOrient_setterinfo = {
  { (JSJitGetterOp)set_MozBoxOrient },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozBoxPack(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_pack);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozBoxPack(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_pack);
}

static const JSJitInfo MozBoxPack_getterinfo = {
  { get_MozBoxPack },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozBoxPack_setterinfo = {
  { (JSJitGetterOp)set_MozBoxPack },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozControlCharacterVisibility(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_control_character_visibility);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozControlCharacterVisibility(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_control_character_visibility);
}

static const JSJitInfo MozControlCharacterVisibility_getterinfo = {
  { get_MozControlCharacterVisibility },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozControlCharacterVisibility_setterinfo = {
  { (JSJitGetterOp)set_MozControlCharacterVisibility },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozFloatEdge(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_float_edge);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozFloatEdge(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_float_edge);
}

static const JSJitInfo MozFloatEdge_getterinfo = {
  { get_MozFloatEdge },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozFloatEdge_setterinfo = {
  { (JSJitGetterOp)set_MozFloatEdge },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozOrient(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_orient);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozOrient(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_orient);
}

static const JSJitInfo MozOrient_getterinfo = {
  { get_MozOrient },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozOrient_setterinfo = {
  { (JSJitGetterOp)set_MozOrient },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozOsxFontSmoothing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_osx_font_smoothing);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozOsxFontSmoothing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_osx_font_smoothing);
}

static const JSJitInfo MozOsxFontSmoothing_getterinfo = {
  { get_MozOsxFontSmoothing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozOsxFontSmoothing_setterinfo = {
  { (JSJitGetterOp)set_MozOsxFontSmoothing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozTextSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_text_size_adjust);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozTextSizeAdjust(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_text_size_adjust);
}

static const JSJitInfo MozTextSizeAdjust_getterinfo = {
  { get_MozTextSizeAdjust },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozTextSizeAdjust_setterinfo = {
  { (JSJitGetterOp)set_MozTextSizeAdjust },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozTheme(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_theme);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozTheme(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_theme);
}

static const JSJitInfo MozTheme_getterinfo = {
  { get_MozTheme },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozTheme_setterinfo = {
  { (JSJitGetterOp)set_MozTheme },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozUserFocus(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_user_focus);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozUserFocus(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_user_focus);
}

static const JSJitInfo MozUserFocus_getterinfo = {
  { get_MozUserFocus },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozUserFocus_setterinfo = {
  { (JSJitGetterOp)set_MozUserFocus },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozWindowDragging(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_window_dragging);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozWindowDragging(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_window_dragging);
}

static const JSJitInfo MozWindowDragging_getterinfo = {
  { get_MozWindowDragging },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozWindowDragging_setterinfo = {
  { (JSJitGetterOp)set_MozWindowDragging },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozWindowShadow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_window_shadow);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozWindowShadow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_window_shadow);
}

static const JSJitInfo MozWindowShadow_getterinfo = {
  { get_MozWindowShadow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozWindowShadow_setterinfo = {
  { (JSJitGetterOp)set_MozWindowShadow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_objectFit(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_object_fit);
}

MOZ_CAN_RUN_SCRIPT static bool
set_objectFit(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_object_fit);
}

static const JSJitInfo objectFit_getterinfo = {
  { get_objectFit },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo objectFit_setterinfo = {
  { (JSJitGetterOp)set_objectFit },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_offsetRotate(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_offset_rotate);
}

MOZ_CAN_RUN_SCRIPT static bool
set_offsetRotate(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_offset_rotate);
}

static const JSJitInfo offsetRotate_getterinfo = {
  { get_offsetRotate },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo offsetRotate_setterinfo = {
  { (JSJitGetterOp)set_offsetRotate },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_outlineStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_outline_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_outlineStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_outline_style);
}

static const JSJitInfo outlineStyle_getterinfo = {
  { get_outlineStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo outlineStyle_setterinfo = {
  { (JSJitGetterOp)set_outlineStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overflowAnchor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_anchor);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overflowAnchor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_anchor);
}

static const JSJitInfo overflowAnchor_getterinfo = {
  { get_overflowAnchor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overflowAnchor_setterinfo = {
  { (JSJitGetterOp)set_overflowAnchor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overflowWrap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_wrap);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overflowWrap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_wrap);
}

static const JSJitInfo overflowWrap_getterinfo = {
  { get_overflowWrap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overflowWrap_setterinfo = {
  { (JSJitGetterOp)set_overflowWrap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_paintOrder(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_paint_order);
}

MOZ_CAN_RUN_SCRIPT static bool
set_paintOrder(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_paint_order);
}

static const JSJitInfo paintOrder_getterinfo = {
  { get_paintOrder },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo paintOrder_setterinfo = {
  { (JSJitGetterOp)set_paintOrder },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_pointerEvents(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_pointer_events);
}

MOZ_CAN_RUN_SCRIPT static bool
set_pointerEvents(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_pointer_events);
}

static const JSJitInfo pointerEvents_getterinfo = {
  { get_pointerEvents },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo pointerEvents_setterinfo = {
  { (JSJitGetterOp)set_pointerEvents },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_position(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_position);
}

MOZ_CAN_RUN_SCRIPT static bool
set_position(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_position);
}

static const JSJitInfo position_getterinfo = {
  { get_position },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo position_setterinfo = {
  { (JSJitGetterOp)set_position },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_positionArea(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_position_area);
}

MOZ_CAN_RUN_SCRIPT static bool
set_positionArea(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_position_area);
}

static const JSJitInfo positionArea_getterinfo = {
  { get_positionArea },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo positionArea_setterinfo = {
  { (JSJitGetterOp)set_positionArea },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_positionTryOrder(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_position_try_order);
}

MOZ_CAN_RUN_SCRIPT static bool
set_positionTryOrder(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_position_try_order);
}

static const JSJitInfo positionTryOrder_getterinfo = {
  { get_positionTryOrder },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo positionTryOrder_setterinfo = {
  { (JSJitGetterOp)set_positionTryOrder },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_positionVisibility(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_position_visibility);
}

MOZ_CAN_RUN_SCRIPT static bool
set_positionVisibility(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_position_visibility);
}

static const JSJitInfo positionVisibility_getterinfo = {
  { get_positionVisibility },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo positionVisibility_setterinfo = {
  { (JSJitGetterOp)set_positionVisibility },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_printColorAdjust(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_print_color_adjust);
}

MOZ_CAN_RUN_SCRIPT static bool
set_printColorAdjust(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_print_color_adjust);
}

static const JSJitInfo printColorAdjust_getterinfo = {
  { get_printColorAdjust },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo printColorAdjust_setterinfo = {
  { (JSJitGetterOp)set_printColorAdjust },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_resize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_resize);
}

MOZ_CAN_RUN_SCRIPT static bool
set_resize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_resize);
}

static const JSJitInfo resize_getterinfo = {
  { get_resize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo resize_setterinfo = {
  { (JSJitGetterOp)set_resize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_rubyAlign(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_ruby_align);
}

MOZ_CAN_RUN_SCRIPT static bool
set_rubyAlign(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_ruby_align);
}

static const JSJitInfo rubyAlign_getterinfo = {
  { get_rubyAlign },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo rubyAlign_setterinfo = {
  { (JSJitGetterOp)set_rubyAlign },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_rubyPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_ruby_position);
}

MOZ_CAN_RUN_SCRIPT static bool
set_rubyPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_ruby_position);
}

static const JSJitInfo rubyPosition_getterinfo = {
  { get_rubyPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo rubyPosition_setterinfo = {
  { (JSJitGetterOp)set_rubyPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollBehavior(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_behavior);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollBehavior(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_behavior);
}

static const JSJitInfo scrollBehavior_getterinfo = {
  { get_scrollBehavior },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollBehavior_setterinfo = {
  { (JSJitGetterOp)set_scrollBehavior },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollSnapAlign(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_snap_align);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollSnapAlign(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_snap_align);
}

static const JSJitInfo scrollSnapAlign_getterinfo = {
  { get_scrollSnapAlign },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollSnapAlign_setterinfo = {
  { (JSJitGetterOp)set_scrollSnapAlign },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollSnapStop(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_snap_stop);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollSnapStop(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_snap_stop);
}

static const JSJitInfo scrollSnapStop_getterinfo = {
  { get_scrollSnapStop },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollSnapStop_setterinfo = {
  { (JSJitGetterOp)set_scrollSnapStop },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollSnapType(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_snap_type);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollSnapType(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_snap_type);
}

static const JSJitInfo scrollSnapType_getterinfo = {
  { get_scrollSnapType },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollSnapType_setterinfo = {
  { (JSJitGetterOp)set_scrollSnapType },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollbarGutter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scrollbar_gutter);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollbarGutter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scrollbar_gutter);
}

static const JSJitInfo scrollbarGutter_getterinfo = {
  { get_scrollbarGutter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollbarGutter_setterinfo = {
  { (JSJitGetterOp)set_scrollbarGutter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollbarWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scrollbar_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollbarWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scrollbar_width);
}

static const JSJitInfo scrollbarWidth_getterinfo = {
  { get_scrollbarWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollbarWidth_setterinfo = {
  { (JSJitGetterOp)set_scrollbarWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_shapeRendering(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_shape_rendering);
}

MOZ_CAN_RUN_SCRIPT static bool
set_shapeRendering(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_shape_rendering);
}

static const JSJitInfo shapeRendering_getterinfo = {
  { get_shapeRendering },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo shapeRendering_setterinfo = {
  { (JSJitGetterOp)set_shapeRendering },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_strokeLinecap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_linecap);
}

MOZ_CAN_RUN_SCRIPT static bool
set_strokeLinecap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_linecap);
}

static const JSJitInfo strokeLinecap_getterinfo = {
  { get_strokeLinecap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo strokeLinecap_setterinfo = {
  { (JSJitGetterOp)set_strokeLinecap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_strokeLinejoin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_linejoin);
}

MOZ_CAN_RUN_SCRIPT static bool
set_strokeLinejoin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_linejoin);
}

static const JSJitInfo strokeLinejoin_getterinfo = {
  { get_strokeLinejoin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo strokeLinejoin_setterinfo = {
  { (JSJitGetterOp)set_strokeLinejoin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_tableLayout(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_table_layout);
}

MOZ_CAN_RUN_SCRIPT static bool
set_tableLayout(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_table_layout);
}

static const JSJitInfo tableLayout_getterinfo = {
  { get_tableLayout },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo tableLayout_setterinfo = {
  { (JSJitGetterOp)set_tableLayout },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textAlign(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_align);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textAlign(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_align);
}

static const JSJitInfo textAlign_getterinfo = {
  { get_textAlign },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textAlign_setterinfo = {
  { (JSJitGetterOp)set_textAlign },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textAlignLast(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_align_last);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textAlignLast(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_align_last);
}

static const JSJitInfo textAlignLast_getterinfo = {
  { get_textAlignLast },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textAlignLast_setterinfo = {
  { (JSJitGetterOp)set_textAlignLast },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textAnchor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_anchor);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textAnchor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_anchor);
}

static const JSJitInfo textAnchor_getterinfo = {
  { get_textAnchor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textAnchor_setterinfo = {
  { (JSJitGetterOp)set_textAnchor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textAutospace(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_autospace);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textAutospace(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_autospace);
}

static const JSJitInfo textAutospace_getterinfo = {
  { get_textAutospace },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textAutospace_setterinfo = {
  { (JSJitGetterOp)set_textAutospace },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textCombineUpright(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_combine_upright);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textCombineUpright(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_combine_upright);
}

static const JSJitInfo textCombineUpright_getterinfo = {
  { get_textCombineUpright },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textCombineUpright_setterinfo = {
  { (JSJitGetterOp)set_textCombineUpright },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textDecorationLine(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration_line);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textDecorationLine(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration_line);
}

static const JSJitInfo textDecorationLine_getterinfo = {
  { get_textDecorationLine },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textDecorationLine_setterinfo = {
  { (JSJitGetterOp)set_textDecorationLine },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textDecorationSkipInk(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration_skip_ink);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textDecorationSkipInk(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration_skip_ink);
}

static const JSJitInfo textDecorationSkipInk_getterinfo = {
  { get_textDecorationSkipInk },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textDecorationSkipInk_setterinfo = {
  { (JSJitGetterOp)set_textDecorationSkipInk },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textDecorationStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textDecorationStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration_style);
}

static const JSJitInfo textDecorationStyle_getterinfo = {
  { get_textDecorationStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textDecorationStyle_setterinfo = {
  { (JSJitGetterOp)set_textDecorationStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textEmphasisPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_emphasis_position);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textEmphasisPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_emphasis_position);
}

static const JSJitInfo textEmphasisPosition_getterinfo = {
  { get_textEmphasisPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textEmphasisPosition_setterinfo = {
  { (JSJitGetterOp)set_textEmphasisPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textJustify(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_justify);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textJustify(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_justify);
}

static const JSJitInfo textJustify_getterinfo = {
  { get_textJustify },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textJustify_setterinfo = {
  { (JSJitGetterOp)set_textJustify },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textOrientation(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_orientation);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textOrientation(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_orientation);
}

static const JSJitInfo textOrientation_getterinfo = {
  { get_textOrientation },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textOrientation_setterinfo = {
  { (JSJitGetterOp)set_textOrientation },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textRendering(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_rendering);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textRendering(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_rendering);
}

static const JSJitInfo textRendering_getterinfo = {
  { get_textRendering },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textRendering_setterinfo = {
  { (JSJitGetterOp)set_textRendering },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textTransform(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_transform);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textTransform(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_transform);
}

static const JSJitInfo textTransform_getterinfo = {
  { get_textTransform },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textTransform_setterinfo = {
  { (JSJitGetterOp)set_textTransform },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textUnderlinePosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_underline_position);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textUnderlinePosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_underline_position);
}

static const JSJitInfo textUnderlinePosition_getterinfo = {
  { get_textUnderlinePosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textUnderlinePosition_setterinfo = {
  { (JSJitGetterOp)set_textUnderlinePosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textWrapMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_wrap_mode);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textWrapMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_wrap_mode);
}

static const JSJitInfo textWrapMode_getterinfo = {
  { get_textWrapMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textWrapMode_setterinfo = {
  { (JSJitGetterOp)set_textWrapMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textWrapStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_wrap_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textWrapStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_wrap_style);
}

static const JSJitInfo textWrapStyle_getterinfo = {
  { get_textWrapStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textWrapStyle_setterinfo = {
  { (JSJitGetterOp)set_textWrapStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_touchAction(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_touch_action);
}

MOZ_CAN_RUN_SCRIPT static bool
set_touchAction(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_touch_action);
}

static const JSJitInfo touchAction_getterinfo = {
  { get_touchAction },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo touchAction_setterinfo = {
  { (JSJitGetterOp)set_touchAction },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_transformBox(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform_box);
}

MOZ_CAN_RUN_SCRIPT static bool
set_transformBox(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform_box);
}

static const JSJitInfo transformBox_getterinfo = {
  { get_transformBox },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo transformBox_setterinfo = {
  { (JSJitGetterOp)set_transformBox },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_transformStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_transformStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform_style);
}

static const JSJitInfo transformStyle_getterinfo = {
  { get_transformStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo transformStyle_setterinfo = {
  { (JSJitGetterOp)set_transformStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_unicodeBidi(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_unicode_bidi);
}

MOZ_CAN_RUN_SCRIPT static bool
set_unicodeBidi(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_unicode_bidi);
}

static const JSJitInfo unicodeBidi_getterinfo = {
  { get_unicodeBidi },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo unicodeBidi_setterinfo = {
  { (JSJitGetterOp)set_unicodeBidi },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_userSelect(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_user_select);
}

MOZ_CAN_RUN_SCRIPT static bool
set_userSelect(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_user_select);
}

static const JSJitInfo userSelect_getterinfo = {
  { get_userSelect },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo userSelect_setterinfo = {
  { (JSJitGetterOp)set_userSelect },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_vectorEffect(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_vector_effect);
}

MOZ_CAN_RUN_SCRIPT static bool
set_vectorEffect(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_vector_effect);
}

static const JSJitInfo vectorEffect_getterinfo = {
  { get_vectorEffect },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo vectorEffect_setterinfo = {
  { (JSJitGetterOp)set_vectorEffect },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_visibility(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_visibility);
}

MOZ_CAN_RUN_SCRIPT static bool
set_visibility(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_visibility);
}

static const JSJitInfo visibility_getterinfo = {
  { get_visibility },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo visibility_setterinfo = {
  { (JSJitGetterOp)set_visibility },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_webkitLineClamp(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_line_clamp);
}

MOZ_CAN_RUN_SCRIPT static bool
set_webkitLineClamp(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_line_clamp);
}

static const JSJitInfo webkitLineClamp_getterinfo = {
  { get_webkitLineClamp },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo webkitLineClamp_setterinfo = {
  { (JSJitGetterOp)set_webkitLineClamp },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_webkitTextSecurity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_text_security);
}

MOZ_CAN_RUN_SCRIPT static bool
set_webkitTextSecurity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_text_security);
}

static const JSJitInfo webkitTextSecurity_getterinfo = {
  { get_webkitTextSecurity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo webkitTextSecurity_setterinfo = {
  { (JSJitGetterOp)set_webkitTextSecurity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_whiteSpaceCollapse(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_white_space_collapse);
}

MOZ_CAN_RUN_SCRIPT static bool
set_whiteSpaceCollapse(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_white_space_collapse);
}

static const JSJitInfo whiteSpaceCollapse_getterinfo = {
  { get_whiteSpaceCollapse },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo whiteSpaceCollapse_setterinfo = {
  { (JSJitGetterOp)set_whiteSpaceCollapse },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_wordBreak(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_word_break);
}

MOZ_CAN_RUN_SCRIPT static bool
set_wordBreak(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_word_break);
}

static const JSJitInfo wordBreak_getterinfo = {
  { get_wordBreak },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo wordBreak_setterinfo = {
  { (JSJitGetterOp)set_wordBreak },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_writingMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_writing_mode);
}

MOZ_CAN_RUN_SCRIPT static bool
set_writingMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_writing_mode);
}

static const JSJitInfo writingMode_getterinfo = {
  { get_writingMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo writingMode_setterinfo = {
  { (JSJitGetterOp)set_writingMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_zIndex(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_z_index);
}

MOZ_CAN_RUN_SCRIPT static bool
set_zIndex(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_z_index);
}

static const JSJitInfo zIndex_getterinfo = {
  { get_zIndex },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo zIndex_setterinfo = {
  { (JSJitGetterOp)set_zIndex },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_zoom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_zoom);
}

MOZ_CAN_RUN_SCRIPT static bool
set_zoom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_zoom);
}

static const JSJitInfo zoom_getterinfo = {
  { get_zoom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo zoom_setterinfo = {
  { (JSJitGetterOp)set_zoom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_appearance(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_appearance);
}

MOZ_CAN_RUN_SCRIPT static bool
set_appearance(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_appearance);
}

static const JSJitInfo appearance_getterinfo = {
  { get_appearance },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo appearance_setterinfo = {
  { (JSJitGetterOp)set_appearance },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozDefaultAppearance(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_default_appearance);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozDefaultAppearance(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_default_appearance);
}

static const JSJitInfo MozDefaultAppearance_getterinfo = {
  { get_MozDefaultAppearance },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozDefaultAppearance_setterinfo = {
  { (JSJitGetterOp)set_MozDefaultAppearance },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozForceBrokenImageIcon(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_force_broken_image_icon);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozForceBrokenImageIcon(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_force_broken_image_icon);
}

static const JSJitInfo MozForceBrokenImageIcon_getterinfo = {
  { get_MozForceBrokenImageIcon },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozForceBrokenImageIcon_setterinfo = {
  { (JSJitGetterOp)set_MozForceBrokenImageIcon },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozSubtreeHiddenOnlyVisually(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_subtree_hidden_only_visually);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozSubtreeHiddenOnlyVisually(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_subtree_hidden_only_visually);
}

static const JSJitInfo MozSubtreeHiddenOnlyVisually_getterinfo = {
  { get_MozSubtreeHiddenOnlyVisually },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozSubtreeHiddenOnlyVisually_setterinfo = {
  { (JSJitGetterOp)set_MozSubtreeHiddenOnlyVisually },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_breakAfter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_break_after);
}

MOZ_CAN_RUN_SCRIPT static bool
set_breakAfter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_break_after);
}

static const JSJitInfo breakAfter_getterinfo = {
  { get_breakAfter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo breakAfter_setterinfo = {
  { (JSJitGetterOp)set_breakAfter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_breakBefore(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_break_before);
}

MOZ_CAN_RUN_SCRIPT static bool
set_breakBefore(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_break_before);
}

static const JSJitInfo breakBefore_getterinfo = {
  { get_breakBefore },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo breakBefore_setterinfo = {
  { (JSJitGetterOp)set_breakBefore },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_alignContent(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_align_content);
}

MOZ_CAN_RUN_SCRIPT static bool
set_alignContent(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_align_content);
}

static const JSJitInfo alignContent_getterinfo = {
  { get_alignContent },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo alignContent_setterinfo = {
  { (JSJitGetterOp)set_alignContent },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_justifyContent(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_justify_content);
}

MOZ_CAN_RUN_SCRIPT static bool
set_justifyContent(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_justify_content);
}

static const JSJitInfo justifyContent_getterinfo = {
  { get_justifyContent },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo justifyContent_setterinfo = {
  { (JSJitGetterOp)set_justifyContent },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_clipRule(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_clip_rule);
}

MOZ_CAN_RUN_SCRIPT static bool
set_clipRule(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_clip_rule);
}

static const JSJitInfo clipRule_getterinfo = {
  { get_clipRule },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo clipRule_setterinfo = {
  { (JSJitGetterOp)set_clipRule },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fillRule(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_fill_rule);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fillRule(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_fill_rule);
}

static const JSJitInfo fillRule_getterinfo = {
  { get_fillRule },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fillRule_setterinfo = {
  { (JSJitGetterOp)set_fillRule },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fillOpacity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_fill_opacity);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fillOpacity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_fill_opacity);
}

static const JSJitInfo fillOpacity_getterinfo = {
  { get_fillOpacity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fillOpacity_setterinfo = {
  { (JSJitGetterOp)set_fillOpacity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_strokeOpacity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_opacity);
}

MOZ_CAN_RUN_SCRIPT static bool
set_strokeOpacity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_opacity);
}

static const JSJitInfo strokeOpacity_getterinfo = {
  { get_strokeOpacity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo strokeOpacity_setterinfo = {
  { (JSJitGetterOp)set_strokeOpacity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_alignSelf(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_align_self);
}

MOZ_CAN_RUN_SCRIPT static bool
set_alignSelf(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_align_self);
}

static const JSJitInfo alignSelf_getterinfo = {
  { get_alignSelf },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo alignSelf_setterinfo = {
  { (JSJitGetterOp)set_alignSelf },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_justifySelf(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_justify_self);
}

MOZ_CAN_RUN_SCRIPT static bool
set_justifySelf(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_justify_self);
}

static const JSJitInfo justifySelf_getterinfo = {
  { get_justifySelf },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo justifySelf_setterinfo = {
  { (JSJitGetterOp)set_justifySelf },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontSynthesisPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_synthesis_position);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontSynthesisPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_synthesis_position);
}

static const JSJitInfo fontSynthesisPosition_getterinfo = {
  { get_fontSynthesisPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontSynthesisPosition_setterinfo = {
  { (JSJitGetterOp)set_fontSynthesisPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontSynthesisSmallCaps(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_synthesis_small_caps);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontSynthesisSmallCaps(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_synthesis_small_caps);
}

static const JSJitInfo fontSynthesisSmallCaps_getterinfo = {
  { get_fontSynthesisSmallCaps },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontSynthesisSmallCaps_setterinfo = {
  { (JSJitGetterOp)set_fontSynthesisSmallCaps },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontSynthesisWeight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_synthesis_weight);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontSynthesisWeight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_synthesis_weight);
}

static const JSJitInfo fontSynthesisWeight_getterinfo = {
  { get_fontSynthesisWeight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontSynthesisWeight_setterinfo = {
  { (JSJitGetterOp)set_fontSynthesisWeight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozBoxOrdinalGroup(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_ordinal_group);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozBoxOrdinalGroup(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_ordinal_group);
}

static const JSJitInfo MozBoxOrdinalGroup_getterinfo = {
  { get_MozBoxOrdinalGroup },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozBoxOrdinalGroup_setterinfo = {
  { (JSJitGetterOp)set_MozBoxOrdinalGroup },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_order(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_order);
}

MOZ_CAN_RUN_SCRIPT static bool
set_order(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_order);
}

static const JSJitInfo order_getterinfo = {
  { get_order },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo order_setterinfo = {
  { (JSJitGetterOp)set_order },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_flexGrow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex_grow);
}

MOZ_CAN_RUN_SCRIPT static bool
set_flexGrow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex_grow);
}

static const JSJitInfo flexGrow_getterinfo = {
  { get_flexGrow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo flexGrow_setterinfo = {
  { (JSJitGetterOp)set_flexGrow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_flexShrink(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex_shrink);
}

MOZ_CAN_RUN_SCRIPT static bool
set_flexShrink(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex_shrink);
}

static const JSJitInfo flexShrink_getterinfo = {
  { get_flexShrink },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo flexShrink_setterinfo = {
  { (JSJitGetterOp)set_flexShrink },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozBoxFlex(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_flex);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozBoxFlex(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_box_flex);
}

static const JSJitInfo MozBoxFlex_getterinfo = {
  { get_MozBoxFlex },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozBoxFlex_setterinfo = {
  { (JSJitGetterOp)set_MozBoxFlex },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_strokeMiterlimit(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_miterlimit);
}

MOZ_CAN_RUN_SCRIPT static bool
set_strokeMiterlimit(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_miterlimit);
}

static const JSJitInfo strokeMiterlimit_getterinfo = {
  { get_strokeMiterlimit },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo strokeMiterlimit_setterinfo = {
  { (JSJitGetterOp)set_strokeMiterlimit },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overflowBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_block);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overflowBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_block);
}

static const JSJitInfo overflowBlock_getterinfo = {
  { get_overflowBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overflowBlock_setterinfo = {
  { (JSJitGetterOp)set_overflowBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overflowInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_inline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overflowInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_inline);
}

static const JSJitInfo overflowInline_getterinfo = {
  { get_overflowInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overflowInline_setterinfo = {
  { (JSJitGetterOp)set_overflowInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overflowX(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_x);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overflowX(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_x);
}

static const JSJitInfo overflowX_getterinfo = {
  { get_overflowX },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overflowX_setterinfo = {
  { (JSJitGetterOp)set_overflowX },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overflowY(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_y);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overflowY(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_y);
}

static const JSJitInfo overflowY_getterinfo = {
  { get_overflowY },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overflowY_setterinfo = {
  { (JSJitGetterOp)set_overflowY },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overscrollBehaviorBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overscroll_behavior_block);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overscrollBehaviorBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overscroll_behavior_block);
}

static const JSJitInfo overscrollBehaviorBlock_getterinfo = {
  { get_overscrollBehaviorBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overscrollBehaviorBlock_setterinfo = {
  { (JSJitGetterOp)set_overscrollBehaviorBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overscrollBehaviorInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overscroll_behavior_inline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overscrollBehaviorInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overscroll_behavior_inline);
}

static const JSJitInfo overscrollBehaviorInline_getterinfo = {
  { get_overscrollBehaviorInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overscrollBehaviorInline_setterinfo = {
  { (JSJitGetterOp)set_overscrollBehaviorInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overscrollBehaviorX(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overscroll_behavior_x);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overscrollBehaviorX(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overscroll_behavior_x);
}

static const JSJitInfo overscrollBehaviorX_getterinfo = {
  { get_overscrollBehaviorX },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overscrollBehaviorX_setterinfo = {
  { (JSJitGetterOp)set_overscrollBehaviorX },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overscrollBehaviorY(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overscroll_behavior_y);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overscrollBehaviorY(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overscroll_behavior_y);
}

static const JSJitInfo overscrollBehaviorY_getterinfo = {
  { get_overscrollBehaviorY },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overscrollBehaviorY_setterinfo = {
  { (JSJitGetterOp)set_overscrollBehaviorY },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_floodOpacity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_flood_opacity);
}

MOZ_CAN_RUN_SCRIPT static bool
set_floodOpacity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_flood_opacity);
}

static const JSJitInfo floodOpacity_getterinfo = {
  { get_floodOpacity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo floodOpacity_setterinfo = {
  { (JSJitGetterOp)set_floodOpacity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozWindowOpacity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_window_opacity);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozWindowOpacity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_window_opacity);
}

static const JSJitInfo MozWindowOpacity_getterinfo = {
  { get_MozWindowOpacity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozWindowOpacity_setterinfo = {
  { (JSJitGetterOp)set_MozWindowOpacity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_opacity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_opacity);
}

MOZ_CAN_RUN_SCRIPT static bool
set_opacity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_opacity);
}

static const JSJitInfo opacity_getterinfo = {
  { get_opacity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo opacity_setterinfo = {
  { (JSJitGetterOp)set_opacity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_shapeImageThreshold(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_shape_image_threshold);
}

MOZ_CAN_RUN_SCRIPT static bool
set_shapeImageThreshold(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_shape_image_threshold);
}

static const JSJitInfo shapeImageThreshold_getterinfo = {
  { get_shapeImageThreshold },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo shapeImageThreshold_setterinfo = {
  { (JSJitGetterOp)set_shapeImageThreshold },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_stopOpacity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_stop_opacity);
}

MOZ_CAN_RUN_SCRIPT static bool
set_stopOpacity(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_stop_opacity);
}

static const JSJitInfo stopOpacity_getterinfo = {
  { get_stopOpacity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo stopOpacity_setterinfo = {
  { (JSJitGetterOp)set_stopOpacity },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBlockEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_end_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBlockEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_end_style);
}

static const JSJitInfo borderBlockEndStyle_getterinfo = {
  { get_borderBlockEndStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBlockEndStyle_setterinfo = {
  { (JSJitGetterOp)set_borderBlockEndStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBlockStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_start_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBlockStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_start_style);
}

static const JSJitInfo borderBlockStartStyle_getterinfo = {
  { get_borderBlockStartStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBlockStartStyle_setterinfo = {
  { (JSJitGetterOp)set_borderBlockStartStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBottomStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_bottom_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBottomStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_bottom_style);
}

static const JSJitInfo borderBottomStyle_getterinfo = {
  { get_borderBottomStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBottomStyle_setterinfo = {
  { (JSJitGetterOp)set_borderBottomStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderInlineEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_end_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderInlineEndStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_end_style);
}

static const JSJitInfo borderInlineEndStyle_getterinfo = {
  { get_borderInlineEndStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderInlineEndStyle_setterinfo = {
  { (JSJitGetterOp)set_borderInlineEndStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderInlineStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_start_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderInlineStartStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_start_style);
}

static const JSJitInfo borderInlineStartStyle_getterinfo = {
  { get_borderInlineStartStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderInlineStartStyle_setterinfo = {
  { (JSJitGetterOp)set_borderInlineStartStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderLeftStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_left_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderLeftStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_left_style);
}

static const JSJitInfo borderLeftStyle_getterinfo = {
  { get_borderLeftStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderLeftStyle_setterinfo = {
  { (JSJitGetterOp)set_borderLeftStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderRightStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_right_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderRightStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_right_style);
}

static const JSJitInfo borderRightStyle_getterinfo = {
  { get_borderRightStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderRightStyle_setterinfo = {
  { (JSJitGetterOp)set_borderRightStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderTopStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_top_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderTopStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_top_style);
}

static const JSJitInfo borderTopStyle_getterinfo = {
  { get_borderTopStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderTopStyle_setterinfo = {
  { (JSJitGetterOp)set_borderTopStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_columnRuleStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_rule_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_columnRuleStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_rule_style);
}

static const JSJitInfo columnRuleStyle_getterinfo = {
  { get_columnRuleStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo columnRuleStyle_setterinfo = {
  { (JSJitGetterOp)set_columnRuleStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_accentColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_accent_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_accentColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_accent_color);
}

static const JSJitInfo accentColor_getterinfo = {
  { get_accentColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo accentColor_setterinfo = {
  { (JSJitGetterOp)set_accentColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_anchorName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_anchor_name);
}

MOZ_CAN_RUN_SCRIPT static bool
set_anchorName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_anchor_name);
}

static const JSJitInfo anchorName_getterinfo = {
  { get_anchorName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo anchorName_setterinfo = {
  { (JSJitGetterOp)set_anchorName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_anchorScope(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_anchor_scope);
}

MOZ_CAN_RUN_SCRIPT static bool
set_anchorScope(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_anchor_scope);
}

static const JSJitInfo anchorScope_getterinfo = {
  { get_anchorScope },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo anchorScope_setterinfo = {
  { (JSJitGetterOp)set_anchorScope },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_animationComposition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_composition);
}

MOZ_CAN_RUN_SCRIPT static bool
set_animationComposition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_composition);
}

static const JSJitInfo animationComposition_getterinfo = {
  { get_animationComposition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo animationComposition_setterinfo = {
  { (JSJitGetterOp)set_animationComposition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_animationDelay(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_delay);
}

MOZ_CAN_RUN_SCRIPT static bool
set_animationDelay(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_delay);
}

static const JSJitInfo animationDelay_getterinfo = {
  { get_animationDelay },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo animationDelay_setterinfo = {
  { (JSJitGetterOp)set_animationDelay },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_animationDirection(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_direction);
}

MOZ_CAN_RUN_SCRIPT static bool
set_animationDirection(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_direction);
}

static const JSJitInfo animationDirection_getterinfo = {
  { get_animationDirection },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo animationDirection_setterinfo = {
  { (JSJitGetterOp)set_animationDirection },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_animationDuration(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_duration);
}

MOZ_CAN_RUN_SCRIPT static bool
set_animationDuration(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_duration);
}

static const JSJitInfo animationDuration_getterinfo = {
  { get_animationDuration },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo animationDuration_setterinfo = {
  { (JSJitGetterOp)set_animationDuration },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_animationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_fill_mode);
}

MOZ_CAN_RUN_SCRIPT static bool
set_animationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_fill_mode);
}

static const JSJitInfo animationFillMode_getterinfo = {
  { get_animationFillMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo animationFillMode_setterinfo = {
  { (JSJitGetterOp)set_animationFillMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_animationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_iteration_count);
}

MOZ_CAN_RUN_SCRIPT static bool
set_animationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_iteration_count);
}

static const JSJitInfo animationIterationCount_getterinfo = {
  { get_animationIterationCount },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo animationIterationCount_setterinfo = {
  { (JSJitGetterOp)set_animationIterationCount },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_animationName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_name);
}

MOZ_CAN_RUN_SCRIPT static bool
set_animationName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_name);
}

static const JSJitInfo animationName_getterinfo = {
  { get_animationName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo animationName_setterinfo = {
  { (JSJitGetterOp)set_animationName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_animationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_play_state);
}

MOZ_CAN_RUN_SCRIPT static bool
set_animationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_play_state);
}

static const JSJitInfo animationPlayState_getterinfo = {
  { get_animationPlayState },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo animationPlayState_setterinfo = {
  { (JSJitGetterOp)set_animationPlayState },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_animationTimeline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_timeline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_animationTimeline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_timeline);
}

static const JSJitInfo animationTimeline_getterinfo = {
  { get_animationTimeline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo animationTimeline_setterinfo = {
  { (JSJitGetterOp)set_animationTimeline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_animationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_timing_function);
}

MOZ_CAN_RUN_SCRIPT static bool
set_animationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_timing_function);
}

static const JSJitInfo animationTimingFunction_getterinfo = {
  { get_animationTimingFunction },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo animationTimingFunction_setterinfo = {
  { (JSJitGetterOp)set_animationTimingFunction },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backdropFilter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_backdrop_filter);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backdropFilter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_backdrop_filter);
}

static const JSJitInfo backdropFilter_getterinfo = {
  { get_backdropFilter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backdropFilter_setterinfo = {
  { (JSJitGetterOp)set_backdropFilter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backgroundAttachment(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_attachment);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backgroundAttachment(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_attachment);
}

static const JSJitInfo backgroundAttachment_getterinfo = {
  { get_backgroundAttachment },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backgroundAttachment_setterinfo = {
  { (JSJitGetterOp)set_backgroundAttachment },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backgroundBlendMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_blend_mode);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backgroundBlendMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_blend_mode);
}

static const JSJitInfo backgroundBlendMode_getterinfo = {
  { get_backgroundBlendMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backgroundBlendMode_setterinfo = {
  { (JSJitGetterOp)set_backgroundBlendMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backgroundClip(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_clip);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backgroundClip(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_clip);
}

static const JSJitInfo backgroundClip_getterinfo = {
  { get_backgroundClip },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backgroundClip_setterinfo = {
  { (JSJitGetterOp)set_backgroundClip },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backgroundImage(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_image);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backgroundImage(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_image);
}

static const JSJitInfo backgroundImage_getterinfo = {
  { get_backgroundImage },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backgroundImage_setterinfo = {
  { (JSJitGetterOp)set_backgroundImage },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backgroundOrigin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_origin);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backgroundOrigin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_origin);
}

static const JSJitInfo backgroundOrigin_getterinfo = {
  { get_backgroundOrigin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backgroundOrigin_setterinfo = {
  { (JSJitGetterOp)set_backgroundOrigin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backgroundPositionX(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_position_x);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backgroundPositionX(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_position_x);
}

static const JSJitInfo backgroundPositionX_getterinfo = {
  { get_backgroundPositionX },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backgroundPositionX_setterinfo = {
  { (JSJitGetterOp)set_backgroundPositionX },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backgroundPositionY(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_position_y);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backgroundPositionY(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_position_y);
}

static const JSJitInfo backgroundPositionY_getterinfo = {
  { get_backgroundPositionY },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backgroundPositionY_setterinfo = {
  { (JSJitGetterOp)set_backgroundPositionY },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backgroundRepeat(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_repeat);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backgroundRepeat(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_repeat);
}

static const JSJitInfo backgroundRepeat_getterinfo = {
  { get_backgroundRepeat },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backgroundRepeat_setterinfo = {
  { (JSJitGetterOp)set_backgroundRepeat },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backgroundSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backgroundSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_size);
}

static const JSJitInfo backgroundSize_getterinfo = {
  { get_backgroundSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backgroundSize_setterinfo = {
  { (JSJitGetterOp)set_backgroundSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderImageOutset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image_outset);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderImageOutset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image_outset);
}

static const JSJitInfo borderImageOutset_getterinfo = {
  { get_borderImageOutset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderImageOutset_setterinfo = {
  { (JSJitGetterOp)set_borderImageOutset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderImageSlice(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image_slice);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderImageSlice(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image_slice);
}

static const JSJitInfo borderImageSlice_getterinfo = {
  { get_borderImageSlice },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderImageSlice_setterinfo = {
  { (JSJitGetterOp)set_borderImageSlice },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderImageWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderImageWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image_width);
}

static const JSJitInfo borderImageWidth_getterinfo = {
  { get_borderImageWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderImageWidth_setterinfo = {
  { (JSJitGetterOp)set_borderImageWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderSpacing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_spacing);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderSpacing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_spacing);
}

static const JSJitInfo borderSpacing_getterinfo = {
  { get_borderSpacing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderSpacing_setterinfo = {
  { (JSJitGetterOp)set_borderSpacing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_boxShadow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_box_shadow);
}

MOZ_CAN_RUN_SCRIPT static bool
set_boxShadow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_box_shadow);
}

static const JSJitInfo boxShadow_getterinfo = {
  { get_boxShadow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo boxShadow_setterinfo = {
  { (JSJitGetterOp)set_boxShadow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_caretColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_caret_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_caretColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_caret_color);
}

static const JSJitInfo caretColor_getterinfo = {
  { get_caretColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo caretColor_setterinfo = {
  { (JSJitGetterOp)set_caretColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_clip(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_clip);
}

MOZ_CAN_RUN_SCRIPT static bool
set_clip(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_clip);
}

static const JSJitInfo clip_getterinfo = {
  { get_clip },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo clip_setterinfo = {
  { (JSJitGetterOp)set_clip },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_clipPath(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_clip_path);
}

MOZ_CAN_RUN_SCRIPT static bool
set_clipPath(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_clip_path);
}

static const JSJitInfo clipPath_getterinfo = {
  { get_clipPath },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo clipPath_setterinfo = {
  { (JSJitGetterOp)set_clipPath },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_color(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_color(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_color);
}

static const JSJitInfo color_getterinfo = {
  { get_color },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo color_setterinfo = {
  { (JSJitGetterOp)set_color },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_colorScheme(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_color_scheme);
}

MOZ_CAN_RUN_SCRIPT static bool
set_colorScheme(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_color_scheme);
}

static const JSJitInfo colorScheme_getterinfo = {
  { get_colorScheme },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo colorScheme_setterinfo = {
  { (JSJitGetterOp)set_colorScheme },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_columnWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_columnWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_width);
}

static const JSJitInfo columnWidth_getterinfo = {
  { get_columnWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo columnWidth_setterinfo = {
  { (JSJitGetterOp)set_columnWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_containerName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_container_name);
}

MOZ_CAN_RUN_SCRIPT static bool
set_containerName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_container_name);
}

static const JSJitInfo containerName_getterinfo = {
  { get_containerName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo containerName_setterinfo = {
  { (JSJitGetterOp)set_containerName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_content(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_content);
}

MOZ_CAN_RUN_SCRIPT static bool
set_content(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_content);
}

static const JSJitInfo content_getterinfo = {
  { get_content },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo content_setterinfo = {
  { (JSJitGetterOp)set_content },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_counterIncrement(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_counter_increment);
}

MOZ_CAN_RUN_SCRIPT static bool
set_counterIncrement(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_counter_increment);
}

static const JSJitInfo counterIncrement_getterinfo = {
  { get_counterIncrement },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo counterIncrement_setterinfo = {
  { (JSJitGetterOp)set_counterIncrement },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_counterReset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_counter_reset);
}

MOZ_CAN_RUN_SCRIPT static bool
set_counterReset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_counter_reset);
}

static const JSJitInfo counterReset_getterinfo = {
  { get_counterReset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo counterReset_setterinfo = {
  { (JSJitGetterOp)set_counterReset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_counterSet(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_counter_set);
}

MOZ_CAN_RUN_SCRIPT static bool
set_counterSet(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_counter_set);
}

static const JSJitInfo counterSet_getterinfo = {
  { get_counterSet },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo counterSet_setterinfo = {
  { (JSJitGetterOp)set_counterSet },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_cursor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_cursor);
}

MOZ_CAN_RUN_SCRIPT static bool
set_cursor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_cursor);
}

static const JSJitInfo cursor_getterinfo = {
  { get_cursor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo cursor_setterinfo = {
  { (JSJitGetterOp)set_cursor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_d(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_d);
}

MOZ_CAN_RUN_SCRIPT static bool
set_d(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_d);
}

static const JSJitInfo d_getterinfo = {
  { get_d },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo d_setterinfo = {
  { (JSJitGetterOp)set_d },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_filter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_filter);
}

MOZ_CAN_RUN_SCRIPT static bool
set_filter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_filter);
}

static const JSJitInfo filter_getterinfo = {
  { get_filter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo filter_setterinfo = {
  { (JSJitGetterOp)set_filter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_flexBasis(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex_basis);
}

MOZ_CAN_RUN_SCRIPT static bool
set_flexBasis(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex_basis);
}

static const JSJitInfo flexBasis_getterinfo = {
  { get_flexBasis },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo flexBasis_setterinfo = {
  { (JSJitGetterOp)set_flexBasis },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontFamily(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_family);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontFamily(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_family);
}

static const JSJitInfo fontFamily_getterinfo = {
  { get_fontFamily },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontFamily_setterinfo = {
  { (JSJitGetterOp)set_fontFamily },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontFeatureSettings(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_feature_settings);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontFeatureSettings(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_feature_settings);
}

static const JSJitInfo fontFeatureSettings_getterinfo = {
  { get_fontFeatureSettings },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontFeatureSettings_setterinfo = {
  { (JSJitGetterOp)set_fontFeatureSettings },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontPalette(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_palette);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontPalette(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_palette);
}

static const JSJitInfo fontPalette_getterinfo = {
  { get_fontPalette },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontPalette_setterinfo = {
  { (JSJitGetterOp)set_fontPalette },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_size);
}

static const JSJitInfo fontSize_getterinfo = {
  { get_fontSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontSize_setterinfo = {
  { (JSJitGetterOp)set_fontSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontVariantAlternates(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_alternates);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontVariantAlternates(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant_alternates);
}

static const JSJitInfo fontVariantAlternates_getterinfo = {
  { get_fontVariantAlternates },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontVariantAlternates_setterinfo = {
  { (JSJitGetterOp)set_fontVariantAlternates },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontVariationSettings(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variation_settings);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontVariationSettings(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variation_settings);
}

static const JSJitInfo fontVariationSettings_getterinfo = {
  { get_fontVariationSettings },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontVariationSettings_setterinfo = {
  { (JSJitGetterOp)set_fontVariationSettings },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridTemplateAreas(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_template_areas);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridTemplateAreas(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_template_areas);
}

static const JSJitInfo gridTemplateAreas_getterinfo = {
  { get_gridTemplateAreas },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridTemplateAreas_setterinfo = {
  { (JSJitGetterOp)set_gridTemplateAreas },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_hyphenateCharacter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_hyphenate_character);
}

MOZ_CAN_RUN_SCRIPT static bool
set_hyphenateCharacter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_hyphenate_character);
}

static const JSJitInfo hyphenateCharacter_getterinfo = {
  { get_hyphenateCharacter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo hyphenateCharacter_setterinfo = {
  { (JSJitGetterOp)set_hyphenateCharacter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_hyphenateLimitChars(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_hyphenate_limit_chars);
}

MOZ_CAN_RUN_SCRIPT static bool
set_hyphenateLimitChars(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_hyphenate_limit_chars);
}

static const JSJitInfo hyphenateLimitChars_getterinfo = {
  { get_hyphenateLimitChars },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo hyphenateLimitChars_setterinfo = {
  { (JSJitGetterOp)set_hyphenateLimitChars },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_letterSpacing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_letter_spacing);
}

MOZ_CAN_RUN_SCRIPT static bool
set_letterSpacing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_letter_spacing);
}

static const JSJitInfo letterSpacing_getterinfo = {
  { get_letterSpacing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo letterSpacing_setterinfo = {
  { (JSJitGetterOp)set_letterSpacing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_lineHeight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_line_height);
}

MOZ_CAN_RUN_SCRIPT static bool
set_lineHeight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_line_height);
}

static const JSJitInfo lineHeight_getterinfo = {
  { get_lineHeight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo lineHeight_setterinfo = {
  { (JSJitGetterOp)set_lineHeight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_listStyleType(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_list_style_type);
}

MOZ_CAN_RUN_SCRIPT static bool
set_listStyleType(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_list_style_type);
}

static const JSJitInfo listStyleType_getterinfo = {
  { get_listStyleType },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo listStyleType_setterinfo = {
  { (JSJitGetterOp)set_listStyleType },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maskClip(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_clip);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maskClip(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_clip);
}

static const JSJitInfo maskClip_getterinfo = {
  { get_maskClip },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maskClip_setterinfo = {
  { (JSJitGetterOp)set_maskClip },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maskComposite(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_composite);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maskComposite(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_composite);
}

static const JSJitInfo maskComposite_getterinfo = {
  { get_maskComposite },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maskComposite_setterinfo = {
  { (JSJitGetterOp)set_maskComposite },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maskImage(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_image);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maskImage(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_image);
}

static const JSJitInfo maskImage_getterinfo = {
  { get_maskImage },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maskImage_setterinfo = {
  { (JSJitGetterOp)set_maskImage },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maskMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_mode);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maskMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_mode);
}

static const JSJitInfo maskMode_getterinfo = {
  { get_maskMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maskMode_setterinfo = {
  { (JSJitGetterOp)set_maskMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maskOrigin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_origin);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maskOrigin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_origin);
}

static const JSJitInfo maskOrigin_getterinfo = {
  { get_maskOrigin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maskOrigin_setterinfo = {
  { (JSJitGetterOp)set_maskOrigin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maskPositionX(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_position_x);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maskPositionX(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_position_x);
}

static const JSJitInfo maskPositionX_getterinfo = {
  { get_maskPositionX },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maskPositionX_setterinfo = {
  { (JSJitGetterOp)set_maskPositionX },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maskPositionY(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_position_y);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maskPositionY(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_position_y);
}

static const JSJitInfo maskPositionY_getterinfo = {
  { get_maskPositionY },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maskPositionY_setterinfo = {
  { (JSJitGetterOp)set_maskPositionY },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maskRepeat(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_repeat);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maskRepeat(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_repeat);
}

static const JSJitInfo maskRepeat_getterinfo = {
  { get_maskRepeat },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maskRepeat_setterinfo = {
  { (JSJitGetterOp)set_maskRepeat },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maskSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maskSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_size);
}

static const JSJitInfo maskSize_getterinfo = {
  { get_maskSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maskSize_setterinfo = {
  { (JSJitGetterOp)set_maskSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozContextProperties(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_context_properties);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozContextProperties(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_context_properties);
}

static const JSJitInfo MozContextProperties_getterinfo = {
  { get_MozContextProperties },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozContextProperties_setterinfo = {
  { (JSJitGetterOp)set_MozContextProperties },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_offsetAnchor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_offset_anchor);
}

MOZ_CAN_RUN_SCRIPT static bool
set_offsetAnchor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_offset_anchor);
}

static const JSJitInfo offsetAnchor_getterinfo = {
  { get_offsetAnchor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo offsetAnchor_setterinfo = {
  { (JSJitGetterOp)set_offsetAnchor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_offsetPath(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_offset_path);
}

MOZ_CAN_RUN_SCRIPT static bool
set_offsetPath(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_offset_path);
}

static const JSJitInfo offsetPath_getterinfo = {
  { get_offsetPath },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo offsetPath_setterinfo = {
  { (JSJitGetterOp)set_offsetPath },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_offsetPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_offset_position);
}

MOZ_CAN_RUN_SCRIPT static bool
set_offsetPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_offset_position);
}

static const JSJitInfo offsetPosition_getterinfo = {
  { get_offsetPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo offsetPosition_setterinfo = {
  { (JSJitGetterOp)set_offsetPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_outlineOffset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_outline_offset);
}

MOZ_CAN_RUN_SCRIPT static bool
set_outlineOffset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_outline_offset);
}

static const JSJitInfo outlineOffset_getterinfo = {
  { get_outlineOffset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo outlineOffset_setterinfo = {
  { (JSJitGetterOp)set_outlineOffset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_page(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_page);
}

MOZ_CAN_RUN_SCRIPT static bool
set_page(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_page);
}

static const JSJitInfo page_getterinfo = {
  { get_page },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo page_setterinfo = {
  { (JSJitGetterOp)set_page },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_perspective(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_perspective);
}

MOZ_CAN_RUN_SCRIPT static bool
set_perspective(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_perspective);
}

static const JSJitInfo perspective_getterinfo = {
  { get_perspective },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo perspective_setterinfo = {
  { (JSJitGetterOp)set_perspective },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_positionAnchor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_position_anchor);
}

MOZ_CAN_RUN_SCRIPT static bool
set_positionAnchor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_position_anchor);
}

static const JSJitInfo positionAnchor_getterinfo = {
  { get_positionAnchor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo positionAnchor_setterinfo = {
  { (JSJitGetterOp)set_positionAnchor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_positionTryFallbacks(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_position_try_fallbacks);
}

MOZ_CAN_RUN_SCRIPT static bool
set_positionTryFallbacks(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_position_try_fallbacks);
}

static const JSJitInfo positionTryFallbacks_getterinfo = {
  { get_positionTryFallbacks },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo positionTryFallbacks_setterinfo = {
  { (JSJitGetterOp)set_positionTryFallbacks },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_quotes(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_quotes);
}

MOZ_CAN_RUN_SCRIPT static bool
set_quotes(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_quotes);
}

static const JSJitInfo quotes_getterinfo = {
  { get_quotes },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo quotes_setterinfo = {
  { (JSJitGetterOp)set_quotes },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_rotate(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_rotate);
}

MOZ_CAN_RUN_SCRIPT static bool
set_rotate(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_rotate);
}

static const JSJitInfo rotate_getterinfo = {
  { get_rotate },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo rotate_setterinfo = {
  { (JSJitGetterOp)set_rotate },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scale(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scale);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scale(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scale);
}

static const JSJitInfo scale_getterinfo = {
  { get_scale },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scale_setterinfo = {
  { (JSJitGetterOp)set_scale },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollTimelineAxis(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_timeline_axis);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollTimelineAxis(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_timeline_axis);
}

static const JSJitInfo scrollTimelineAxis_getterinfo = {
  { get_scrollTimelineAxis },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollTimelineAxis_setterinfo = {
  { (JSJitGetterOp)set_scrollTimelineAxis },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollTimelineName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_timeline_name);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollTimelineName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_timeline_name);
}

static const JSJitInfo scrollTimelineName_getterinfo = {
  { get_scrollTimelineName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollTimelineName_setterinfo = {
  { (JSJitGetterOp)set_scrollTimelineName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollbarColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scrollbar_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollbarColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scrollbar_color);
}

static const JSJitInfo scrollbarColor_getterinfo = {
  { get_scrollbarColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollbarColor_setterinfo = {
  { (JSJitGetterOp)set_scrollbarColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_shapeOutside(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_shape_outside);
}

MOZ_CAN_RUN_SCRIPT static bool
set_shapeOutside(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_shape_outside);
}

static const JSJitInfo shapeOutside_getterinfo = {
  { get_shapeOutside },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo shapeOutside_setterinfo = {
  { (JSJitGetterOp)set_shapeOutside },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_strokeDasharray(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_dasharray);
}

MOZ_CAN_RUN_SCRIPT static bool
set_strokeDasharray(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_dasharray);
}

static const JSJitInfo strokeDasharray_getterinfo = {
  { get_strokeDasharray },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo strokeDasharray_setterinfo = {
  { (JSJitGetterOp)set_strokeDasharray },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_strokeDashoffset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_dashoffset);
}

MOZ_CAN_RUN_SCRIPT static bool
set_strokeDashoffset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_dashoffset);
}

static const JSJitInfo strokeDashoffset_getterinfo = {
  { get_strokeDashoffset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo strokeDashoffset_setterinfo = {
  { (JSJitGetterOp)set_strokeDashoffset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_strokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_strokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke_width);
}

static const JSJitInfo strokeWidth_getterinfo = {
  { get_strokeWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo strokeWidth_setterinfo = {
  { (JSJitGetterOp)set_strokeWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_tabSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_tab_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_tabSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_tab_size);
}

static const JSJitInfo tabSize_getterinfo = {
  { get_tabSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo tabSize_setterinfo = {
  { (JSJitGetterOp)set_tabSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textDecorationInset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration_inset);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textDecorationInset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration_inset);
}

static const JSJitInfo textDecorationInset_getterinfo = {
  { get_textDecorationInset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textDecorationInset_setterinfo = {
  { (JSJitGetterOp)set_textDecorationInset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textDecorationThickness(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration_thickness);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textDecorationThickness(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration_thickness);
}

static const JSJitInfo textDecorationThickness_getterinfo = {
  { get_textDecorationThickness },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textDecorationThickness_setterinfo = {
  { (JSJitGetterOp)set_textDecorationThickness },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textEmphasisStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_emphasis_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textEmphasisStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_emphasis_style);
}

static const JSJitInfo textEmphasisStyle_getterinfo = {
  { get_textEmphasisStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textEmphasisStyle_setterinfo = {
  { (JSJitGetterOp)set_textEmphasisStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textIndent(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_indent);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textIndent(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_indent);
}

static const JSJitInfo textIndent_getterinfo = {
  { get_textIndent },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textIndent_setterinfo = {
  { (JSJitGetterOp)set_textIndent },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textOverflow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_overflow);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textOverflow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_overflow);
}

static const JSJitInfo textOverflow_getterinfo = {
  { get_textOverflow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textOverflow_setterinfo = {
  { (JSJitGetterOp)set_textOverflow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textShadow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_shadow);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textShadow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_shadow);
}

static const JSJitInfo textShadow_getterinfo = {
  { get_textShadow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textShadow_setterinfo = {
  { (JSJitGetterOp)set_textShadow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textUnderlineOffset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_underline_offset);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textUnderlineOffset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_underline_offset);
}

static const JSJitInfo textUnderlineOffset_getterinfo = {
  { get_textUnderlineOffset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textUnderlineOffset_setterinfo = {
  { (JSJitGetterOp)set_textUnderlineOffset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_transformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform_origin);
}

MOZ_CAN_RUN_SCRIPT static bool
set_transformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform_origin);
}

static const JSJitInfo transformOrigin_getterinfo = {
  { get_transformOrigin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo transformOrigin_setterinfo = {
  { (JSJitGetterOp)set_transformOrigin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_transitionBehavior(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_behavior);
}

MOZ_CAN_RUN_SCRIPT static bool
set_transitionBehavior(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_behavior);
}

static const JSJitInfo transitionBehavior_getterinfo = {
  { get_transitionBehavior },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo transitionBehavior_setterinfo = {
  { (JSJitGetterOp)set_transitionBehavior },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_transitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_delay);
}

MOZ_CAN_RUN_SCRIPT static bool
set_transitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_delay);
}

static const JSJitInfo transitionDelay_getterinfo = {
  { get_transitionDelay },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo transitionDelay_setterinfo = {
  { (JSJitGetterOp)set_transitionDelay },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_transitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_duration);
}

MOZ_CAN_RUN_SCRIPT static bool
set_transitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_duration);
}

static const JSJitInfo transitionDuration_getterinfo = {
  { get_transitionDuration },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo transitionDuration_setterinfo = {
  { (JSJitGetterOp)set_transitionDuration },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_transitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_property);
}

MOZ_CAN_RUN_SCRIPT static bool
set_transitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_property);
}

static const JSJitInfo transitionProperty_getterinfo = {
  { get_transitionProperty },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo transitionProperty_setterinfo = {
  { (JSJitGetterOp)set_transitionProperty },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_transitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_timing_function);
}

MOZ_CAN_RUN_SCRIPT static bool
set_transitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_timing_function);
}

static const JSJitInfo transitionTimingFunction_getterinfo = {
  { get_transitionTimingFunction },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo transitionTimingFunction_setterinfo = {
  { (JSJitGetterOp)set_transitionTimingFunction },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_translate(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_translate);
}

MOZ_CAN_RUN_SCRIPT static bool
set_translate(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_translate);
}

static const JSJitInfo translate_getterinfo = {
  { get_translate },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo translate_setterinfo = {
  { (JSJitGetterOp)set_translate },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_verticalAlign(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_vertical_align);
}

MOZ_CAN_RUN_SCRIPT static bool
set_verticalAlign(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_vertical_align);
}

static const JSJitInfo verticalAlign_getterinfo = {
  { get_verticalAlign },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo verticalAlign_setterinfo = {
  { (JSJitGetterOp)set_verticalAlign },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_viewTimelineAxis(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_view_timeline_axis);
}

MOZ_CAN_RUN_SCRIPT static bool
set_viewTimelineAxis(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_view_timeline_axis);
}

static const JSJitInfo viewTimelineAxis_getterinfo = {
  { get_viewTimelineAxis },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo viewTimelineAxis_setterinfo = {
  { (JSJitGetterOp)set_viewTimelineAxis },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_viewTimelineInset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_view_timeline_inset);
}

MOZ_CAN_RUN_SCRIPT static bool
set_viewTimelineInset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_view_timeline_inset);
}

static const JSJitInfo viewTimelineInset_getterinfo = {
  { get_viewTimelineInset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo viewTimelineInset_setterinfo = {
  { (JSJitGetterOp)set_viewTimelineInset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_viewTimelineName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_view_timeline_name);
}

MOZ_CAN_RUN_SCRIPT static bool
set_viewTimelineName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_view_timeline_name);
}

static const JSJitInfo viewTimelineName_getterinfo = {
  { get_viewTimelineName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo viewTimelineName_setterinfo = {
  { (JSJitGetterOp)set_viewTimelineName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_viewTransitionClass(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_view_transition_class);
}

MOZ_CAN_RUN_SCRIPT static bool
set_viewTransitionClass(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_view_transition_class);
}

static const JSJitInfo viewTransitionClass_getterinfo = {
  { get_viewTransitionClass },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo viewTransitionClass_setterinfo = {
  { (JSJitGetterOp)set_viewTransitionClass },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_viewTransitionName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_view_transition_name);
}

MOZ_CAN_RUN_SCRIPT static bool
set_viewTransitionName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_view_transition_name);
}

static const JSJitInfo viewTransitionName_getterinfo = {
  { get_viewTransitionName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo viewTransitionName_setterinfo = {
  { (JSJitGetterOp)set_viewTransitionName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_webkitTextStrokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_text_stroke_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_webkitTextStrokeWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_text_stroke_width);
}

static const JSJitInfo webkitTextStrokeWidth_getterinfo = {
  { get_webkitTextStrokeWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo webkitTextStrokeWidth_setterinfo = {
  { (JSJitGetterOp)set_webkitTextStrokeWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_willChange(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_will_change);
}

MOZ_CAN_RUN_SCRIPT static bool
set_willChange(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_will_change);
}

static const JSJitInfo willChange_getterinfo = {
  { get_willChange },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo willChange_setterinfo = {
  { (JSJitGetterOp)set_willChange },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_wordSpacing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_word_spacing);
}

MOZ_CAN_RUN_SCRIPT static bool
set_wordSpacing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_word_spacing);
}

static const JSJitInfo wordSpacing_getterinfo = {
  { get_wordSpacing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo wordSpacing_setterinfo = {
  { (JSJitGetterOp)set_wordSpacing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_objectPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_object_position);
}

MOZ_CAN_RUN_SCRIPT static bool
set_objectPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_object_position);
}

static const JSJitInfo objectPosition_getterinfo = {
  { get_objectPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo objectPosition_setterinfo = {
  { (JSJitGetterOp)set_objectPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_perspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_perspective_origin);
}

MOZ_CAN_RUN_SCRIPT static bool
set_perspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_perspective_origin);
}

static const JSJitInfo perspectiveOrigin_getterinfo = {
  { get_perspectiveOrigin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo perspectiveOrigin_setterinfo = {
  { (JSJitGetterOp)set_perspectiveOrigin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fill(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_fill);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fill(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_fill);
}

static const JSJitInfo fill_getterinfo = {
  { get_fill },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fill_setterinfo = {
  { (JSJitGetterOp)set_fill },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_stroke(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke);
}

MOZ_CAN_RUN_SCRIPT static bool
set_stroke(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_stroke);
}

static const JSJitInfo stroke_getterinfo = {
  { get_stroke },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo stroke_setterinfo = {
  { (JSJitGetterOp)set_stroke },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridTemplateColumns(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_template_columns);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridTemplateColumns(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_template_columns);
}

static const JSJitInfo gridTemplateColumns_getterinfo = {
  { get_gridTemplateColumns },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridTemplateColumns_setterinfo = {
  { (JSJitGetterOp)set_gridTemplateColumns },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridTemplateRows(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_template_rows);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridTemplateRows(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_template_rows);
}

static const JSJitInfo gridTemplateRows_getterinfo = {
  { get_gridTemplateRows },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridTemplateRows_setterinfo = {
  { (JSJitGetterOp)set_gridTemplateRows },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderImageSource(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image_source);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderImageSource(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image_source);
}

static const JSJitInfo borderImageSource_getterinfo = {
  { get_borderImageSource },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderImageSource_setterinfo = {
  { (JSJitGetterOp)set_borderImageSource },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_listStyleImage(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_list_style_image);
}

MOZ_CAN_RUN_SCRIPT static bool
set_listStyleImage(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_list_style_image);
}

static const JSJitInfo listStyleImage_getterinfo = {
  { get_listStyleImage },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo listStyleImage_setterinfo = {
  { (JSJitGetterOp)set_listStyleImage },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridAutoColumns(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_auto_columns);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridAutoColumns(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_auto_columns);
}

static const JSJitInfo gridAutoColumns_getterinfo = {
  { get_gridAutoColumns },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridAutoColumns_setterinfo = {
  { (JSJitGetterOp)set_gridAutoColumns },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridAutoRows(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_auto_rows);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridAutoRows(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_auto_rows);
}

static const JSJitInfo gridAutoRows_getterinfo = {
  { get_gridAutoRows },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridAutoRows_setterinfo = {
  { (JSJitGetterOp)set_gridAutoRows },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozWindowTransform(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_window_transform);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozWindowTransform(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_window_transform);
}

static const JSJitInfo MozWindowTransform_getterinfo = {
  { get_MozWindowTransform },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozWindowTransform_setterinfo = {
  { (JSJitGetterOp)set_MozWindowTransform },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_transform(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform);
}

MOZ_CAN_RUN_SCRIPT static bool
set_transform(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform);
}

static const JSJitInfo transform_getterinfo = {
  { get_transform },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo transform_setterinfo = {
  { (JSJitGetterOp)set_transform },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_columnGap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_gap);
}

MOZ_CAN_RUN_SCRIPT static bool
set_columnGap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_gap);
}

static const JSJitInfo columnGap_getterinfo = {
  { get_columnGap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo columnGap_setterinfo = {
  { (JSJitGetterOp)set_columnGap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_rowGap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_row_gap);
}

MOZ_CAN_RUN_SCRIPT static bool
set_rowGap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_row_gap);
}

static const JSJitInfo rowGap_getterinfo = {
  { get_rowGap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo rowGap_setterinfo = {
  { (JSJitGetterOp)set_rowGap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_markerEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_marker_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_markerEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_marker_end);
}

static const JSJitInfo markerEnd_getterinfo = {
  { get_markerEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo markerEnd_setterinfo = {
  { (JSJitGetterOp)set_markerEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_markerMid(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_marker_mid);
}

MOZ_CAN_RUN_SCRIPT static bool
set_markerMid(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_marker_mid);
}

static const JSJitInfo markerMid_getterinfo = {
  { get_markerMid },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo markerMid_setterinfo = {
  { (JSJitGetterOp)set_markerMid },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_markerStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_marker_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_markerStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_marker_start);
}

static const JSJitInfo markerStart_getterinfo = {
  { get_markerStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo markerStart_setterinfo = {
  { (JSJitGetterOp)set_markerStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_containIntrinsicBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_contain_intrinsic_block_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_containIntrinsicBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_contain_intrinsic_block_size);
}

static const JSJitInfo containIntrinsicBlockSize_getterinfo = {
  { get_containIntrinsicBlockSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo containIntrinsicBlockSize_setterinfo = {
  { (JSJitGetterOp)set_containIntrinsicBlockSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_containIntrinsicHeight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_contain_intrinsic_height);
}

MOZ_CAN_RUN_SCRIPT static bool
set_containIntrinsicHeight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_contain_intrinsic_height);
}

static const JSJitInfo containIntrinsicHeight_getterinfo = {
  { get_containIntrinsicHeight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo containIntrinsicHeight_setterinfo = {
  { (JSJitGetterOp)set_containIntrinsicHeight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_containIntrinsicInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_contain_intrinsic_inline_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_containIntrinsicInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_contain_intrinsic_inline_size);
}

static const JSJitInfo containIntrinsicInlineSize_getterinfo = {
  { get_containIntrinsicInlineSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo containIntrinsicInlineSize_setterinfo = {
  { (JSJitGetterOp)set_containIntrinsicInlineSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_containIntrinsicWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_contain_intrinsic_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_containIntrinsicWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_contain_intrinsic_width);
}

static const JSJitInfo containIntrinsicWidth_getterinfo = {
  { get_containIntrinsicWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo containIntrinsicWidth_setterinfo = {
  { (JSJitGetterOp)set_containIntrinsicWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridColumnEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_column_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridColumnEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_column_end);
}

static const JSJitInfo gridColumnEnd_getterinfo = {
  { get_gridColumnEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridColumnEnd_setterinfo = {
  { (JSJitGetterOp)set_gridColumnEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridColumnStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_column_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridColumnStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_column_start);
}

static const JSJitInfo gridColumnStart_getterinfo = {
  { get_gridColumnStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridColumnStart_setterinfo = {
  { (JSJitGetterOp)set_gridColumnStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridRowEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_row_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridRowEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_row_end);
}

static const JSJitInfo gridRowEnd_getterinfo = {
  { get_gridRowEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridRowEnd_setterinfo = {
  { (JSJitGetterOp)set_gridRowEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridRowStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_row_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridRowStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_row_start);
}

static const JSJitInfo gridRowStart_getterinfo = {
  { get_gridRowStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridRowStart_setterinfo = {
  { (JSJitGetterOp)set_gridRowStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maxBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_max_block_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maxBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_max_block_size);
}

static const JSJitInfo maxBlockSize_getterinfo = {
  { get_maxBlockSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maxBlockSize_setterinfo = {
  { (JSJitGetterOp)set_maxBlockSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maxHeight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_max_height);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maxHeight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_max_height);
}

static const JSJitInfo maxHeight_getterinfo = {
  { get_maxHeight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maxHeight_setterinfo = {
  { (JSJitGetterOp)set_maxHeight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maxInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_max_inline_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maxInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_max_inline_size);
}

static const JSJitInfo maxInlineSize_getterinfo = {
  { get_maxInlineSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maxInlineSize_setterinfo = {
  { (JSJitGetterOp)set_maxInlineSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maxWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_max_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maxWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_max_width);
}

static const JSJitInfo maxWidth_getterinfo = {
  { get_maxWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maxWidth_setterinfo = {
  { (JSJitGetterOp)set_maxWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_cx(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_cx);
}

MOZ_CAN_RUN_SCRIPT static bool
set_cx(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_cx);
}

static const JSJitInfo cx_getterinfo = {
  { get_cx },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo cx_setterinfo = {
  { (JSJitGetterOp)set_cx },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_cy(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_cy);
}

MOZ_CAN_RUN_SCRIPT static bool
set_cy(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_cy);
}

static const JSJitInfo cy_getterinfo = {
  { get_cy },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo cy_setterinfo = {
  { (JSJitGetterOp)set_cy },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_offsetDistance(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_offset_distance);
}

MOZ_CAN_RUN_SCRIPT static bool
set_offsetDistance(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_offset_distance);
}

static const JSJitInfo offsetDistance_getterinfo = {
  { get_offsetDistance },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo offsetDistance_setterinfo = {
  { (JSJitGetterOp)set_offsetDistance },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_x(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_x);
}

MOZ_CAN_RUN_SCRIPT static bool
set_x(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_x);
}

static const JSJitInfo x_getterinfo = {
  { get_x },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo x_setterinfo = {
  { (JSJitGetterOp)set_x },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_y(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_y);
}

MOZ_CAN_RUN_SCRIPT static bool
set_y(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_y);
}

static const JSJitInfo y_getterinfo = {
  { get_y },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo y_setterinfo = {
  { (JSJitGetterOp)set_y },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBottomLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_bottom_left_radius);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBottomLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_bottom_left_radius);
}

static const JSJitInfo borderBottomLeftRadius_getterinfo = {
  { get_borderBottomLeftRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBottomLeftRadius_setterinfo = {
  { (JSJitGetterOp)set_borderBottomLeftRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBottomRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_bottom_right_radius);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBottomRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_bottom_right_radius);
}

static const JSJitInfo borderBottomRightRadius_getterinfo = {
  { get_borderBottomRightRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBottomRightRadius_setterinfo = {
  { (JSJitGetterOp)set_borderBottomRightRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderEndEndRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_end_end_radius);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderEndEndRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_end_end_radius);
}

static const JSJitInfo borderEndEndRadius_getterinfo = {
  { get_borderEndEndRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderEndEndRadius_setterinfo = {
  { (JSJitGetterOp)set_borderEndEndRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderEndStartRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_end_start_radius);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderEndStartRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_end_start_radius);
}

static const JSJitInfo borderEndStartRadius_getterinfo = {
  { get_borderEndStartRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderEndStartRadius_setterinfo = {
  { (JSJitGetterOp)set_borderEndStartRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderStartEndRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_start_end_radius);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderStartEndRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_start_end_radius);
}

static const JSJitInfo borderStartEndRadius_getterinfo = {
  { get_borderStartEndRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderStartEndRadius_setterinfo = {
  { (JSJitGetterOp)set_borderStartEndRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderStartStartRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_start_start_radius);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderStartStartRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_start_start_radius);
}

static const JSJitInfo borderStartStartRadius_getterinfo = {
  { get_borderStartStartRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderStartStartRadius_setterinfo = {
  { (JSJitGetterOp)set_borderStartStartRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderTopLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_top_left_radius);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderTopLeftRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_top_left_radius);
}

static const JSJitInfo borderTopLeftRadius_getterinfo = {
  { get_borderTopLeftRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderTopLeftRadius_setterinfo = {
  { (JSJitGetterOp)set_borderTopLeftRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderTopRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_top_right_radius);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderTopRightRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_top_right_radius);
}

static const JSJitInfo borderTopRightRadius_getterinfo = {
  { get_borderTopRightRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderTopRightRadius_setterinfo = {
  { (JSJitGetterOp)set_borderTopRightRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_bottom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_bottom);
}

MOZ_CAN_RUN_SCRIPT static bool
set_bottom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_bottom);
}

static const JSJitInfo bottom_getterinfo = {
  { get_bottom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo bottom_setterinfo = {
  { (JSJitGetterOp)set_bottom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_insetBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset_block_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_insetBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset_block_end);
}

static const JSJitInfo insetBlockEnd_getterinfo = {
  { get_insetBlockEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo insetBlockEnd_setterinfo = {
  { (JSJitGetterOp)set_insetBlockEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_insetBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset_block_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_insetBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset_block_start);
}

static const JSJitInfo insetBlockStart_getterinfo = {
  { get_insetBlockStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo insetBlockStart_setterinfo = {
  { (JSJitGetterOp)set_insetBlockStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_insetInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset_inline_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_insetInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset_inline_end);
}

static const JSJitInfo insetInlineEnd_getterinfo = {
  { get_insetInlineEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo insetInlineEnd_setterinfo = {
  { (JSJitGetterOp)set_insetInlineEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_insetInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset_inline_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_insetInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset_inline_start);
}

static const JSJitInfo insetInlineStart_getterinfo = {
  { get_insetInlineStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo insetInlineStart_setterinfo = {
  { (JSJitGetterOp)set_insetInlineStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_left(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_left);
}

MOZ_CAN_RUN_SCRIPT static bool
set_left(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_left);
}

static const JSJitInfo left_getterinfo = {
  { get_left },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo left_setterinfo = {
  { (JSJitGetterOp)set_left },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_right(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_right);
}

MOZ_CAN_RUN_SCRIPT static bool
set_right(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_right);
}

static const JSJitInfo right_getterinfo = {
  { get_right },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo right_setterinfo = {
  { (JSJitGetterOp)set_right },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_top(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_top);
}

MOZ_CAN_RUN_SCRIPT static bool
set_top(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_top);
}

static const JSJitInfo top_getterinfo = {
  { get_top },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo top_setterinfo = {
  { (JSJitGetterOp)set_top },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_marginBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_block_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_marginBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_block_end);
}

static const JSJitInfo marginBlockEnd_getterinfo = {
  { get_marginBlockEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo marginBlockEnd_setterinfo = {
  { (JSJitGetterOp)set_marginBlockEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_marginBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_block_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_marginBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_block_start);
}

static const JSJitInfo marginBlockStart_getterinfo = {
  { get_marginBlockStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo marginBlockStart_setterinfo = {
  { (JSJitGetterOp)set_marginBlockStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_marginBottom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_bottom);
}

MOZ_CAN_RUN_SCRIPT static bool
set_marginBottom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_bottom);
}

static const JSJitInfo marginBottom_getterinfo = {
  { get_marginBottom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo marginBottom_setterinfo = {
  { (JSJitGetterOp)set_marginBottom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_marginInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_inline_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_marginInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_inline_end);
}

static const JSJitInfo marginInlineEnd_getterinfo = {
  { get_marginInlineEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo marginInlineEnd_setterinfo = {
  { (JSJitGetterOp)set_marginInlineEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_marginInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_inline_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_marginInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_inline_start);
}

static const JSJitInfo marginInlineStart_getterinfo = {
  { get_marginInlineStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo marginInlineStart_setterinfo = {
  { (JSJitGetterOp)set_marginInlineStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_marginLeft(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_left);
}

MOZ_CAN_RUN_SCRIPT static bool
set_marginLeft(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_left);
}

static const JSJitInfo marginLeft_getterinfo = {
  { get_marginLeft },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo marginLeft_setterinfo = {
  { (JSJitGetterOp)set_marginLeft },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_marginRight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_right);
}

MOZ_CAN_RUN_SCRIPT static bool
set_marginRight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_right);
}

static const JSJitInfo marginRight_getterinfo = {
  { get_marginRight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo marginRight_setterinfo = {
  { (JSJitGetterOp)set_marginRight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_marginTop(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_top);
}

MOZ_CAN_RUN_SCRIPT static bool
set_marginTop(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_top);
}

static const JSJitInfo marginTop_getterinfo = {
  { get_marginTop },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo marginTop_setterinfo = {
  { (JSJitGetterOp)set_marginTop },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_blockSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_block_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_blockSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_block_size);
}

static const JSJitInfo blockSize_getterinfo = {
  { get_blockSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo blockSize_setterinfo = {
  { (JSJitGetterOp)set_blockSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_height(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_height);
}

MOZ_CAN_RUN_SCRIPT static bool
set_height(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_height);
}

static const JSJitInfo height_getterinfo = {
  { get_height },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo height_setterinfo = {
  { (JSJitGetterOp)set_height },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_inlineSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_inline_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_inlineSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_inline_size);
}

static const JSJitInfo inlineSize_getterinfo = {
  { get_inlineSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo inlineSize_setterinfo = {
  { (JSJitGetterOp)set_inlineSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_minBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_min_block_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_minBlockSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_min_block_size);
}

static const JSJitInfo minBlockSize_getterinfo = {
  { get_minBlockSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo minBlockSize_setterinfo = {
  { (JSJitGetterOp)set_minBlockSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_minHeight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_min_height);
}

MOZ_CAN_RUN_SCRIPT static bool
set_minHeight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_min_height);
}

static const JSJitInfo minHeight_getterinfo = {
  { get_minHeight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo minHeight_setterinfo = {
  { (JSJitGetterOp)set_minHeight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_minInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_min_inline_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_minInlineSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_min_inline_size);
}

static const JSJitInfo minInlineSize_getterinfo = {
  { get_minInlineSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo minInlineSize_setterinfo = {
  { (JSJitGetterOp)set_minInlineSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_minWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_min_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_minWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_min_width);
}

static const JSJitInfo minWidth_getterinfo = {
  { get_minWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo minWidth_setterinfo = {
  { (JSJitGetterOp)set_minWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_width(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_width(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_width);
}

static const JSJitInfo width_getterinfo = {
  { get_width },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo width_setterinfo = {
  { (JSJitGetterOp)set_width },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBlockEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_end_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBlockEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_end_width);
}

static const JSJitInfo borderBlockEndWidth_getterinfo = {
  { get_borderBlockEndWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBlockEndWidth_setterinfo = {
  { (JSJitGetterOp)set_borderBlockEndWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBlockStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_start_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBlockStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_start_width);
}

static const JSJitInfo borderBlockStartWidth_getterinfo = {
  { get_borderBlockStartWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBlockStartWidth_setterinfo = {
  { (JSJitGetterOp)set_borderBlockStartWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBottomWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_bottom_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBottomWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_bottom_width);
}

static const JSJitInfo borderBottomWidth_getterinfo = {
  { get_borderBottomWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBottomWidth_setterinfo = {
  { (JSJitGetterOp)set_borderBottomWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderInlineEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_end_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderInlineEndWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_end_width);
}

static const JSJitInfo borderInlineEndWidth_getterinfo = {
  { get_borderInlineEndWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderInlineEndWidth_setterinfo = {
  { (JSJitGetterOp)set_borderInlineEndWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderInlineStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_start_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderInlineStartWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_start_width);
}

static const JSJitInfo borderInlineStartWidth_getterinfo = {
  { get_borderInlineStartWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderInlineStartWidth_setterinfo = {
  { (JSJitGetterOp)set_borderInlineStartWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderLeftWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_left_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderLeftWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_left_width);
}

static const JSJitInfo borderLeftWidth_getterinfo = {
  { get_borderLeftWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderLeftWidth_setterinfo = {
  { (JSJitGetterOp)set_borderLeftWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderRightWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_right_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderRightWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_right_width);
}

static const JSJitInfo borderRightWidth_getterinfo = {
  { get_borderRightWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderRightWidth_setterinfo = {
  { (JSJitGetterOp)set_borderRightWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderTopWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_top_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderTopWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_top_width);
}

static const JSJitInfo borderTopWidth_getterinfo = {
  { get_borderTopWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderTopWidth_setterinfo = {
  { (JSJitGetterOp)set_borderTopWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_columnRuleWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_rule_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_columnRuleWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_rule_width);
}

static const JSJitInfo columnRuleWidth_getterinfo = {
  { get_columnRuleWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo columnRuleWidth_setterinfo = {
  { (JSJitGetterOp)set_columnRuleWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_outlineWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_outline_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_outlineWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_outline_width);
}

static const JSJitInfo outlineWidth_getterinfo = {
  { get_outlineWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo outlineWidth_setterinfo = {
  { (JSJitGetterOp)set_outlineWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozWindowInputRegionMargin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_window_input_region_margin);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozWindowInputRegionMargin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__moz_window_input_region_margin);
}

static const JSJitInfo MozWindowInputRegionMargin_getterinfo = {
  { get_MozWindowInputRegionMargin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozWindowInputRegionMargin_setterinfo = {
  { (JSJitGetterOp)set_MozWindowInputRegionMargin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overflowClipMargin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_clip_margin);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overflowClipMargin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow_clip_margin);
}

static const JSJitInfo overflowClipMargin_getterinfo = {
  { get_overflowClipMargin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overflowClipMargin_setterinfo = {
  { (JSJitGetterOp)set_overflowClipMargin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollMarginBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_block_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollMarginBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_block_end);
}

static const JSJitInfo scrollMarginBlockEnd_getterinfo = {
  { get_scrollMarginBlockEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollMarginBlockEnd_setterinfo = {
  { (JSJitGetterOp)set_scrollMarginBlockEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollMarginBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_block_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollMarginBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_block_start);
}

static const JSJitInfo scrollMarginBlockStart_getterinfo = {
  { get_scrollMarginBlockStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollMarginBlockStart_setterinfo = {
  { (JSJitGetterOp)set_scrollMarginBlockStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollMarginBottom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_bottom);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollMarginBottom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_bottom);
}

static const JSJitInfo scrollMarginBottom_getterinfo = {
  { get_scrollMarginBottom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollMarginBottom_setterinfo = {
  { (JSJitGetterOp)set_scrollMarginBottom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollMarginInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_inline_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollMarginInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_inline_end);
}

static const JSJitInfo scrollMarginInlineEnd_getterinfo = {
  { get_scrollMarginInlineEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollMarginInlineEnd_setterinfo = {
  { (JSJitGetterOp)set_scrollMarginInlineEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollMarginInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_inline_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollMarginInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_inline_start);
}

static const JSJitInfo scrollMarginInlineStart_getterinfo = {
  { get_scrollMarginInlineStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollMarginInlineStart_setterinfo = {
  { (JSJitGetterOp)set_scrollMarginInlineStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollMarginLeft(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_left);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollMarginLeft(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_left);
}

static const JSJitInfo scrollMarginLeft_getterinfo = {
  { get_scrollMarginLeft },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollMarginLeft_setterinfo = {
  { (JSJitGetterOp)set_scrollMarginLeft },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollMarginRight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_right);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollMarginRight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_right);
}

static const JSJitInfo scrollMarginRight_getterinfo = {
  { get_scrollMarginRight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollMarginRight_setterinfo = {
  { (JSJitGetterOp)set_scrollMarginRight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollMarginTop(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_top);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollMarginTop(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_top);
}

static const JSJitInfo scrollMarginTop_getterinfo = {
  { get_scrollMarginTop },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollMarginTop_setterinfo = {
  { (JSJitGetterOp)set_scrollMarginTop },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_paddingBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_block_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_paddingBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_block_end);
}

static const JSJitInfo paddingBlockEnd_getterinfo = {
  { get_paddingBlockEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo paddingBlockEnd_setterinfo = {
  { (JSJitGetterOp)set_paddingBlockEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_paddingBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_block_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_paddingBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_block_start);
}

static const JSJitInfo paddingBlockStart_getterinfo = {
  { get_paddingBlockStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo paddingBlockStart_setterinfo = {
  { (JSJitGetterOp)set_paddingBlockStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_paddingBottom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_bottom);
}

MOZ_CAN_RUN_SCRIPT static bool
set_paddingBottom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_bottom);
}

static const JSJitInfo paddingBottom_getterinfo = {
  { get_paddingBottom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo paddingBottom_setterinfo = {
  { (JSJitGetterOp)set_paddingBottom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_paddingInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_inline_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_paddingInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_inline_end);
}

static const JSJitInfo paddingInlineEnd_getterinfo = {
  { get_paddingInlineEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo paddingInlineEnd_setterinfo = {
  { (JSJitGetterOp)set_paddingInlineEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_paddingInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_inline_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_paddingInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_inline_start);
}

static const JSJitInfo paddingInlineStart_getterinfo = {
  { get_paddingInlineStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo paddingInlineStart_setterinfo = {
  { (JSJitGetterOp)set_paddingInlineStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_paddingLeft(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_left);
}

MOZ_CAN_RUN_SCRIPT static bool
set_paddingLeft(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_left);
}

static const JSJitInfo paddingLeft_getterinfo = {
  { get_paddingLeft },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo paddingLeft_setterinfo = {
  { (JSJitGetterOp)set_paddingLeft },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_paddingRight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_right);
}

MOZ_CAN_RUN_SCRIPT static bool
set_paddingRight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_right);
}

static const JSJitInfo paddingRight_getterinfo = {
  { get_paddingRight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo paddingRight_setterinfo = {
  { (JSJitGetterOp)set_paddingRight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_paddingTop(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_top);
}

MOZ_CAN_RUN_SCRIPT static bool
set_paddingTop(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_top);
}

static const JSJitInfo paddingTop_getterinfo = {
  { get_paddingTop },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo paddingTop_setterinfo = {
  { (JSJitGetterOp)set_paddingTop },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_r(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_r);
}

MOZ_CAN_RUN_SCRIPT static bool
set_r(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_r);
}

static const JSJitInfo r_getterinfo = {
  { get_r },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo r_setterinfo = {
  { (JSJitGetterOp)set_r },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_shapeMargin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_shape_margin);
}

MOZ_CAN_RUN_SCRIPT static bool
set_shapeMargin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_shape_margin);
}

static const JSJitInfo shapeMargin_getterinfo = {
  { get_shapeMargin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo shapeMargin_setterinfo = {
  { (JSJitGetterOp)set_shapeMargin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_rx(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_rx);
}

MOZ_CAN_RUN_SCRIPT static bool
set_rx(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_rx);
}

static const JSJitInfo rx_getterinfo = {
  { get_rx },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo rx_setterinfo = {
  { (JSJitGetterOp)set_rx },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_ry(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_ry);
}

MOZ_CAN_RUN_SCRIPT static bool
set_ry(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_ry);
}

static const JSJitInfo ry_getterinfo = {
  { get_ry },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo ry_setterinfo = {
  { (JSJitGetterOp)set_ry },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollPaddingBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_block_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollPaddingBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_block_end);
}

static const JSJitInfo scrollPaddingBlockEnd_getterinfo = {
  { get_scrollPaddingBlockEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollPaddingBlockEnd_setterinfo = {
  { (JSJitGetterOp)set_scrollPaddingBlockEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollPaddingBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_block_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollPaddingBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_block_start);
}

static const JSJitInfo scrollPaddingBlockStart_getterinfo = {
  { get_scrollPaddingBlockStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollPaddingBlockStart_setterinfo = {
  { (JSJitGetterOp)set_scrollPaddingBlockStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollPaddingBottom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_bottom);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollPaddingBottom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_bottom);
}

static const JSJitInfo scrollPaddingBottom_getterinfo = {
  { get_scrollPaddingBottom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollPaddingBottom_setterinfo = {
  { (JSJitGetterOp)set_scrollPaddingBottom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollPaddingInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_inline_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollPaddingInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_inline_end);
}

static const JSJitInfo scrollPaddingInlineEnd_getterinfo = {
  { get_scrollPaddingInlineEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollPaddingInlineEnd_setterinfo = {
  { (JSJitGetterOp)set_scrollPaddingInlineEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollPaddingInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_inline_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollPaddingInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_inline_start);
}

static const JSJitInfo scrollPaddingInlineStart_getterinfo = {
  { get_scrollPaddingInlineStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollPaddingInlineStart_setterinfo = {
  { (JSJitGetterOp)set_scrollPaddingInlineStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollPaddingLeft(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_left);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollPaddingLeft(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_left);
}

static const JSJitInfo scrollPaddingLeft_getterinfo = {
  { get_scrollPaddingLeft },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollPaddingLeft_setterinfo = {
  { (JSJitGetterOp)set_scrollPaddingLeft },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollPaddingRight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_right);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollPaddingRight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_right);
}

static const JSJitInfo scrollPaddingRight_getterinfo = {
  { get_scrollPaddingRight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollPaddingRight_setterinfo = {
  { (JSJitGetterOp)set_scrollPaddingRight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollPaddingTop(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_top);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollPaddingTop(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_top);
}

static const JSJitInfo scrollPaddingTop_getterinfo = {
  { get_scrollPaddingTop },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollPaddingTop_setterinfo = {
  { (JSJitGetterOp)set_scrollPaddingTop },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backgroundColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backgroundColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_color);
}

static const JSJitInfo backgroundColor_getterinfo = {
  { get_backgroundColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backgroundColor_setterinfo = {
  { (JSJitGetterOp)set_backgroundColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBlockEndColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_end_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBlockEndColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_end_color);
}

static const JSJitInfo borderBlockEndColor_getterinfo = {
  { get_borderBlockEndColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBlockEndColor_setterinfo = {
  { (JSJitGetterOp)set_borderBlockEndColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBlockStartColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_start_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBlockStartColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_start_color);
}

static const JSJitInfo borderBlockStartColor_getterinfo = {
  { get_borderBlockStartColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBlockStartColor_setterinfo = {
  { (JSJitGetterOp)set_borderBlockStartColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBottomColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_bottom_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBottomColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_bottom_color);
}

static const JSJitInfo borderBottomColor_getterinfo = {
  { get_borderBottomColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBottomColor_setterinfo = {
  { (JSJitGetterOp)set_borderBottomColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderInlineEndColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_end_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderInlineEndColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_end_color);
}

static const JSJitInfo borderInlineEndColor_getterinfo = {
  { get_borderInlineEndColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderInlineEndColor_setterinfo = {
  { (JSJitGetterOp)set_borderInlineEndColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderInlineStartColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_start_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderInlineStartColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_start_color);
}

static const JSJitInfo borderInlineStartColor_getterinfo = {
  { get_borderInlineStartColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderInlineStartColor_setterinfo = {
  { (JSJitGetterOp)set_borderInlineStartColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderLeftColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_left_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderLeftColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_left_color);
}

static const JSJitInfo borderLeftColor_getterinfo = {
  { get_borderLeftColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderLeftColor_setterinfo = {
  { (JSJitGetterOp)set_borderLeftColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderRightColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_right_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderRightColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_right_color);
}

static const JSJitInfo borderRightColor_getterinfo = {
  { get_borderRightColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderRightColor_setterinfo = {
  { (JSJitGetterOp)set_borderRightColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderTopColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_top_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderTopColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_top_color);
}

static const JSJitInfo borderTopColor_getterinfo = {
  { get_borderTopColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderTopColor_setterinfo = {
  { (JSJitGetterOp)set_borderTopColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_columnRuleColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_rule_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_columnRuleColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_rule_color);
}

static const JSJitInfo columnRuleColor_getterinfo = {
  { get_columnRuleColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo columnRuleColor_setterinfo = {
  { (JSJitGetterOp)set_columnRuleColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_floodColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_flood_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_floodColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_flood_color);
}

static const JSJitInfo floodColor_getterinfo = {
  { get_floodColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo floodColor_setterinfo = {
  { (JSJitGetterOp)set_floodColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_lightingColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_lighting_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_lightingColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_lighting_color);
}

static const JSJitInfo lightingColor_getterinfo = {
  { get_lightingColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo lightingColor_setterinfo = {
  { (JSJitGetterOp)set_lightingColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_outlineColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_outline_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_outlineColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_outline_color);
}

static const JSJitInfo outlineColor_getterinfo = {
  { get_outlineColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo outlineColor_setterinfo = {
  { (JSJitGetterOp)set_outlineColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_stopColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_stop_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_stopColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_stop_color);
}

static const JSJitInfo stopColor_getterinfo = {
  { get_stopColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo stopColor_setterinfo = {
  { (JSJitGetterOp)set_stopColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textDecorationColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textDecorationColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration_color);
}

static const JSJitInfo textDecorationColor_getterinfo = {
  { get_textDecorationColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textDecorationColor_setterinfo = {
  { (JSJitGetterOp)set_textDecorationColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textEmphasisColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_emphasis_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textEmphasisColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_emphasis_color);
}

static const JSJitInfo textEmphasisColor_getterinfo = {
  { get_textEmphasisColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textEmphasisColor_setterinfo = {
  { (JSJitGetterOp)set_textEmphasisColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_webkitTextFillColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_text_fill_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_webkitTextFillColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_text_fill_color);
}

static const JSJitInfo webkitTextFillColor_getterinfo = {
  { get_webkitTextFillColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo webkitTextFillColor_setterinfo = {
  { (JSJitGetterOp)set_webkitTextFillColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_webkitTextStrokeColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_text_stroke_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_webkitTextStrokeColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_text_stroke_color);
}

static const JSJitInfo webkitTextStrokeColor_getterinfo = {
  { get_webkitTextStrokeColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo webkitTextStrokeColor_setterinfo = {
  { (JSJitGetterOp)set_webkitTextStrokeColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_background(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_background);
}

MOZ_CAN_RUN_SCRIPT static bool
set_background(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_background);
}

static const JSJitInfo background_getterinfo = {
  { get_background },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo background_setterinfo = {
  { (JSJitGetterOp)set_background },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_backgroundPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_position);
}

MOZ_CAN_RUN_SCRIPT static bool
set_backgroundPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_background_position);
}

static const JSJitInfo backgroundPosition_getterinfo = {
  { get_backgroundPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo backgroundPosition_setterinfo = {
  { (JSJitGetterOp)set_backgroundPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_color);
}

static const JSJitInfo borderColor_getterinfo = {
  { get_borderColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderColor_setterinfo = {
  { (JSJitGetterOp)set_borderColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_style);
}

static const JSJitInfo borderStyle_getterinfo = {
  { get_borderStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderStyle_setterinfo = {
  { (JSJitGetterOp)set_borderStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_width);
}

static const JSJitInfo borderWidth_getterinfo = {
  { get_borderWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderWidth_setterinfo = {
  { (JSJitGetterOp)set_borderWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderTop(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_top);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderTop(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_top);
}

static const JSJitInfo borderTop_getterinfo = {
  { get_borderTop },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderTop_setterinfo = {
  { (JSJitGetterOp)set_borderTop },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderRight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_right);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderRight(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_right);
}

static const JSJitInfo borderRight_getterinfo = {
  { get_borderRight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderRight_setterinfo = {
  { (JSJitGetterOp)set_borderRight },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBottom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_bottom);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBottom(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_bottom);
}

static const JSJitInfo borderBottom_getterinfo = {
  { get_borderBottom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBottom_setterinfo = {
  { (JSJitGetterOp)set_borderBottom },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderLeft(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_left);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderLeft(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_left);
}

static const JSJitInfo borderLeft_getterinfo = {
  { get_borderLeft },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderLeft_setterinfo = {
  { (JSJitGetterOp)set_borderLeft },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBlockStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_start);
}

static const JSJitInfo borderBlockStart_getterinfo = {
  { get_borderBlockStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBlockStart_setterinfo = {
  { (JSJitGetterOp)set_borderBlockStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBlockEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_end);
}

static const JSJitInfo borderBlockEnd_getterinfo = {
  { get_borderBlockEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBlockEnd_setterinfo = {
  { (JSJitGetterOp)set_borderBlockEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_start);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderInlineStart(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_start);
}

static const JSJitInfo borderInlineStart_getterinfo = {
  { get_borderInlineStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderInlineStart_setterinfo = {
  { (JSJitGetterOp)set_borderInlineStart },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_end);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderInlineEnd(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_end);
}

static const JSJitInfo borderInlineEnd_getterinfo = {
  { get_borderInlineEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderInlineEnd_setterinfo = {
  { (JSJitGetterOp)set_borderInlineEnd },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_border(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border);
}

MOZ_CAN_RUN_SCRIPT static bool
set_border(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border);
}

static const JSJitInfo border_getterinfo = {
  { get_border },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo border_setterinfo = {
  { (JSJitGetterOp)set_border },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_radius);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderRadius(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_radius);
}

static const JSJitInfo borderRadius_getterinfo = {
  { get_borderRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderRadius_setterinfo = {
  { (JSJitGetterOp)set_borderRadius },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderImage(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderImage(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image);
}

static const JSJitInfo borderImage_getterinfo = {
  { get_borderImage },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderImage_setterinfo = {
  { (JSJitGetterOp)set_borderImage },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBlockWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBlockWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_width);
}

static const JSJitInfo borderBlockWidth_getterinfo = {
  { get_borderBlockWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBlockWidth_setterinfo = {
  { (JSJitGetterOp)set_borderBlockWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBlockStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBlockStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_style);
}

static const JSJitInfo borderBlockStyle_getterinfo = {
  { get_borderBlockStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBlockStyle_setterinfo = {
  { (JSJitGetterOp)set_borderBlockStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBlockColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBlockColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block_color);
}

static const JSJitInfo borderBlockColor_getterinfo = {
  { get_borderBlockColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBlockColor_setterinfo = {
  { (JSJitGetterOp)set_borderBlockColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderInlineWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_width);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderInlineWidth(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_width);
}

static const JSJitInfo borderInlineWidth_getterinfo = {
  { get_borderInlineWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderInlineWidth_setterinfo = {
  { (JSJitGetterOp)set_borderInlineWidth },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderInlineStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderInlineStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_style);
}

static const JSJitInfo borderInlineStyle_getterinfo = {
  { get_borderInlineStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderInlineStyle_setterinfo = {
  { (JSJitGetterOp)set_borderInlineStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderInlineColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_color);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderInlineColor(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline_color);
}

static const JSJitInfo borderInlineColor_getterinfo = {
  { get_borderInlineColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderInlineColor_setterinfo = {
  { (JSJitGetterOp)set_borderInlineColor },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_block);
}

static const JSJitInfo borderBlock_getterinfo = {
  { get_borderBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderBlock_setterinfo = {
  { (JSJitGetterOp)set_borderBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_borderInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_borderInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_inline);
}

static const JSJitInfo borderInline_getterinfo = {
  { get_borderInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo borderInline_setterinfo = {
  { (JSJitGetterOp)set_borderInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overflow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overflow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overflow);
}

static const JSJitInfo overflow_getterinfo = {
  { get_overflow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overflow_setterinfo = {
  { (JSJitGetterOp)set_overflow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_overscrollBehavior(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_overscroll_behavior);
}

MOZ_CAN_RUN_SCRIPT static bool
set_overscrollBehavior(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_overscroll_behavior);
}

static const JSJitInfo overscrollBehavior_getterinfo = {
  { get_overscrollBehavior },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo overscrollBehavior_setterinfo = {
  { (JSJitGetterOp)set_overscrollBehavior },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_container(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_container);
}

MOZ_CAN_RUN_SCRIPT static bool
set_container(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_container);
}

static const JSJitInfo container_getterinfo = {
  { get_container },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo container_setterinfo = {
  { (JSJitGetterOp)set_container },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_pageBreakBefore(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_page_break_before);
}

MOZ_CAN_RUN_SCRIPT static bool
set_pageBreakBefore(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_page_break_before);
}

static const JSJitInfo pageBreakBefore_getterinfo = {
  { get_pageBreakBefore },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo pageBreakBefore_setterinfo = {
  { (JSJitGetterOp)set_pageBreakBefore },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_pageBreakAfter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_page_break_after);
}

MOZ_CAN_RUN_SCRIPT static bool
set_pageBreakAfter(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_page_break_after);
}

static const JSJitInfo pageBreakAfter_getterinfo = {
  { get_pageBreakAfter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo pageBreakAfter_setterinfo = {
  { (JSJitGetterOp)set_pageBreakAfter },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_pageBreakInside(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_page_break_inside);
}

MOZ_CAN_RUN_SCRIPT static bool
set_pageBreakInside(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_page_break_inside);
}

static const JSJitInfo pageBreakInside_getterinfo = {
  { get_pageBreakInside },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo pageBreakInside_setterinfo = {
  { (JSJitGetterOp)set_pageBreakInside },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_offset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_offset);
}

MOZ_CAN_RUN_SCRIPT static bool
set_offset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_offset);
}

static const JSJitInfo offset_getterinfo = {
  { get_offset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo offset_setterinfo = {
  { (JSJitGetterOp)set_offset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_webkitPerspective(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_perspective);
}

MOZ_CAN_RUN_SCRIPT static bool
set_webkitPerspective(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_perspective);
}

static const JSJitInfo webkitPerspective_getterinfo = {
  { get_webkitPerspective },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo webkitPerspective_setterinfo = {
  { (JSJitGetterOp)set_webkitPerspective },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_webkitTransform(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_transform);
}

MOZ_CAN_RUN_SCRIPT static bool
set_webkitTransform(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_transform);
}

static const JSJitInfo webkitTransform_getterinfo = {
  { get_webkitTransform },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo webkitTransform_setterinfo = {
  { (JSJitGetterOp)set_webkitTransform },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_columns(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_columns);
}

MOZ_CAN_RUN_SCRIPT static bool
set_columns(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_columns);
}

static const JSJitInfo columns_getterinfo = {
  { get_columns },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo columns_setterinfo = {
  { (JSJitGetterOp)set_columns },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_columnRule(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_rule);
}

MOZ_CAN_RUN_SCRIPT static bool
set_columnRule(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_column_rule);
}

static const JSJitInfo columnRule_getterinfo = {
  { get_columnRule },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo columnRule_setterinfo = {
  { (JSJitGetterOp)set_columnRule },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_font(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font);
}

MOZ_CAN_RUN_SCRIPT static bool
set_font(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font);
}

static const JSJitInfo font_getterinfo = {
  { get_font },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo font_setterinfo = {
  { (JSJitGetterOp)set_font },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontVariant(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontVariant(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_variant);
}

static const JSJitInfo fontVariant_getterinfo = {
  { get_fontVariant },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontVariant_setterinfo = {
  { (JSJitGetterOp)set_fontVariant },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_fontSynthesis(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_synthesis);
}

MOZ_CAN_RUN_SCRIPT static bool
set_fontSynthesis(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_synthesis);
}

static const JSJitInfo fontSynthesis_getterinfo = {
  { get_fontSynthesis },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo fontSynthesis_setterinfo = {
  { (JSJitGetterOp)set_fontSynthesis },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_marker(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_marker);
}

MOZ_CAN_RUN_SCRIPT static bool
set_marker(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_marker);
}

static const JSJitInfo marker_getterinfo = {
  { get_marker },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo marker_setterinfo = {
  { (JSJitGetterOp)set_marker },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textEmphasis(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_emphasis);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textEmphasis(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_emphasis);
}

static const JSJitInfo textEmphasis_getterinfo = {
  { get_textEmphasis },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textEmphasis_setterinfo = {
  { (JSJitGetterOp)set_textEmphasis },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textWrap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_wrap);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textWrap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_wrap);
}

static const JSJitInfo textWrap_getterinfo = {
  { get_textWrap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textWrap_setterinfo = {
  { (JSJitGetterOp)set_textWrap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_whiteSpace(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_white_space);
}

MOZ_CAN_RUN_SCRIPT static bool
set_whiteSpace(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_white_space);
}

static const JSJitInfo whiteSpace_getterinfo = {
  { get_whiteSpace },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo whiteSpace_setterinfo = {
  { (JSJitGetterOp)set_whiteSpace },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_webkitTextStroke(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_text_stroke);
}

MOZ_CAN_RUN_SCRIPT static bool
set_webkitTextStroke(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty__webkit_text_stroke);
}

static const JSJitInfo webkitTextStroke_getterinfo = {
  { get_webkitTextStroke },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo webkitTextStroke_setterinfo = {
  { (JSJitGetterOp)set_webkitTextStroke },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_listStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_list_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_listStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_list_style);
}

static const JSJitInfo listStyle_getterinfo = {
  { get_listStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo listStyle_setterinfo = {
  { (JSJitGetterOp)set_listStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_margin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin);
}

MOZ_CAN_RUN_SCRIPT static bool
set_margin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin);
}

static const JSJitInfo margin_getterinfo = {
  { get_margin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo margin_setterinfo = {
  { (JSJitGetterOp)set_margin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_marginBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_block);
}

MOZ_CAN_RUN_SCRIPT static bool
set_marginBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_block);
}

static const JSJitInfo marginBlock_getterinfo = {
  { get_marginBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo marginBlock_setterinfo = {
  { (JSJitGetterOp)set_marginBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_marginInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_inline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_marginInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_margin_inline);
}

static const JSJitInfo marginInline_getterinfo = {
  { get_marginInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo marginInline_setterinfo = {
  { (JSJitGetterOp)set_marginInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollMargin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollMargin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin);
}

static const JSJitInfo scrollMargin_getterinfo = {
  { get_scrollMargin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollMargin_setterinfo = {
  { (JSJitGetterOp)set_scrollMargin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollMarginBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_block);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollMarginBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_block);
}

static const JSJitInfo scrollMarginBlock_getterinfo = {
  { get_scrollMarginBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollMarginBlock_setterinfo = {
  { (JSJitGetterOp)set_scrollMarginBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollMarginInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_inline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollMarginInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_margin_inline);
}

static const JSJitInfo scrollMarginInline_getterinfo = {
  { get_scrollMarginInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollMarginInline_setterinfo = {
  { (JSJitGetterOp)set_scrollMarginInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_outline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_outline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_outline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_outline);
}

static const JSJitInfo outline_getterinfo = {
  { get_outline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo outline_setterinfo = {
  { (JSJitGetterOp)set_outline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_padding(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding);
}

MOZ_CAN_RUN_SCRIPT static bool
set_padding(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding);
}

static const JSJitInfo padding_getterinfo = {
  { get_padding },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo padding_setterinfo = {
  { (JSJitGetterOp)set_padding },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_paddingBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_block);
}

MOZ_CAN_RUN_SCRIPT static bool
set_paddingBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_block);
}

static const JSJitInfo paddingBlock_getterinfo = {
  { get_paddingBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo paddingBlock_setterinfo = {
  { (JSJitGetterOp)set_paddingBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_paddingInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_inline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_paddingInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_padding_inline);
}

static const JSJitInfo paddingInline_getterinfo = {
  { get_paddingInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo paddingInline_setterinfo = {
  { (JSJitGetterOp)set_paddingInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollPadding(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollPadding(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding);
}

static const JSJitInfo scrollPadding_getterinfo = {
  { get_scrollPadding },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollPadding_setterinfo = {
  { (JSJitGetterOp)set_scrollPadding },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollPaddingBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_block);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollPaddingBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_block);
}

static const JSJitInfo scrollPaddingBlock_getterinfo = {
  { get_scrollPaddingBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollPaddingBlock_setterinfo = {
  { (JSJitGetterOp)set_scrollPaddingBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollPaddingInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_inline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollPaddingInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_padding_inline);
}

static const JSJitInfo scrollPaddingInline_getterinfo = {
  { get_scrollPaddingInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollPaddingInline_setterinfo = {
  { (JSJitGetterOp)set_scrollPaddingInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_flexFlow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex_flow);
}

MOZ_CAN_RUN_SCRIPT static bool
set_flexFlow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex_flow);
}

static const JSJitInfo flexFlow_getterinfo = {
  { get_flexFlow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo flexFlow_setterinfo = {
  { (JSJitGetterOp)set_flexFlow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_flex(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex);
}

MOZ_CAN_RUN_SCRIPT static bool
set_flex(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_flex);
}

static const JSJitInfo flex_getterinfo = {
  { get_flex },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo flex_setterinfo = {
  { (JSJitGetterOp)set_flex },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_gap);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gap(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_gap);
}

static const JSJitInfo gap_getterinfo = {
  { get_gap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gap_setterinfo = {
  { (JSJitGetterOp)set_gap },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridRow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_row);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridRow(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_row);
}

static const JSJitInfo gridRow_getterinfo = {
  { get_gridRow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridRow_setterinfo = {
  { (JSJitGetterOp)set_gridRow },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridColumn(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_column);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridColumn(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_column);
}

static const JSJitInfo gridColumn_getterinfo = {
  { get_gridColumn },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridColumn_setterinfo = {
  { (JSJitGetterOp)set_gridColumn },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridArea(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_area);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridArea(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_area);
}

static const JSJitInfo gridArea_getterinfo = {
  { get_gridArea },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridArea_setterinfo = {
  { (JSJitGetterOp)set_gridArea },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_gridTemplate(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_template);
}

MOZ_CAN_RUN_SCRIPT static bool
set_gridTemplate(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid_template);
}

static const JSJitInfo gridTemplate_getterinfo = {
  { get_gridTemplate },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo gridTemplate_setterinfo = {
  { (JSJitGetterOp)set_gridTemplate },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_grid(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid);
}

MOZ_CAN_RUN_SCRIPT static bool
set_grid(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_grid);
}

static const JSJitInfo grid_getterinfo = {
  { get_grid },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo grid_setterinfo = {
  { (JSJitGetterOp)set_grid },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_placeContent(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_place_content);
}

MOZ_CAN_RUN_SCRIPT static bool
set_placeContent(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_place_content);
}

static const JSJitInfo placeContent_getterinfo = {
  { get_placeContent },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo placeContent_setterinfo = {
  { (JSJitGetterOp)set_placeContent },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_placeSelf(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_place_self);
}

MOZ_CAN_RUN_SCRIPT static bool
set_placeSelf(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_place_self);
}

static const JSJitInfo placeSelf_getterinfo = {
  { get_placeSelf },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo placeSelf_setterinfo = {
  { (JSJitGetterOp)set_placeSelf },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_placeItems(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_place_items);
}

MOZ_CAN_RUN_SCRIPT static bool
set_placeItems(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_place_items);
}

static const JSJitInfo placeItems_getterinfo = {
  { get_placeItems },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo placeItems_setterinfo = {
  { (JSJitGetterOp)set_placeItems },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_positionTry(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_position_try);
}

MOZ_CAN_RUN_SCRIPT static bool
set_positionTry(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_position_try);
}

static const JSJitInfo positionTry_getterinfo = {
  { get_positionTry },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo positionTry_setterinfo = {
  { (JSJitGetterOp)set_positionTry },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_inset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset);
}

MOZ_CAN_RUN_SCRIPT static bool
set_inset(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset);
}

static const JSJitInfo inset_getterinfo = {
  { get_inset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo inset_setterinfo = {
  { (JSJitGetterOp)set_inset },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_insetBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset_block);
}

MOZ_CAN_RUN_SCRIPT static bool
set_insetBlock(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset_block);
}

static const JSJitInfo insetBlock_getterinfo = {
  { get_insetBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo insetBlock_setterinfo = {
  { (JSJitGetterOp)set_insetBlock },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_insetInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset_inline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_insetInline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_inset_inline);
}

static const JSJitInfo insetInline_getterinfo = {
  { get_insetInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo insetInline_setterinfo = {
  { (JSJitGetterOp)set_insetInline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_containIntrinsicSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_contain_intrinsic_size);
}

MOZ_CAN_RUN_SCRIPT static bool
set_containIntrinsicSize(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_contain_intrinsic_size);
}

static const JSJitInfo containIntrinsicSize_getterinfo = {
  { get_containIntrinsicSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo containIntrinsicSize_setterinfo = {
  { (JSJitGetterOp)set_containIntrinsicSize },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_mask(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask);
}

MOZ_CAN_RUN_SCRIPT static bool
set_mask(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask);
}

static const JSJitInfo mask_getterinfo = {
  { get_mask },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo mask_setterinfo = {
  { (JSJitGetterOp)set_mask },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_maskPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_position);
}

MOZ_CAN_RUN_SCRIPT static bool
set_maskPosition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_mask_position);
}

static const JSJitInfo maskPosition_getterinfo = {
  { get_maskPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo maskPosition_setterinfo = {
  { (JSJitGetterOp)set_maskPosition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_textDecoration(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration);
}

MOZ_CAN_RUN_SCRIPT static bool
set_textDecoration(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_text_decoration);
}

static const JSJitInfo textDecoration_getterinfo = {
  { get_textDecoration },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo textDecoration_setterinfo = {
  { (JSJitGetterOp)set_textDecoration },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_transition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition);
}

MOZ_CAN_RUN_SCRIPT static bool
set_transition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition);
}

static const JSJitInfo transition_getterinfo = {
  { get_transition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo transition_setterinfo = {
  { (JSJitGetterOp)set_transition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_animation(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation);
}

MOZ_CAN_RUN_SCRIPT static bool
set_animation(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation);
}

static const JSJitInfo animation_getterinfo = {
  { get_animation },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo animation_setterinfo = {
  { (JSJitGetterOp)set_animation },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_scrollTimeline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_timeline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_scrollTimeline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_scroll_timeline);
}

static const JSJitInfo scrollTimeline_getterinfo = {
  { get_scrollTimeline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo scrollTimeline_setterinfo = {
  { (JSJitGetterOp)set_scrollTimeline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_viewTimeline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_view_timeline);
}

MOZ_CAN_RUN_SCRIPT static bool
set_viewTimeline(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_view_timeline);
}

static const JSJitInfo viewTimeline_getterinfo = {
  { get_viewTimeline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo viewTimeline_setterinfo = {
  { (JSJitGetterOp)set_viewTimeline },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_all(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_all);
}

MOZ_CAN_RUN_SCRIPT static bool
set_all(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_all);
}

static const JSJitInfo all_getterinfo = {
  { get_all },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo all_setterinfo = {
  { (JSJitGetterOp)set_all },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozTransform(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozTransform(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform);
}

static const JSJitInfo MozTransform_getterinfo = {
  { get_MozTransform },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozTransform_setterinfo = {
  { (JSJitGetterOp)set_MozTransform },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozPerspective(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_perspective);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozPerspective(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_perspective);
}

static const JSJitInfo MozPerspective_getterinfo = {
  { get_MozPerspective },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozPerspective_setterinfo = {
  { (JSJitGetterOp)set_MozPerspective },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozPerspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_perspective_origin);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozPerspectiveOrigin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_perspective_origin);
}

static const JSJitInfo MozPerspectiveOrigin_getterinfo = {
  { get_MozPerspectiveOrigin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozPerspectiveOrigin_setterinfo = {
  { (JSJitGetterOp)set_MozPerspectiveOrigin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozBackfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_backface_visibility);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozBackfaceVisibility(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_backface_visibility);
}

static const JSJitInfo MozBackfaceVisibility_getterinfo = {
  { get_MozBackfaceVisibility },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozBackfaceVisibility_setterinfo = {
  { (JSJitGetterOp)set_MozBackfaceVisibility },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozTransformStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform_style);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozTransformStyle(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform_style);
}

static const JSJitInfo MozTransformStyle_getterinfo = {
  { get_MozTransformStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozTransformStyle_setterinfo = {
  { (JSJitGetterOp)set_MozTransformStyle },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozTransformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform_origin);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozTransformOrigin(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transform_origin);
}

static const JSJitInfo MozTransformOrigin_getterinfo = {
  { get_MozTransformOrigin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozTransformOrigin_setterinfo = {
  { (JSJitGetterOp)set_MozTransformOrigin },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozAppearance(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_appearance);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozAppearance(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_appearance);
}

static const JSJitInfo MozAppearance_getterinfo = {
  { get_MozAppearance },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozAppearance_setterinfo = {
  { (JSJitGetterOp)set_MozAppearance },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozFontFeatureSettings(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_feature_settings);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozFontFeatureSettings(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_feature_settings);
}

static const JSJitInfo MozFontFeatureSettings_getterinfo = {
  { get_MozFontFeatureSettings },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozFontFeatureSettings_setterinfo = {
  { (JSJitGetterOp)set_MozFontFeatureSettings },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozFontLanguageOverride(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_language_override);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozFontLanguageOverride(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_font_language_override);
}

static const JSJitInfo MozFontLanguageOverride_getterinfo = {
  { get_MozFontLanguageOverride },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozFontLanguageOverride_setterinfo = {
  { (JSJitGetterOp)set_MozFontLanguageOverride },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozBoxSizing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_box_sizing);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozBoxSizing(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_box_sizing);
}

static const JSJitInfo MozBoxSizing_getterinfo = {
  { get_MozBoxSizing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozBoxSizing_setterinfo = {
  { (JSJitGetterOp)set_MozBoxSizing },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozTransitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_duration);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozTransitionDuration(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_duration);
}

static const JSJitInfo MozTransitionDuration_getterinfo = {
  { get_MozTransitionDuration },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozTransitionDuration_setterinfo = {
  { (JSJitGetterOp)set_MozTransitionDuration },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozTransitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_timing_function);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozTransitionTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_timing_function);
}

static const JSJitInfo MozTransitionTimingFunction_getterinfo = {
  { get_MozTransitionTimingFunction },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozTransitionTimingFunction_setterinfo = {
  { (JSJitGetterOp)set_MozTransitionTimingFunction },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozTransitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_property);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozTransitionProperty(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_property);
}

static const JSJitInfo MozTransitionProperty_getterinfo = {
  { get_MozTransitionProperty },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozTransitionProperty_setterinfo = {
  { (JSJitGetterOp)set_MozTransitionProperty },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozTransitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_delay);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozTransitionDelay(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition_delay);
}

static const JSJitInfo MozTransitionDelay_getterinfo = {
  { get_MozTransitionDelay },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozTransitionDelay_setterinfo = {
  { (JSJitGetterOp)set_MozTransitionDelay },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozAnimationName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_name);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozAnimationName(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_name);
}

static const JSJitInfo MozAnimationName_getterinfo = {
  { get_MozAnimationName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozAnimationName_setterinfo = {
  { (JSJitGetterOp)set_MozAnimationName },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozAnimationDuration(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_duration);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozAnimationDuration(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_duration);
}

static const JSJitInfo MozAnimationDuration_getterinfo = {
  { get_MozAnimationDuration },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozAnimationDuration_setterinfo = {
  { (JSJitGetterOp)set_MozAnimationDuration },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozAnimationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_timing_function);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozAnimationTimingFunction(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_timing_function);
}

static const JSJitInfo MozAnimationTimingFunction_getterinfo = {
  { get_MozAnimationTimingFunction },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozAnimationTimingFunction_setterinfo = {
  { (JSJitGetterOp)set_MozAnimationTimingFunction },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozAnimationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_iteration_count);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozAnimationIterationCount(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_iteration_count);
}

static const JSJitInfo MozAnimationIterationCount_getterinfo = {
  { get_MozAnimationIterationCount },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozAnimationIterationCount_setterinfo = {
  { (JSJitGetterOp)set_MozAnimationIterationCount },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozAnimationDirection(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_direction);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozAnimationDirection(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_direction);
}

static const JSJitInfo MozAnimationDirection_getterinfo = {
  { get_MozAnimationDirection },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozAnimationDirection_setterinfo = {
  { (JSJitGetterOp)set_MozAnimationDirection },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozAnimationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_play_state);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozAnimationPlayState(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_play_state);
}

static const JSJitInfo MozAnimationPlayState_getterinfo = {
  { get_MozAnimationPlayState },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozAnimationPlayState_setterinfo = {
  { (JSJitGetterOp)set_MozAnimationPlayState },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozAnimationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_fill_mode);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozAnimationFillMode(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_fill_mode);
}

static const JSJitInfo MozAnimationFillMode_getterinfo = {
  { get_MozAnimationFillMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozAnimationFillMode_setterinfo = {
  { (JSJitGetterOp)set_MozAnimationFillMode },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozAnimationDelay(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_delay);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozAnimationDelay(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation_delay);
}

static const JSJitInfo MozAnimationDelay_getterinfo = {
  { get_MozAnimationDelay },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozAnimationDelay_setterinfo = {
  { (JSJitGetterOp)set_MozAnimationDelay },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozBorderImage(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozBorderImage(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_border_image);
}

static const JSJitInfo MozBorderImage_getterinfo = {
  { get_MozBorderImage },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozBorderImage_setterinfo = {
  { (JSJitGetterOp)set_MozBorderImage },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozTransition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozTransition(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_transition);
}

static const JSJitInfo MozTransition_getterinfo = {
  { get_MozTransition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozTransition_setterinfo = {
  { (JSJitGetterOp)set_MozTransition },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_CAN_RUN_SCRIPT static bool
get_MozAnimation(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitGetterCallArgs args)
{
  return CSSStyleProperties_Binding::GetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation);
}

MOZ_CAN_RUN_SCRIPT static bool
set_MozAnimation(JSContext* cx, JS::Handle<JSObject*> obj, void* void_self, JSJitSetterCallArgs args)
{
  return CSSStyleProperties_Binding::SetPropertyValue(cx, obj, void_self, args, eCSSProperty_animation);
}

static const JSJitInfo MozAnimation_getterinfo = {
  { get_MozAnimation },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Getter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_STRING,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};
static const JSJitInfo MozAnimation_setterinfo = {
  { (JSJitGetterOp)set_MozAnimation },
  { prototypes::id::CSSStyleProperties },
  { PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth },
  JSJitInfo::Setter,
  JSJitInfo::AliasEverything, /* aliasSet.  Not relevant for setters. */
  JSVAL_TYPE_UNDEFINED,  /* returnType.  Not relevant for setters. */
  false,  /* isInfallible. False in setters. */
  false,  /* isMovable.  Not relevant for setters. */
  false, /* isEliminatable.  Not relevant for setters. */
  false, /* isAlwaysInSlot.  Only relevant for getters. */
  false, /* isLazilyCachedInSlot.  Only relevant for getters. */
  false,  /* isTypedMethod.  Only relevant for methods. */
  0   /* Reserved slot index, if we're stored in a slot, else 0. */
};

MOZ_GLOBINIT static const JSFunctionSpec sMethods_specs[] = {
  JS_SYM_FNSPEC(iterator, nullptr, nullptr, 0, 0, "$ArrayValues"),
  JS_FS_END
};


static const Prefable<const JSFunctionSpec> sMethods[] = {
  { nullptr, &sMethods_specs[0] },
  { nullptr, nullptr }
};

static_assert(1 <= 1ull << NUM_BITS_PROPERTY_INFO_PREF_INDEX,
    "We have a prefable index that is >= (1 << NUM_BITS_PROPERTY_INFO_PREF_INDEX)");
static_assert(1 <= 1ull << NUM_BITS_PROPERTY_INFO_SPEC_INDEX,
    "We have a spec index that is >= (1 << NUM_BITS_PROPERTY_INFO_SPEC_INDEX)");

MOZ_GLOBINIT static const JSPropertySpec sAttributes_specs[] = {
  JSPropertySpec::nativeAccessors("alignItems", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignItems_getterinfo, GenericSetter<NormalThisPolicy>, &alignItems_setterinfo),
  JSPropertySpec::nativeAccessors("align-items", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignItems_getterinfo, GenericSetter<NormalThisPolicy>, &alignItems_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAlignItems", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignItems_getterinfo, GenericSetter<NormalThisPolicy>, &alignItems_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-align-items", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignItems_getterinfo, GenericSetter<NormalThisPolicy>, &alignItems_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAlignItems", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignItems_getterinfo, GenericSetter<NormalThisPolicy>, &alignItems_setterinfo),
  JSPropertySpec::nativeAccessors("aspectRatio", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &aspectRatio_getterinfo, GenericSetter<NormalThisPolicy>, &aspectRatio_setterinfo),
  JSPropertySpec::nativeAccessors("aspect-ratio", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &aspectRatio_getterinfo, GenericSetter<NormalThisPolicy>, &aspectRatio_setterinfo),
  JSPropertySpec::nativeAccessors("backfaceVisibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &backfaceVisibility_setterinfo),
  JSPropertySpec::nativeAccessors("backface-visibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &backfaceVisibility_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBackfaceVisibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &backfaceVisibility_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-backface-visibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &backfaceVisibility_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBackfaceVisibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &backfaceVisibility_setterinfo),
  JSPropertySpec::nativeAccessors("baselineSource", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &baselineSource_getterinfo, GenericSetter<NormalThisPolicy>, &baselineSource_setterinfo),
  JSPropertySpec::nativeAccessors("baseline-source", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &baselineSource_getterinfo, GenericSetter<NormalThisPolicy>, &baselineSource_setterinfo),
  JSPropertySpec::nativeAccessors("borderCollapse", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderCollapse_getterinfo, GenericSetter<NormalThisPolicy>, &borderCollapse_setterinfo),
  JSPropertySpec::nativeAccessors("border-collapse", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderCollapse_getterinfo, GenericSetter<NormalThisPolicy>, &borderCollapse_setterinfo),
  JSPropertySpec::nativeAccessors("borderImageRepeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageRepeat_setterinfo),
  JSPropertySpec::nativeAccessors("border-image-repeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageRepeat_setterinfo),
  JSPropertySpec::nativeAccessors("boxDecorationBreak", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxDecorationBreak_getterinfo, GenericSetter<NormalThisPolicy>, &boxDecorationBreak_setterinfo),
  JSPropertySpec::nativeAccessors("box-decoration-break", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxDecorationBreak_getterinfo, GenericSetter<NormalThisPolicy>, &boxDecorationBreak_setterinfo),
  JSPropertySpec::nativeAccessors("boxSizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &boxSizing_setterinfo),
  JSPropertySpec::nativeAccessors("box-sizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &boxSizing_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBoxSizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &boxSizing_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-box-sizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &boxSizing_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBoxSizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &boxSizing_setterinfo),
  JSPropertySpec::nativeAccessors("breakInside", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &breakInside_getterinfo, GenericSetter<NormalThisPolicy>, &breakInside_setterinfo),
  JSPropertySpec::nativeAccessors("break-inside", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &breakInside_getterinfo, GenericSetter<NormalThisPolicy>, &breakInside_setterinfo),
  JSPropertySpec::nativeAccessors("captionSide", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &captionSide_getterinfo, GenericSetter<NormalThisPolicy>, &captionSide_setterinfo),
  JSPropertySpec::nativeAccessors("caption-side", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &captionSide_getterinfo, GenericSetter<NormalThisPolicy>, &captionSide_setterinfo),
  JSPropertySpec::nativeAccessors("clear", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clear_getterinfo, GenericSetter<NormalThisPolicy>, &clear_setterinfo),
  JSPropertySpec::nativeAccessors("colorInterpolation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &colorInterpolation_getterinfo, GenericSetter<NormalThisPolicy>, &colorInterpolation_setterinfo),
  JSPropertySpec::nativeAccessors("color-interpolation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &colorInterpolation_getterinfo, GenericSetter<NormalThisPolicy>, &colorInterpolation_setterinfo),
  JSPropertySpec::nativeAccessors("colorInterpolationFilters", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &colorInterpolationFilters_getterinfo, GenericSetter<NormalThisPolicy>, &colorInterpolationFilters_setterinfo),
  JSPropertySpec::nativeAccessors("color-interpolation-filters", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &colorInterpolationFilters_getterinfo, GenericSetter<NormalThisPolicy>, &colorInterpolationFilters_setterinfo),
  JSPropertySpec::nativeAccessors("columnCount", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnCount_getterinfo, GenericSetter<NormalThisPolicy>, &columnCount_setterinfo),
  JSPropertySpec::nativeAccessors("column-count", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnCount_getterinfo, GenericSetter<NormalThisPolicy>, &columnCount_setterinfo),
  JSPropertySpec::nativeAccessors("columnFill", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnFill_getterinfo, GenericSetter<NormalThisPolicy>, &columnFill_setterinfo),
  JSPropertySpec::nativeAccessors("column-fill", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnFill_getterinfo, GenericSetter<NormalThisPolicy>, &columnFill_setterinfo),
  JSPropertySpec::nativeAccessors("columnSpan", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnSpan_getterinfo, GenericSetter<NormalThisPolicy>, &columnSpan_setterinfo),
  JSPropertySpec::nativeAccessors("column-span", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnSpan_getterinfo, GenericSetter<NormalThisPolicy>, &columnSpan_setterinfo),
  JSPropertySpec::nativeAccessors("contain", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &contain_getterinfo, GenericSetter<NormalThisPolicy>, &contain_setterinfo),
  JSPropertySpec::nativeAccessors("containerType", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containerType_getterinfo, GenericSetter<NormalThisPolicy>, &containerType_setterinfo),
  JSPropertySpec::nativeAccessors("container-type", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containerType_getterinfo, GenericSetter<NormalThisPolicy>, &containerType_setterinfo),
  JSPropertySpec::nativeAccessors("contentVisibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &contentVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &contentVisibility_setterinfo),
  JSPropertySpec::nativeAccessors("content-visibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &contentVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &contentVisibility_setterinfo),
  JSPropertySpec::nativeAccessors("direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &direction_getterinfo, GenericSetter<NormalThisPolicy>, &direction_setterinfo),
  JSPropertySpec::nativeAccessors("display", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &display_getterinfo, GenericSetter<NormalThisPolicy>, &display_setterinfo),
  JSPropertySpec::nativeAccessors("dominantBaseline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &dominantBaseline_getterinfo, GenericSetter<NormalThisPolicy>, &dominantBaseline_setterinfo),
  JSPropertySpec::nativeAccessors("dominant-baseline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &dominantBaseline_getterinfo, GenericSetter<NormalThisPolicy>, &dominantBaseline_setterinfo),
  JSPropertySpec::nativeAccessors("emptyCells", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &emptyCells_getterinfo, GenericSetter<NormalThisPolicy>, &emptyCells_setterinfo),
  JSPropertySpec::nativeAccessors("empty-cells", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &emptyCells_getterinfo, GenericSetter<NormalThisPolicy>, &emptyCells_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("fieldSizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fieldSizing_getterinfo, GenericSetter<NormalThisPolicy>, &fieldSizing_setterinfo),
  JSPropertySpec::nativeAccessors("field-sizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fieldSizing_getterinfo, GenericSetter<NormalThisPolicy>, &fieldSizing_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("flexDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexDirection_getterinfo, GenericSetter<NormalThisPolicy>, &flexDirection_setterinfo),
  JSPropertySpec::nativeAccessors("flex-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexDirection_getterinfo, GenericSetter<NormalThisPolicy>, &flexDirection_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitFlexDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexDirection_getterinfo, GenericSetter<NormalThisPolicy>, &flexDirection_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-flex-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexDirection_getterinfo, GenericSetter<NormalThisPolicy>, &flexDirection_setterinfo),
  JSPropertySpec::nativeAccessors("webkitFlexDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexDirection_getterinfo, GenericSetter<NormalThisPolicy>, &flexDirection_setterinfo),
  JSPropertySpec::nativeAccessors("flexWrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexWrap_getterinfo, GenericSetter<NormalThisPolicy>, &flexWrap_setterinfo),
  JSPropertySpec::nativeAccessors("flex-wrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexWrap_getterinfo, GenericSetter<NormalThisPolicy>, &flexWrap_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitFlexWrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexWrap_getterinfo, GenericSetter<NormalThisPolicy>, &flexWrap_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-flex-wrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexWrap_getterinfo, GenericSetter<NormalThisPolicy>, &flexWrap_setterinfo),
  JSPropertySpec::nativeAccessors("webkitFlexWrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexWrap_getterinfo, GenericSetter<NormalThisPolicy>, &flexWrap_setterinfo),
  JSPropertySpec::nativeAccessors("cssFloat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &cssFloat_getterinfo, GenericSetter<NormalThisPolicy>, &cssFloat_setterinfo),
  JSPropertySpec::nativeAccessors("float", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &cssFloat_getterinfo, GenericSetter<NormalThisPolicy>, &cssFloat_setterinfo),
  JSPropertySpec::nativeAccessors("fontKerning", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontKerning_getterinfo, GenericSetter<NormalThisPolicy>, &fontKerning_setterinfo),
  JSPropertySpec::nativeAccessors("font-kerning", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontKerning_getterinfo, GenericSetter<NormalThisPolicy>, &fontKerning_setterinfo),
  JSPropertySpec::nativeAccessors("fontLanguageOverride", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontLanguageOverride_getterinfo, GenericSetter<NormalThisPolicy>, &fontLanguageOverride_setterinfo),
  JSPropertySpec::nativeAccessors("font-language-override", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontLanguageOverride_getterinfo, GenericSetter<NormalThisPolicy>, &fontLanguageOverride_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("fontOpticalSizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontOpticalSizing_getterinfo, GenericSetter<NormalThisPolicy>, &fontOpticalSizing_setterinfo),
  JSPropertySpec::nativeAccessors("font-optical-sizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontOpticalSizing_getterinfo, GenericSetter<NormalThisPolicy>, &fontOpticalSizing_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("fontSizeAdjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &fontSizeAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("font-size-adjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &fontSizeAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("fontStretch", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontStretch_getterinfo, GenericSetter<NormalThisPolicy>, &fontStretch_setterinfo),
  JSPropertySpec::nativeAccessors("font-stretch", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontStretch_getterinfo, GenericSetter<NormalThisPolicy>, &fontStretch_setterinfo),
  JSPropertySpec::nativeAccessors("fontStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontStyle_getterinfo, GenericSetter<NormalThisPolicy>, &fontStyle_setterinfo),
  JSPropertySpec::nativeAccessors("font-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontStyle_getterinfo, GenericSetter<NormalThisPolicy>, &fontStyle_setterinfo),
  JSPropertySpec::nativeAccessors("fontSynthesisStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSynthesisStyle_getterinfo, GenericSetter<NormalThisPolicy>, &fontSynthesisStyle_setterinfo),
  JSPropertySpec::nativeAccessors("font-synthesis-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSynthesisStyle_getterinfo, GenericSetter<NormalThisPolicy>, &fontSynthesisStyle_setterinfo),
  JSPropertySpec::nativeAccessors("fontVariantCaps", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantCaps_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantCaps_setterinfo),
  JSPropertySpec::nativeAccessors("font-variant-caps", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantCaps_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantCaps_setterinfo),
  JSPropertySpec::nativeAccessors("fontVariantEastAsian", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantEastAsian_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantEastAsian_setterinfo),
  JSPropertySpec::nativeAccessors("font-variant-east-asian", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantEastAsian_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantEastAsian_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("fontVariantEmoji", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantEmoji_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantEmoji_setterinfo),
  JSPropertySpec::nativeAccessors("font-variant-emoji", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantEmoji_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantEmoji_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("fontVariantLigatures", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantLigatures_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantLigatures_setterinfo),
  JSPropertySpec::nativeAccessors("font-variant-ligatures", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantLigatures_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantLigatures_setterinfo),
  JSPropertySpec::nativeAccessors("fontVariantNumeric", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantNumeric_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantNumeric_setterinfo),
  JSPropertySpec::nativeAccessors("font-variant-numeric", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantNumeric_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantNumeric_setterinfo),
  JSPropertySpec::nativeAccessors("fontVariantPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantPosition_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantPosition_setterinfo),
  JSPropertySpec::nativeAccessors("font-variant-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantPosition_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantPosition_setterinfo),
  JSPropertySpec::nativeAccessors("fontWeight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontWeight_getterinfo, GenericSetter<NormalThisPolicy>, &fontWeight_setterinfo),
  JSPropertySpec::nativeAccessors("font-weight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontWeight_getterinfo, GenericSetter<NormalThisPolicy>, &fontWeight_setterinfo),
  JSPropertySpec::nativeAccessors("forcedColorAdjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &forcedColorAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &forcedColorAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("forced-color-adjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &forcedColorAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &forcedColorAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("gridAutoFlow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridAutoFlow_getterinfo, GenericSetter<NormalThisPolicy>, &gridAutoFlow_setterinfo),
  JSPropertySpec::nativeAccessors("grid-auto-flow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridAutoFlow_getterinfo, GenericSetter<NormalThisPolicy>, &gridAutoFlow_setterinfo),
  JSPropertySpec::nativeAccessors("hyphens", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &hyphens_getterinfo, GenericSetter<NormalThisPolicy>, &hyphens_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-hyphens", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &hyphens_getterinfo, GenericSetter<NormalThisPolicy>, &hyphens_setterinfo),
  JSPropertySpec::nativeAccessors("MozHyphens", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &hyphens_getterinfo, GenericSetter<NormalThisPolicy>, &hyphens_setterinfo),
  JSPropertySpec::nativeAccessors("imageOrientation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &imageOrientation_getterinfo, GenericSetter<NormalThisPolicy>, &imageOrientation_setterinfo),
  JSPropertySpec::nativeAccessors("image-orientation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &imageOrientation_getterinfo, GenericSetter<NormalThisPolicy>, &imageOrientation_setterinfo),
  JSPropertySpec::nativeAccessors("imageRendering", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &imageRendering_getterinfo, GenericSetter<NormalThisPolicy>, &imageRendering_setterinfo),
  JSPropertySpec::nativeAccessors("image-rendering", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &imageRendering_getterinfo, GenericSetter<NormalThisPolicy>, &imageRendering_setterinfo),
  JSPropertySpec::nativeAccessors("imeMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &imeMode_getterinfo, GenericSetter<NormalThisPolicy>, &imeMode_setterinfo),
  JSPropertySpec::nativeAccessors("ime-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &imeMode_getterinfo, GenericSetter<NormalThisPolicy>, &imeMode_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("initialLetter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &initialLetter_getterinfo, GenericSetter<NormalThisPolicy>, &initialLetter_setterinfo),
  JSPropertySpec::nativeAccessors("initial-letter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &initialLetter_getterinfo, GenericSetter<NormalThisPolicy>, &initialLetter_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("isolation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &isolation_getterinfo, GenericSetter<NormalThisPolicy>, &isolation_setterinfo),
  JSPropertySpec::nativeAccessors("justifyItems", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifyItems_getterinfo, GenericSetter<NormalThisPolicy>, &justifyItems_setterinfo),
  JSPropertySpec::nativeAccessors("justify-items", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifyItems_getterinfo, GenericSetter<NormalThisPolicy>, &justifyItems_setterinfo),
  JSPropertySpec::nativeAccessors("lineBreak", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &lineBreak_getterinfo, GenericSetter<NormalThisPolicy>, &lineBreak_setterinfo),
  JSPropertySpec::nativeAccessors("line-break", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &lineBreak_getterinfo, GenericSetter<NormalThisPolicy>, &lineBreak_setterinfo),
  JSPropertySpec::nativeAccessors("listStylePosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStylePosition_getterinfo, GenericSetter<NormalThisPolicy>, &listStylePosition_setterinfo),
  JSPropertySpec::nativeAccessors("list-style-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStylePosition_getterinfo, GenericSetter<NormalThisPolicy>, &listStylePosition_setterinfo),
  JSPropertySpec::nativeAccessors("maskType", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskType_getterinfo, GenericSetter<NormalThisPolicy>, &maskType_setterinfo),
  JSPropertySpec::nativeAccessors("mask-type", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskType_getterinfo, GenericSetter<NormalThisPolicy>, &maskType_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("masonryAutoFlow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &masonryAutoFlow_getterinfo, GenericSetter<NormalThisPolicy>, &masonryAutoFlow_setterinfo),
  JSPropertySpec::nativeAccessors("masonry-auto-flow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &masonryAutoFlow_getterinfo, GenericSetter<NormalThisPolicy>, &masonryAutoFlow_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("mathDepth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mathDepth_getterinfo, GenericSetter<NormalThisPolicy>, &mathDepth_setterinfo),
  JSPropertySpec::nativeAccessors("math-depth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mathDepth_getterinfo, GenericSetter<NormalThisPolicy>, &mathDepth_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("mathShift", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mathShift_getterinfo, GenericSetter<NormalThisPolicy>, &mathShift_setterinfo),
  JSPropertySpec::nativeAccessors("math-shift", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mathShift_getterinfo, GenericSetter<NormalThisPolicy>, &mathShift_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("mathStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mathStyle_getterinfo, GenericSetter<NormalThisPolicy>, &mathStyle_setterinfo),
  JSPropertySpec::nativeAccessors("math-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mathStyle_getterinfo, GenericSetter<NormalThisPolicy>, &mathStyle_setterinfo),
  JSPropertySpec::nativeAccessors("mixBlendMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mixBlendMode_getterinfo, GenericSetter<NormalThisPolicy>, &mixBlendMode_setterinfo),
  JSPropertySpec::nativeAccessors("mix-blend-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mixBlendMode_getterinfo, GenericSetter<NormalThisPolicy>, &mixBlendMode_setterinfo),
  JSPropertySpec::nativeAccessors("MozBoxAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxAlign_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxAlign_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-box-align", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxAlign_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxAlign_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBoxAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxAlign_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxAlign_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-box-align", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxAlign_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxAlign_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBoxAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxAlign_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxAlign_setterinfo),
  JSPropertySpec::nativeAccessors("MozBoxDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxDirection_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxDirection_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-box-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxDirection_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxDirection_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBoxDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxDirection_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxDirection_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-box-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxDirection_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxDirection_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBoxDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxDirection_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxDirection_setterinfo),
  JSPropertySpec::nativeAccessors("MozBoxOrient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrient_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrient_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-box-orient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrient_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrient_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBoxOrient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrient_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrient_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-box-orient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrient_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrient_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBoxOrient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrient_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrient_setterinfo),
  JSPropertySpec::nativeAccessors("MozBoxPack", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxPack_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxPack_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-box-pack", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxPack_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxPack_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBoxPack", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxPack_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxPack_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-box-pack", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxPack_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxPack_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBoxPack", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxPack_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxPack_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozControlCharacterVisibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozControlCharacterVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &MozControlCharacterVisibility_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-control-character-visibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozControlCharacterVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &MozControlCharacterVisibility_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozFloatEdge", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozFloatEdge_getterinfo, GenericSetter<NormalThisPolicy>, &MozFloatEdge_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-float-edge", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozFloatEdge_getterinfo, GenericSetter<NormalThisPolicy>, &MozFloatEdge_setterinfo),
  JSPropertySpec::nativeAccessors("MozOrient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOrient_getterinfo, GenericSetter<NormalThisPolicy>, &MozOrient_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-orient", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOrient_getterinfo, GenericSetter<NormalThisPolicy>, &MozOrient_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozOsxFontSmoothing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOsxFontSmoothing_getterinfo, GenericSetter<NormalThisPolicy>, &MozOsxFontSmoothing_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-osx-font-smoothing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOsxFontSmoothing_getterinfo, GenericSetter<NormalThisPolicy>, &MozOsxFontSmoothing_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitFontSmoothing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOsxFontSmoothing_getterinfo, GenericSetter<NormalThisPolicy>, &MozOsxFontSmoothing_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-font-smoothing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOsxFontSmoothing_getterinfo, GenericSetter<NormalThisPolicy>, &MozOsxFontSmoothing_setterinfo),
  JSPropertySpec::nativeAccessors("webkitFontSmoothing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozOsxFontSmoothing_getterinfo, GenericSetter<NormalThisPolicy>, &MozOsxFontSmoothing_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozTextSizeAdjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTextSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &MozTextSizeAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-text-size-adjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTextSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &MozTextSizeAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTextSizeAdjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTextSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &MozTextSizeAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-text-size-adjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTextSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &MozTextSizeAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTextSizeAdjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTextSizeAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &MozTextSizeAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("objectFit", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &objectFit_getterinfo, GenericSetter<NormalThisPolicy>, &objectFit_setterinfo),
  JSPropertySpec::nativeAccessors("object-fit", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &objectFit_getterinfo, GenericSetter<NormalThisPolicy>, &objectFit_setterinfo),
  JSPropertySpec::nativeAccessors("offsetRotate", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetRotate_getterinfo, GenericSetter<NormalThisPolicy>, &offsetRotate_setterinfo),
  JSPropertySpec::nativeAccessors("offset-rotate", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetRotate_getterinfo, GenericSetter<NormalThisPolicy>, &offsetRotate_setterinfo),
  JSPropertySpec::nativeAccessors("outlineStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineStyle_getterinfo, GenericSetter<NormalThisPolicy>, &outlineStyle_setterinfo),
  JSPropertySpec::nativeAccessors("outline-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineStyle_getterinfo, GenericSetter<NormalThisPolicy>, &outlineStyle_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("overflowAnchor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowAnchor_getterinfo, GenericSetter<NormalThisPolicy>, &overflowAnchor_setterinfo),
  JSPropertySpec::nativeAccessors("overflow-anchor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowAnchor_getterinfo, GenericSetter<NormalThisPolicy>, &overflowAnchor_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("overflowWrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowWrap_getterinfo, GenericSetter<NormalThisPolicy>, &overflowWrap_setterinfo),
  JSPropertySpec::nativeAccessors("overflow-wrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowWrap_getterinfo, GenericSetter<NormalThisPolicy>, &overflowWrap_setterinfo),
  JSPropertySpec::nativeAccessors("word-wrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowWrap_getterinfo, GenericSetter<NormalThisPolicy>, &overflowWrap_setterinfo),
  JSPropertySpec::nativeAccessors("wordWrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowWrap_getterinfo, GenericSetter<NormalThisPolicy>, &overflowWrap_setterinfo),
  JSPropertySpec::nativeAccessors("paintOrder", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paintOrder_getterinfo, GenericSetter<NormalThisPolicy>, &paintOrder_setterinfo),
  JSPropertySpec::nativeAccessors("paint-order", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paintOrder_getterinfo, GenericSetter<NormalThisPolicy>, &paintOrder_setterinfo),
  JSPropertySpec::nativeAccessors("pointerEvents", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pointerEvents_getterinfo, GenericSetter<NormalThisPolicy>, &pointerEvents_setterinfo),
  JSPropertySpec::nativeAccessors("pointer-events", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pointerEvents_getterinfo, GenericSetter<NormalThisPolicy>, &pointerEvents_setterinfo),
  JSPropertySpec::nativeAccessors("position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &position_getterinfo, GenericSetter<NormalThisPolicy>, &position_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("positionArea", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &positionArea_getterinfo, GenericSetter<NormalThisPolicy>, &positionArea_setterinfo),
  JSPropertySpec::nativeAccessors("position-area", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &positionArea_getterinfo, GenericSetter<NormalThisPolicy>, &positionArea_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("positionTryOrder", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &positionTryOrder_getterinfo, GenericSetter<NormalThisPolicy>, &positionTryOrder_setterinfo),
  JSPropertySpec::nativeAccessors("position-try-order", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &positionTryOrder_getterinfo, GenericSetter<NormalThisPolicy>, &positionTryOrder_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("positionVisibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &positionVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &positionVisibility_setterinfo),
  JSPropertySpec::nativeAccessors("position-visibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &positionVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &positionVisibility_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("printColorAdjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &printColorAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &printColorAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("print-color-adjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &printColorAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &printColorAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("color-adjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &printColorAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &printColorAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("colorAdjust", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &printColorAdjust_getterinfo, GenericSetter<NormalThisPolicy>, &printColorAdjust_setterinfo),
  JSPropertySpec::nativeAccessors("resize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &resize_getterinfo, GenericSetter<NormalThisPolicy>, &resize_setterinfo),
  JSPropertySpec::nativeAccessors("rubyAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rubyAlign_getterinfo, GenericSetter<NormalThisPolicy>, &rubyAlign_setterinfo),
  JSPropertySpec::nativeAccessors("ruby-align", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rubyAlign_getterinfo, GenericSetter<NormalThisPolicy>, &rubyAlign_setterinfo),
  JSPropertySpec::nativeAccessors("rubyPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rubyPosition_getterinfo, GenericSetter<NormalThisPolicy>, &rubyPosition_setterinfo),
  JSPropertySpec::nativeAccessors("ruby-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rubyPosition_getterinfo, GenericSetter<NormalThisPolicy>, &rubyPosition_setterinfo),
  JSPropertySpec::nativeAccessors("scrollBehavior", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollBehavior_getterinfo, GenericSetter<NormalThisPolicy>, &scrollBehavior_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-behavior", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollBehavior_getterinfo, GenericSetter<NormalThisPolicy>, &scrollBehavior_setterinfo),
  JSPropertySpec::nativeAccessors("scrollSnapAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapAlign_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapAlign_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-snap-align", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapAlign_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapAlign_setterinfo),
  JSPropertySpec::nativeAccessors("scrollSnapStop", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapStop_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapStop_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-snap-stop", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapStop_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapStop_setterinfo),
  JSPropertySpec::nativeAccessors("scrollSnapType", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapType_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapType_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-snap-type", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollSnapType_getterinfo, GenericSetter<NormalThisPolicy>, &scrollSnapType_setterinfo),
  JSPropertySpec::nativeAccessors("scrollbarGutter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollbarGutter_getterinfo, GenericSetter<NormalThisPolicy>, &scrollbarGutter_setterinfo),
  JSPropertySpec::nativeAccessors("scrollbar-gutter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollbarGutter_getterinfo, GenericSetter<NormalThisPolicy>, &scrollbarGutter_setterinfo),
  JSPropertySpec::nativeAccessors("scrollbarWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollbarWidth_getterinfo, GenericSetter<NormalThisPolicy>, &scrollbarWidth_setterinfo),
  JSPropertySpec::nativeAccessors("scrollbar-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollbarWidth_getterinfo, GenericSetter<NormalThisPolicy>, &scrollbarWidth_setterinfo),
  JSPropertySpec::nativeAccessors("shapeRendering", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeRendering_getterinfo, GenericSetter<NormalThisPolicy>, &shapeRendering_setterinfo),
  JSPropertySpec::nativeAccessors("shape-rendering", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeRendering_getterinfo, GenericSetter<NormalThisPolicy>, &shapeRendering_setterinfo),
  JSPropertySpec::nativeAccessors("strokeLinecap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeLinecap_getterinfo, GenericSetter<NormalThisPolicy>, &strokeLinecap_setterinfo),
  JSPropertySpec::nativeAccessors("stroke-linecap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeLinecap_getterinfo, GenericSetter<NormalThisPolicy>, &strokeLinecap_setterinfo),
  JSPropertySpec::nativeAccessors("strokeLinejoin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeLinejoin_getterinfo, GenericSetter<NormalThisPolicy>, &strokeLinejoin_setterinfo),
  JSPropertySpec::nativeAccessors("stroke-linejoin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeLinejoin_getterinfo, GenericSetter<NormalThisPolicy>, &strokeLinejoin_setterinfo),
  JSPropertySpec::nativeAccessors("tableLayout", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &tableLayout_getterinfo, GenericSetter<NormalThisPolicy>, &tableLayout_setterinfo),
  JSPropertySpec::nativeAccessors("table-layout", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &tableLayout_getterinfo, GenericSetter<NormalThisPolicy>, &tableLayout_setterinfo),
  JSPropertySpec::nativeAccessors("textAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAlign_getterinfo, GenericSetter<NormalThisPolicy>, &textAlign_setterinfo),
  JSPropertySpec::nativeAccessors("text-align", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAlign_getterinfo, GenericSetter<NormalThisPolicy>, &textAlign_setterinfo),
  JSPropertySpec::nativeAccessors("textAlignLast", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAlignLast_getterinfo, GenericSetter<NormalThisPolicy>, &textAlignLast_setterinfo),
  JSPropertySpec::nativeAccessors("text-align-last", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAlignLast_getterinfo, GenericSetter<NormalThisPolicy>, &textAlignLast_setterinfo),
  JSPropertySpec::nativeAccessors("textAnchor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAnchor_getterinfo, GenericSetter<NormalThisPolicy>, &textAnchor_setterinfo),
  JSPropertySpec::nativeAccessors("text-anchor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAnchor_getterinfo, GenericSetter<NormalThisPolicy>, &textAnchor_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("textAutospace", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAutospace_getterinfo, GenericSetter<NormalThisPolicy>, &textAutospace_setterinfo),
  JSPropertySpec::nativeAccessors("text-autospace", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textAutospace_getterinfo, GenericSetter<NormalThisPolicy>, &textAutospace_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("textCombineUpright", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textCombineUpright_getterinfo, GenericSetter<NormalThisPolicy>, &textCombineUpright_setterinfo),
  JSPropertySpec::nativeAccessors("text-combine-upright", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textCombineUpright_getterinfo, GenericSetter<NormalThisPolicy>, &textCombineUpright_setterinfo),
  JSPropertySpec::nativeAccessors("textDecorationLine", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationLine_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationLine_setterinfo),
  JSPropertySpec::nativeAccessors("text-decoration-line", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationLine_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationLine_setterinfo),
  JSPropertySpec::nativeAccessors("textDecorationSkipInk", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationSkipInk_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationSkipInk_setterinfo),
  JSPropertySpec::nativeAccessors("text-decoration-skip-ink", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationSkipInk_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationSkipInk_setterinfo),
  JSPropertySpec::nativeAccessors("textDecorationStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationStyle_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationStyle_setterinfo),
  JSPropertySpec::nativeAccessors("text-decoration-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationStyle_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationStyle_setterinfo),
  JSPropertySpec::nativeAccessors("textEmphasisPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasisPosition_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasisPosition_setterinfo),
  JSPropertySpec::nativeAccessors("text-emphasis-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasisPosition_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasisPosition_setterinfo),
  JSPropertySpec::nativeAccessors("textJustify", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textJustify_getterinfo, GenericSetter<NormalThisPolicy>, &textJustify_setterinfo),
  JSPropertySpec::nativeAccessors("text-justify", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textJustify_getterinfo, GenericSetter<NormalThisPolicy>, &textJustify_setterinfo),
  JSPropertySpec::nativeAccessors("textOrientation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textOrientation_getterinfo, GenericSetter<NormalThisPolicy>, &textOrientation_setterinfo),
  JSPropertySpec::nativeAccessors("text-orientation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textOrientation_getterinfo, GenericSetter<NormalThisPolicy>, &textOrientation_setterinfo),
  JSPropertySpec::nativeAccessors("textRendering", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textRendering_getterinfo, GenericSetter<NormalThisPolicy>, &textRendering_setterinfo),
  JSPropertySpec::nativeAccessors("text-rendering", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textRendering_getterinfo, GenericSetter<NormalThisPolicy>, &textRendering_setterinfo),
  JSPropertySpec::nativeAccessors("textTransform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textTransform_getterinfo, GenericSetter<NormalThisPolicy>, &textTransform_setterinfo),
  JSPropertySpec::nativeAccessors("text-transform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textTransform_getterinfo, GenericSetter<NormalThisPolicy>, &textTransform_setterinfo),
  JSPropertySpec::nativeAccessors("textUnderlinePosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textUnderlinePosition_getterinfo, GenericSetter<NormalThisPolicy>, &textUnderlinePosition_setterinfo),
  JSPropertySpec::nativeAccessors("text-underline-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textUnderlinePosition_getterinfo, GenericSetter<NormalThisPolicy>, &textUnderlinePosition_setterinfo),
  JSPropertySpec::nativeAccessors("textWrapMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textWrapMode_getterinfo, GenericSetter<NormalThisPolicy>, &textWrapMode_setterinfo),
  JSPropertySpec::nativeAccessors("text-wrap-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textWrapMode_getterinfo, GenericSetter<NormalThisPolicy>, &textWrapMode_setterinfo),
  JSPropertySpec::nativeAccessors("textWrapStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textWrapStyle_getterinfo, GenericSetter<NormalThisPolicy>, &textWrapStyle_setterinfo),
  JSPropertySpec::nativeAccessors("text-wrap-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textWrapStyle_getterinfo, GenericSetter<NormalThisPolicy>, &textWrapStyle_setterinfo),
  JSPropertySpec::nativeAccessors("touchAction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &touchAction_getterinfo, GenericSetter<NormalThisPolicy>, &touchAction_setterinfo),
  JSPropertySpec::nativeAccessors("touch-action", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &touchAction_getterinfo, GenericSetter<NormalThisPolicy>, &touchAction_setterinfo),
  JSPropertySpec::nativeAccessors("transformBox", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformBox_getterinfo, GenericSetter<NormalThisPolicy>, &transformBox_setterinfo),
  JSPropertySpec::nativeAccessors("transform-box", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformBox_getterinfo, GenericSetter<NormalThisPolicy>, &transformBox_setterinfo),
  JSPropertySpec::nativeAccessors("transformStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &transformStyle_setterinfo),
  JSPropertySpec::nativeAccessors("transform-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &transformStyle_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTransformStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &transformStyle_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-transform-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &transformStyle_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTransformStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &transformStyle_setterinfo),
  JSPropertySpec::nativeAccessors("unicodeBidi", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &unicodeBidi_getterinfo, GenericSetter<NormalThisPolicy>, &unicodeBidi_setterinfo),
  JSPropertySpec::nativeAccessors("unicode-bidi", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &unicodeBidi_getterinfo, GenericSetter<NormalThisPolicy>, &unicodeBidi_setterinfo),
  JSPropertySpec::nativeAccessors("userSelect", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &userSelect_getterinfo, GenericSetter<NormalThisPolicy>, &userSelect_setterinfo),
  JSPropertySpec::nativeAccessors("user-select", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &userSelect_getterinfo, GenericSetter<NormalThisPolicy>, &userSelect_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-user-select", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &userSelect_getterinfo, GenericSetter<NormalThisPolicy>, &userSelect_setterinfo),
  JSPropertySpec::nativeAccessors("MozUserSelect", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &userSelect_getterinfo, GenericSetter<NormalThisPolicy>, &userSelect_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitUserSelect", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &userSelect_getterinfo, GenericSetter<NormalThisPolicy>, &userSelect_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-user-select", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &userSelect_getterinfo, GenericSetter<NormalThisPolicy>, &userSelect_setterinfo),
  JSPropertySpec::nativeAccessors("webkitUserSelect", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &userSelect_getterinfo, GenericSetter<NormalThisPolicy>, &userSelect_setterinfo),
  JSPropertySpec::nativeAccessors("vectorEffect", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &vectorEffect_getterinfo, GenericSetter<NormalThisPolicy>, &vectorEffect_setterinfo),
  JSPropertySpec::nativeAccessors("vector-effect", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &vectorEffect_getterinfo, GenericSetter<NormalThisPolicy>, &vectorEffect_setterinfo),
  JSPropertySpec::nativeAccessors("visibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &visibility_getterinfo, GenericSetter<NormalThisPolicy>, &visibility_setterinfo),
  JSPropertySpec::nativeAccessors("webkitLineClamp", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitLineClamp_getterinfo, GenericSetter<NormalThisPolicy>, &webkitLineClamp_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitLineClamp", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitLineClamp_getterinfo, GenericSetter<NormalThisPolicy>, &webkitLineClamp_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-line-clamp", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitLineClamp_getterinfo, GenericSetter<NormalThisPolicy>, &webkitLineClamp_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTextSecurity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextSecurity_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextSecurity_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTextSecurity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextSecurity_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextSecurity_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-text-security", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextSecurity_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextSecurity_setterinfo),
  JSPropertySpec::nativeAccessors("whiteSpaceCollapse", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &whiteSpaceCollapse_getterinfo, GenericSetter<NormalThisPolicy>, &whiteSpaceCollapse_setterinfo),
  JSPropertySpec::nativeAccessors("white-space-collapse", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &whiteSpaceCollapse_getterinfo, GenericSetter<NormalThisPolicy>, &whiteSpaceCollapse_setterinfo),
  JSPropertySpec::nativeAccessors("wordBreak", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &wordBreak_getterinfo, GenericSetter<NormalThisPolicy>, &wordBreak_setterinfo),
  JSPropertySpec::nativeAccessors("word-break", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &wordBreak_getterinfo, GenericSetter<NormalThisPolicy>, &wordBreak_setterinfo),
  JSPropertySpec::nativeAccessors("writingMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &writingMode_getterinfo, GenericSetter<NormalThisPolicy>, &writingMode_setterinfo),
  JSPropertySpec::nativeAccessors("writing-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &writingMode_getterinfo, GenericSetter<NormalThisPolicy>, &writingMode_setterinfo),
  JSPropertySpec::nativeAccessors("zIndex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &zIndex_getterinfo, GenericSetter<NormalThisPolicy>, &zIndex_setterinfo),
  JSPropertySpec::nativeAccessors("z-index", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &zIndex_getterinfo, GenericSetter<NormalThisPolicy>, &zIndex_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("zoom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &zoom_getterinfo, GenericSetter<NormalThisPolicy>, &zoom_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("appearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &appearance_getterinfo, GenericSetter<NormalThisPolicy>, &appearance_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAppearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &appearance_getterinfo, GenericSetter<NormalThisPolicy>, &appearance_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-appearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &appearance_getterinfo, GenericSetter<NormalThisPolicy>, &appearance_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAppearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &appearance_getterinfo, GenericSetter<NormalThisPolicy>, &appearance_setterinfo),
  JSPropertySpec::nativeAccessors("MozForceBrokenImageIcon", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozForceBrokenImageIcon_getterinfo, GenericSetter<NormalThisPolicy>, &MozForceBrokenImageIcon_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-force-broken-image-icon", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozForceBrokenImageIcon_getterinfo, GenericSetter<NormalThisPolicy>, &MozForceBrokenImageIcon_setterinfo),
  JSPropertySpec::nativeAccessors("breakAfter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &breakAfter_getterinfo, GenericSetter<NormalThisPolicy>, &breakAfter_setterinfo),
  JSPropertySpec::nativeAccessors("break-after", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &breakAfter_getterinfo, GenericSetter<NormalThisPolicy>, &breakAfter_setterinfo),
  JSPropertySpec::nativeAccessors("breakBefore", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &breakBefore_getterinfo, GenericSetter<NormalThisPolicy>, &breakBefore_setterinfo),
  JSPropertySpec::nativeAccessors("break-before", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &breakBefore_getterinfo, GenericSetter<NormalThisPolicy>, &breakBefore_setterinfo),
  JSPropertySpec::nativeAccessors("alignContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignContent_getterinfo, GenericSetter<NormalThisPolicy>, &alignContent_setterinfo),
  JSPropertySpec::nativeAccessors("align-content", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignContent_getterinfo, GenericSetter<NormalThisPolicy>, &alignContent_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAlignContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignContent_getterinfo, GenericSetter<NormalThisPolicy>, &alignContent_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-align-content", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignContent_getterinfo, GenericSetter<NormalThisPolicy>, &alignContent_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAlignContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignContent_getterinfo, GenericSetter<NormalThisPolicy>, &alignContent_setterinfo),
  JSPropertySpec::nativeAccessors("justifyContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifyContent_getterinfo, GenericSetter<NormalThisPolicy>, &justifyContent_setterinfo),
  JSPropertySpec::nativeAccessors("justify-content", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifyContent_getterinfo, GenericSetter<NormalThisPolicy>, &justifyContent_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitJustifyContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifyContent_getterinfo, GenericSetter<NormalThisPolicy>, &justifyContent_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-justify-content", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifyContent_getterinfo, GenericSetter<NormalThisPolicy>, &justifyContent_setterinfo),
  JSPropertySpec::nativeAccessors("webkitJustifyContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifyContent_getterinfo, GenericSetter<NormalThisPolicy>, &justifyContent_setterinfo),
  JSPropertySpec::nativeAccessors("clipRule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clipRule_getterinfo, GenericSetter<NormalThisPolicy>, &clipRule_setterinfo),
  JSPropertySpec::nativeAccessors("clip-rule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clipRule_getterinfo, GenericSetter<NormalThisPolicy>, &clipRule_setterinfo),
  JSPropertySpec::nativeAccessors("fillRule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fillRule_getterinfo, GenericSetter<NormalThisPolicy>, &fillRule_setterinfo),
  JSPropertySpec::nativeAccessors("fill-rule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fillRule_getterinfo, GenericSetter<NormalThisPolicy>, &fillRule_setterinfo),
  JSPropertySpec::nativeAccessors("fillOpacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fillOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &fillOpacity_setterinfo),
  JSPropertySpec::nativeAccessors("fill-opacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fillOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &fillOpacity_setterinfo),
  JSPropertySpec::nativeAccessors("strokeOpacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &strokeOpacity_setterinfo),
  JSPropertySpec::nativeAccessors("stroke-opacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &strokeOpacity_setterinfo),
  JSPropertySpec::nativeAccessors("alignSelf", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignSelf_getterinfo, GenericSetter<NormalThisPolicy>, &alignSelf_setterinfo),
  JSPropertySpec::nativeAccessors("align-self", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignSelf_getterinfo, GenericSetter<NormalThisPolicy>, &alignSelf_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAlignSelf", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignSelf_getterinfo, GenericSetter<NormalThisPolicy>, &alignSelf_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-align-self", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignSelf_getterinfo, GenericSetter<NormalThisPolicy>, &alignSelf_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAlignSelf", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &alignSelf_getterinfo, GenericSetter<NormalThisPolicy>, &alignSelf_setterinfo),
  JSPropertySpec::nativeAccessors("justifySelf", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifySelf_getterinfo, GenericSetter<NormalThisPolicy>, &justifySelf_setterinfo),
  JSPropertySpec::nativeAccessors("justify-self", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &justifySelf_getterinfo, GenericSetter<NormalThisPolicy>, &justifySelf_setterinfo),
  JSPropertySpec::nativeAccessors("fontSynthesisPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSynthesisPosition_getterinfo, GenericSetter<NormalThisPolicy>, &fontSynthesisPosition_setterinfo),
  JSPropertySpec::nativeAccessors("font-synthesis-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSynthesisPosition_getterinfo, GenericSetter<NormalThisPolicy>, &fontSynthesisPosition_setterinfo),
  JSPropertySpec::nativeAccessors("fontSynthesisSmallCaps", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSynthesisSmallCaps_getterinfo, GenericSetter<NormalThisPolicy>, &fontSynthesisSmallCaps_setterinfo),
  JSPropertySpec::nativeAccessors("font-synthesis-small-caps", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSynthesisSmallCaps_getterinfo, GenericSetter<NormalThisPolicy>, &fontSynthesisSmallCaps_setterinfo),
  JSPropertySpec::nativeAccessors("fontSynthesisWeight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSynthesisWeight_getterinfo, GenericSetter<NormalThisPolicy>, &fontSynthesisWeight_setterinfo),
  JSPropertySpec::nativeAccessors("font-synthesis-weight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSynthesisWeight_getterinfo, GenericSetter<NormalThisPolicy>, &fontSynthesisWeight_setterinfo),
  JSPropertySpec::nativeAccessors("MozBoxOrdinalGroup", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrdinalGroup_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrdinalGroup_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-box-ordinal-group", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrdinalGroup_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrdinalGroup_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBoxOrdinalGroup", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrdinalGroup_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrdinalGroup_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-box-ordinal-group", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrdinalGroup_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrdinalGroup_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBoxOrdinalGroup", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxOrdinalGroup_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxOrdinalGroup_setterinfo),
  JSPropertySpec::nativeAccessors("order", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &order_getterinfo, GenericSetter<NormalThisPolicy>, &order_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitOrder", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &order_getterinfo, GenericSetter<NormalThisPolicy>, &order_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-order", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &order_getterinfo, GenericSetter<NormalThisPolicy>, &order_setterinfo),
  JSPropertySpec::nativeAccessors("webkitOrder", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &order_getterinfo, GenericSetter<NormalThisPolicy>, &order_setterinfo),
  JSPropertySpec::nativeAccessors("flexGrow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexGrow_getterinfo, GenericSetter<NormalThisPolicy>, &flexGrow_setterinfo),
  JSPropertySpec::nativeAccessors("flex-grow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexGrow_getterinfo, GenericSetter<NormalThisPolicy>, &flexGrow_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitFlexGrow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexGrow_getterinfo, GenericSetter<NormalThisPolicy>, &flexGrow_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-flex-grow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexGrow_getterinfo, GenericSetter<NormalThisPolicy>, &flexGrow_setterinfo),
  JSPropertySpec::nativeAccessors("webkitFlexGrow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexGrow_getterinfo, GenericSetter<NormalThisPolicy>, &flexGrow_setterinfo),
  JSPropertySpec::nativeAccessors("flexShrink", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexShrink_getterinfo, GenericSetter<NormalThisPolicy>, &flexShrink_setterinfo),
  JSPropertySpec::nativeAccessors("flex-shrink", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexShrink_getterinfo, GenericSetter<NormalThisPolicy>, &flexShrink_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitFlexShrink", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexShrink_getterinfo, GenericSetter<NormalThisPolicy>, &flexShrink_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-flex-shrink", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexShrink_getterinfo, GenericSetter<NormalThisPolicy>, &flexShrink_setterinfo),
  JSPropertySpec::nativeAccessors("webkitFlexShrink", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexShrink_getterinfo, GenericSetter<NormalThisPolicy>, &flexShrink_setterinfo),
  JSPropertySpec::nativeAccessors("MozBoxFlex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxFlex_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxFlex_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-box-flex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxFlex_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxFlex_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBoxFlex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxFlex_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxFlex_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-box-flex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxFlex_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxFlex_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBoxFlex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxFlex_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxFlex_setterinfo),
  JSPropertySpec::nativeAccessors("strokeMiterlimit", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeMiterlimit_getterinfo, GenericSetter<NormalThisPolicy>, &strokeMiterlimit_setterinfo),
  JSPropertySpec::nativeAccessors("stroke-miterlimit", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeMiterlimit_getterinfo, GenericSetter<NormalThisPolicy>, &strokeMiterlimit_setterinfo),
  JSPropertySpec::nativeAccessors("overflowBlock", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowBlock_getterinfo, GenericSetter<NormalThisPolicy>, &overflowBlock_setterinfo),
  JSPropertySpec::nativeAccessors("overflow-block", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowBlock_getterinfo, GenericSetter<NormalThisPolicy>, &overflowBlock_setterinfo),
  JSPropertySpec::nativeAccessors("overflowInline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowInline_getterinfo, GenericSetter<NormalThisPolicy>, &overflowInline_setterinfo),
  JSPropertySpec::nativeAccessors("overflow-inline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowInline_getterinfo, GenericSetter<NormalThisPolicy>, &overflowInline_setterinfo),
  JSPropertySpec::nativeAccessors("overflowX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowX_getterinfo, GenericSetter<NormalThisPolicy>, &overflowX_setterinfo),
  JSPropertySpec::nativeAccessors("overflow-x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowX_getterinfo, GenericSetter<NormalThisPolicy>, &overflowX_setterinfo),
  JSPropertySpec::nativeAccessors("overflowY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowY_getterinfo, GenericSetter<NormalThisPolicy>, &overflowY_setterinfo),
  JSPropertySpec::nativeAccessors("overflow-y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowY_getterinfo, GenericSetter<NormalThisPolicy>, &overflowY_setterinfo),
  JSPropertySpec::nativeAccessors("overscrollBehaviorBlock", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehaviorBlock_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehaviorBlock_setterinfo),
  JSPropertySpec::nativeAccessors("overscroll-behavior-block", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehaviorBlock_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehaviorBlock_setterinfo),
  JSPropertySpec::nativeAccessors("overscrollBehaviorInline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehaviorInline_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehaviorInline_setterinfo),
  JSPropertySpec::nativeAccessors("overscroll-behavior-inline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehaviorInline_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehaviorInline_setterinfo),
  JSPropertySpec::nativeAccessors("overscrollBehaviorX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehaviorX_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehaviorX_setterinfo),
  JSPropertySpec::nativeAccessors("overscroll-behavior-x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehaviorX_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehaviorX_setterinfo),
  JSPropertySpec::nativeAccessors("overscrollBehaviorY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehaviorY_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehaviorY_setterinfo),
  JSPropertySpec::nativeAccessors("overscroll-behavior-y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehaviorY_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehaviorY_setterinfo),
  JSPropertySpec::nativeAccessors("floodOpacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &floodOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &floodOpacity_setterinfo),
  JSPropertySpec::nativeAccessors("flood-opacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &floodOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &floodOpacity_setterinfo),
  JSPropertySpec::nativeAccessors("opacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &opacity_getterinfo, GenericSetter<NormalThisPolicy>, &opacity_setterinfo),
  JSPropertySpec::nativeAccessors("shapeImageThreshold", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeImageThreshold_getterinfo, GenericSetter<NormalThisPolicy>, &shapeImageThreshold_setterinfo),
  JSPropertySpec::nativeAccessors("shape-image-threshold", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeImageThreshold_getterinfo, GenericSetter<NormalThisPolicy>, &shapeImageThreshold_setterinfo),
  JSPropertySpec::nativeAccessors("stopOpacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &stopOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &stopOpacity_setterinfo),
  JSPropertySpec::nativeAccessors("stop-opacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &stopOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &stopOpacity_setterinfo),
  JSPropertySpec::nativeAccessors("borderBlockEndStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEndStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEndStyle_setterinfo),
  JSPropertySpec::nativeAccessors("border-block-end-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEndStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEndStyle_setterinfo),
  JSPropertySpec::nativeAccessors("borderBlockStartStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStartStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStartStyle_setterinfo),
  JSPropertySpec::nativeAccessors("border-block-start-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStartStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStartStyle_setterinfo),
  JSPropertySpec::nativeAccessors("borderBottomStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomStyle_setterinfo),
  JSPropertySpec::nativeAccessors("border-bottom-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomStyle_setterinfo),
  JSPropertySpec::nativeAccessors("borderInlineEndStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndStyle_setterinfo),
  JSPropertySpec::nativeAccessors("border-inline-end-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndStyle_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-border-end-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndStyle_setterinfo),
  JSPropertySpec::nativeAccessors("MozBorderEndStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndStyle_setterinfo),
  JSPropertySpec::nativeAccessors("borderInlineStartStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartStyle_setterinfo),
  JSPropertySpec::nativeAccessors("border-inline-start-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartStyle_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-border-start-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartStyle_setterinfo),
  JSPropertySpec::nativeAccessors("MozBorderStartStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartStyle_setterinfo),
  JSPropertySpec::nativeAccessors("borderLeftStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeftStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeftStyle_setterinfo),
  JSPropertySpec::nativeAccessors("border-left-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeftStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeftStyle_setterinfo),
  JSPropertySpec::nativeAccessors("borderRightStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRightStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderRightStyle_setterinfo),
  JSPropertySpec::nativeAccessors("border-right-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRightStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderRightStyle_setterinfo),
  JSPropertySpec::nativeAccessors("borderTopStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopStyle_setterinfo),
  JSPropertySpec::nativeAccessors("border-top-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopStyle_setterinfo),
  JSPropertySpec::nativeAccessors("columnRuleStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRuleStyle_getterinfo, GenericSetter<NormalThisPolicy>, &columnRuleStyle_setterinfo),
  JSPropertySpec::nativeAccessors("column-rule-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRuleStyle_getterinfo, GenericSetter<NormalThisPolicy>, &columnRuleStyle_setterinfo),
  JSPropertySpec::nativeAccessors("accentColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &accentColor_getterinfo, GenericSetter<NormalThisPolicy>, &accentColor_setterinfo),
  JSPropertySpec::nativeAccessors("accent-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &accentColor_getterinfo, GenericSetter<NormalThisPolicy>, &accentColor_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("anchorName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &anchorName_getterinfo, GenericSetter<NormalThisPolicy>, &anchorName_setterinfo),
  JSPropertySpec::nativeAccessors("anchor-name", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &anchorName_getterinfo, GenericSetter<NormalThisPolicy>, &anchorName_setterinfo),
  JSPropertySpec::nativeAccessors("anchorScope", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &anchorScope_getterinfo, GenericSetter<NormalThisPolicy>, &anchorScope_setterinfo),
  JSPropertySpec::nativeAccessors("anchor-scope", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &anchorScope_getterinfo, GenericSetter<NormalThisPolicy>, &anchorScope_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("animationComposition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationComposition_getterinfo, GenericSetter<NormalThisPolicy>, &animationComposition_setterinfo),
  JSPropertySpec::nativeAccessors("animation-composition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationComposition_getterinfo, GenericSetter<NormalThisPolicy>, &animationComposition_setterinfo),
  JSPropertySpec::nativeAccessors("animationDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &animationDelay_setterinfo),
  JSPropertySpec::nativeAccessors("animation-delay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &animationDelay_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAnimationDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &animationDelay_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-animation-delay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &animationDelay_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAnimationDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &animationDelay_setterinfo),
  JSPropertySpec::nativeAccessors("animationDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &animationDirection_setterinfo),
  JSPropertySpec::nativeAccessors("animation-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &animationDirection_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAnimationDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &animationDirection_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-animation-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &animationDirection_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAnimationDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &animationDirection_setterinfo),
  JSPropertySpec::nativeAccessors("animationDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &animationDuration_setterinfo),
  JSPropertySpec::nativeAccessors("animation-duration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &animationDuration_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAnimationDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &animationDuration_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-animation-duration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &animationDuration_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAnimationDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &animationDuration_setterinfo),
  JSPropertySpec::nativeAccessors("animationFillMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &animationFillMode_setterinfo),
  JSPropertySpec::nativeAccessors("animation-fill-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &animationFillMode_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAnimationFillMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &animationFillMode_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-animation-fill-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &animationFillMode_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAnimationFillMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &animationFillMode_setterinfo),
  JSPropertySpec::nativeAccessors("animationIterationCount", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &animationIterationCount_setterinfo),
  JSPropertySpec::nativeAccessors("animation-iteration-count", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &animationIterationCount_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAnimationIterationCount", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &animationIterationCount_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-animation-iteration-count", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &animationIterationCount_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAnimationIterationCount", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &animationIterationCount_setterinfo),
  JSPropertySpec::nativeAccessors("animationName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationName_getterinfo, GenericSetter<NormalThisPolicy>, &animationName_setterinfo),
  JSPropertySpec::nativeAccessors("animation-name", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationName_getterinfo, GenericSetter<NormalThisPolicy>, &animationName_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAnimationName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationName_getterinfo, GenericSetter<NormalThisPolicy>, &animationName_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-animation-name", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationName_getterinfo, GenericSetter<NormalThisPolicy>, &animationName_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAnimationName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationName_getterinfo, GenericSetter<NormalThisPolicy>, &animationName_setterinfo),
  JSPropertySpec::nativeAccessors("animationPlayState", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &animationPlayState_setterinfo),
  JSPropertySpec::nativeAccessors("animation-play-state", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &animationPlayState_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAnimationPlayState", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &animationPlayState_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-animation-play-state", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &animationPlayState_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAnimationPlayState", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &animationPlayState_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("animationTimeline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationTimeline_getterinfo, GenericSetter<NormalThisPolicy>, &animationTimeline_setterinfo),
  JSPropertySpec::nativeAccessors("animation-timeline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationTimeline_getterinfo, GenericSetter<NormalThisPolicy>, &animationTimeline_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("animationTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &animationTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("animation-timing-function", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &animationTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAnimationTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &animationTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-animation-timing-function", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &animationTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAnimationTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &animationTimingFunction_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("backdropFilter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backdropFilter_getterinfo, GenericSetter<NormalThisPolicy>, &backdropFilter_setterinfo),
  JSPropertySpec::nativeAccessors("backdrop-filter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backdropFilter_getterinfo, GenericSetter<NormalThisPolicy>, &backdropFilter_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("backgroundAttachment", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundAttachment_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundAttachment_setterinfo),
  JSPropertySpec::nativeAccessors("background-attachment", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundAttachment_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundAttachment_setterinfo),
  JSPropertySpec::nativeAccessors("backgroundBlendMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundBlendMode_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundBlendMode_setterinfo),
  JSPropertySpec::nativeAccessors("background-blend-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundBlendMode_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundBlendMode_setterinfo),
  JSPropertySpec::nativeAccessors("backgroundClip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundClip_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundClip_setterinfo),
  JSPropertySpec::nativeAccessors("background-clip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundClip_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundClip_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBackgroundClip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundClip_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundClip_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-background-clip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundClip_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundClip_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBackgroundClip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundClip_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundClip_setterinfo),
  JSPropertySpec::nativeAccessors("backgroundImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundImage_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundImage_setterinfo),
  JSPropertySpec::nativeAccessors("background-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundImage_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundImage_setterinfo),
  JSPropertySpec::nativeAccessors("backgroundOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("background-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBackgroundOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-background-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBackgroundOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("backgroundPositionX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundPositionX_setterinfo),
  JSPropertySpec::nativeAccessors("background-position-x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundPositionX_setterinfo),
  JSPropertySpec::nativeAccessors("backgroundPositionY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundPositionY_setterinfo),
  JSPropertySpec::nativeAccessors("background-position-y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundPositionY_setterinfo),
  JSPropertySpec::nativeAccessors("backgroundRepeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundRepeat_setterinfo),
  JSPropertySpec::nativeAccessors("background-repeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundRepeat_setterinfo),
  JSPropertySpec::nativeAccessors("backgroundSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundSize_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundSize_setterinfo),
  JSPropertySpec::nativeAccessors("background-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundSize_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundSize_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBackgroundSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundSize_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundSize_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-background-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundSize_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundSize_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBackgroundSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundSize_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundSize_setterinfo),
  JSPropertySpec::nativeAccessors("borderImageOutset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageOutset_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageOutset_setterinfo),
  JSPropertySpec::nativeAccessors("border-image-outset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageOutset_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageOutset_setterinfo),
  JSPropertySpec::nativeAccessors("borderImageSlice", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageSlice_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageSlice_setterinfo),
  JSPropertySpec::nativeAccessors("border-image-slice", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageSlice_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageSlice_setterinfo),
  JSPropertySpec::nativeAccessors("borderImageWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageWidth_setterinfo),
  JSPropertySpec::nativeAccessors("border-image-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageWidth_setterinfo),
  JSPropertySpec::nativeAccessors("borderSpacing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderSpacing_getterinfo, GenericSetter<NormalThisPolicy>, &borderSpacing_setterinfo),
  JSPropertySpec::nativeAccessors("border-spacing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderSpacing_getterinfo, GenericSetter<NormalThisPolicy>, &borderSpacing_setterinfo),
  JSPropertySpec::nativeAccessors("boxShadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxShadow_getterinfo, GenericSetter<NormalThisPolicy>, &boxShadow_setterinfo),
  JSPropertySpec::nativeAccessors("box-shadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxShadow_getterinfo, GenericSetter<NormalThisPolicy>, &boxShadow_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBoxShadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxShadow_getterinfo, GenericSetter<NormalThisPolicy>, &boxShadow_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-box-shadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxShadow_getterinfo, GenericSetter<NormalThisPolicy>, &boxShadow_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBoxShadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &boxShadow_getterinfo, GenericSetter<NormalThisPolicy>, &boxShadow_setterinfo),
  JSPropertySpec::nativeAccessors("caretColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &caretColor_getterinfo, GenericSetter<NormalThisPolicy>, &caretColor_setterinfo),
  JSPropertySpec::nativeAccessors("caret-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &caretColor_getterinfo, GenericSetter<NormalThisPolicy>, &caretColor_setterinfo),
  JSPropertySpec::nativeAccessors("clip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clip_getterinfo, GenericSetter<NormalThisPolicy>, &clip_setterinfo),
  JSPropertySpec::nativeAccessors("clipPath", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clipPath_getterinfo, GenericSetter<NormalThisPolicy>, &clipPath_setterinfo),
  JSPropertySpec::nativeAccessors("clip-path", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clipPath_getterinfo, GenericSetter<NormalThisPolicy>, &clipPath_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitClipPath", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clipPath_getterinfo, GenericSetter<NormalThisPolicy>, &clipPath_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-clip-path", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clipPath_getterinfo, GenericSetter<NormalThisPolicy>, &clipPath_setterinfo),
  JSPropertySpec::nativeAccessors("webkitClipPath", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &clipPath_getterinfo, GenericSetter<NormalThisPolicy>, &clipPath_setterinfo),
  JSPropertySpec::nativeAccessors("color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &color_getterinfo, GenericSetter<NormalThisPolicy>, &color_setterinfo),
  JSPropertySpec::nativeAccessors("colorScheme", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &colorScheme_getterinfo, GenericSetter<NormalThisPolicy>, &colorScheme_setterinfo),
  JSPropertySpec::nativeAccessors("color-scheme", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &colorScheme_getterinfo, GenericSetter<NormalThisPolicy>, &colorScheme_setterinfo),
  JSPropertySpec::nativeAccessors("columnWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnWidth_getterinfo, GenericSetter<NormalThisPolicy>, &columnWidth_setterinfo),
  JSPropertySpec::nativeAccessors("column-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnWidth_getterinfo, GenericSetter<NormalThisPolicy>, &columnWidth_setterinfo),
  JSPropertySpec::nativeAccessors("containerName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containerName_getterinfo, GenericSetter<NormalThisPolicy>, &containerName_setterinfo),
  JSPropertySpec::nativeAccessors("container-name", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containerName_getterinfo, GenericSetter<NormalThisPolicy>, &containerName_setterinfo),
  JSPropertySpec::nativeAccessors("content", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &content_getterinfo, GenericSetter<NormalThisPolicy>, &content_setterinfo),
  JSPropertySpec::nativeAccessors("counterIncrement", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &counterIncrement_getterinfo, GenericSetter<NormalThisPolicy>, &counterIncrement_setterinfo),
  JSPropertySpec::nativeAccessors("counter-increment", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &counterIncrement_getterinfo, GenericSetter<NormalThisPolicy>, &counterIncrement_setterinfo),
  JSPropertySpec::nativeAccessors("counterReset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &counterReset_getterinfo, GenericSetter<NormalThisPolicy>, &counterReset_setterinfo),
  JSPropertySpec::nativeAccessors("counter-reset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &counterReset_getterinfo, GenericSetter<NormalThisPolicy>, &counterReset_setterinfo),
  JSPropertySpec::nativeAccessors("counterSet", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &counterSet_getterinfo, GenericSetter<NormalThisPolicy>, &counterSet_setterinfo),
  JSPropertySpec::nativeAccessors("counter-set", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &counterSet_getterinfo, GenericSetter<NormalThisPolicy>, &counterSet_setterinfo),
  JSPropertySpec::nativeAccessors("cursor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &cursor_getterinfo, GenericSetter<NormalThisPolicy>, &cursor_setterinfo),
  JSPropertySpec::nativeAccessors("d", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &d_getterinfo, GenericSetter<NormalThisPolicy>, &d_setterinfo),
  JSPropertySpec::nativeAccessors("filter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &filter_getterinfo, GenericSetter<NormalThisPolicy>, &filter_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitFilter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &filter_getterinfo, GenericSetter<NormalThisPolicy>, &filter_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-filter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &filter_getterinfo, GenericSetter<NormalThisPolicy>, &filter_setterinfo),
  JSPropertySpec::nativeAccessors("webkitFilter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &filter_getterinfo, GenericSetter<NormalThisPolicy>, &filter_setterinfo),
  JSPropertySpec::nativeAccessors("flexBasis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexBasis_getterinfo, GenericSetter<NormalThisPolicy>, &flexBasis_setterinfo),
  JSPropertySpec::nativeAccessors("flex-basis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexBasis_getterinfo, GenericSetter<NormalThisPolicy>, &flexBasis_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitFlexBasis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexBasis_getterinfo, GenericSetter<NormalThisPolicy>, &flexBasis_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-flex-basis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexBasis_getterinfo, GenericSetter<NormalThisPolicy>, &flexBasis_setterinfo),
  JSPropertySpec::nativeAccessors("webkitFlexBasis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexBasis_getterinfo, GenericSetter<NormalThisPolicy>, &flexBasis_setterinfo),
  JSPropertySpec::nativeAccessors("fontFamily", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontFamily_getterinfo, GenericSetter<NormalThisPolicy>, &fontFamily_setterinfo),
  JSPropertySpec::nativeAccessors("font-family", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontFamily_getterinfo, GenericSetter<NormalThisPolicy>, &fontFamily_setterinfo),
  JSPropertySpec::nativeAccessors("fontFeatureSettings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontFeatureSettings_getterinfo, GenericSetter<NormalThisPolicy>, &fontFeatureSettings_setterinfo),
  JSPropertySpec::nativeAccessors("font-feature-settings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontFeatureSettings_getterinfo, GenericSetter<NormalThisPolicy>, &fontFeatureSettings_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitFontFeatureSettings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontFeatureSettings_getterinfo, GenericSetter<NormalThisPolicy>, &fontFeatureSettings_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-font-feature-settings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontFeatureSettings_getterinfo, GenericSetter<NormalThisPolicy>, &fontFeatureSettings_setterinfo),
  JSPropertySpec::nativeAccessors("webkitFontFeatureSettings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontFeatureSettings_getterinfo, GenericSetter<NormalThisPolicy>, &fontFeatureSettings_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("fontPalette", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontPalette_getterinfo, GenericSetter<NormalThisPolicy>, &fontPalette_setterinfo),
  JSPropertySpec::nativeAccessors("font-palette", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontPalette_getterinfo, GenericSetter<NormalThisPolicy>, &fontPalette_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("fontSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSize_getterinfo, GenericSetter<NormalThisPolicy>, &fontSize_setterinfo),
  JSPropertySpec::nativeAccessors("font-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSize_getterinfo, GenericSetter<NormalThisPolicy>, &fontSize_setterinfo),
  JSPropertySpec::nativeAccessors("fontVariantAlternates", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantAlternates_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantAlternates_setterinfo),
  JSPropertySpec::nativeAccessors("font-variant-alternates", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariantAlternates_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariantAlternates_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("fontVariationSettings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariationSettings_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariationSettings_setterinfo),
  JSPropertySpec::nativeAccessors("font-variation-settings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariationSettings_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariationSettings_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("gridTemplateAreas", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplateAreas_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplateAreas_setterinfo),
  JSPropertySpec::nativeAccessors("grid-template-areas", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplateAreas_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplateAreas_setterinfo),
  JSPropertySpec::nativeAccessors("hyphenateCharacter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &hyphenateCharacter_getterinfo, GenericSetter<NormalThisPolicy>, &hyphenateCharacter_setterinfo),
  JSPropertySpec::nativeAccessors("hyphenate-character", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &hyphenateCharacter_getterinfo, GenericSetter<NormalThisPolicy>, &hyphenateCharacter_setterinfo),
  JSPropertySpec::nativeAccessors("hyphenateLimitChars", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &hyphenateLimitChars_getterinfo, GenericSetter<NormalThisPolicy>, &hyphenateLimitChars_setterinfo),
  JSPropertySpec::nativeAccessors("hyphenate-limit-chars", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &hyphenateLimitChars_getterinfo, GenericSetter<NormalThisPolicy>, &hyphenateLimitChars_setterinfo),
  JSPropertySpec::nativeAccessors("letterSpacing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &letterSpacing_getterinfo, GenericSetter<NormalThisPolicy>, &letterSpacing_setterinfo),
  JSPropertySpec::nativeAccessors("letter-spacing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &letterSpacing_getterinfo, GenericSetter<NormalThisPolicy>, &letterSpacing_setterinfo),
  JSPropertySpec::nativeAccessors("lineHeight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &lineHeight_getterinfo, GenericSetter<NormalThisPolicy>, &lineHeight_setterinfo),
  JSPropertySpec::nativeAccessors("line-height", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &lineHeight_getterinfo, GenericSetter<NormalThisPolicy>, &lineHeight_setterinfo),
  JSPropertySpec::nativeAccessors("listStyleType", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStyleType_getterinfo, GenericSetter<NormalThisPolicy>, &listStyleType_setterinfo),
  JSPropertySpec::nativeAccessors("list-style-type", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStyleType_getterinfo, GenericSetter<NormalThisPolicy>, &listStyleType_setterinfo),
  JSPropertySpec::nativeAccessors("maskClip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskClip_getterinfo, GenericSetter<NormalThisPolicy>, &maskClip_setterinfo),
  JSPropertySpec::nativeAccessors("mask-clip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskClip_getterinfo, GenericSetter<NormalThisPolicy>, &maskClip_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitMaskClip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskClip_getterinfo, GenericSetter<NormalThisPolicy>, &maskClip_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-mask-clip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskClip_getterinfo, GenericSetter<NormalThisPolicy>, &maskClip_setterinfo),
  JSPropertySpec::nativeAccessors("webkitMaskClip", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskClip_getterinfo, GenericSetter<NormalThisPolicy>, &maskClip_setterinfo),
  JSPropertySpec::nativeAccessors("maskComposite", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskComposite_getterinfo, GenericSetter<NormalThisPolicy>, &maskComposite_setterinfo),
  JSPropertySpec::nativeAccessors("mask-composite", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskComposite_getterinfo, GenericSetter<NormalThisPolicy>, &maskComposite_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitMaskComposite", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskComposite_getterinfo, GenericSetter<NormalThisPolicy>, &maskComposite_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-mask-composite", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskComposite_getterinfo, GenericSetter<NormalThisPolicy>, &maskComposite_setterinfo),
  JSPropertySpec::nativeAccessors("webkitMaskComposite", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskComposite_getterinfo, GenericSetter<NormalThisPolicy>, &maskComposite_setterinfo),
  JSPropertySpec::nativeAccessors("maskImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskImage_getterinfo, GenericSetter<NormalThisPolicy>, &maskImage_setterinfo),
  JSPropertySpec::nativeAccessors("mask-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskImage_getterinfo, GenericSetter<NormalThisPolicy>, &maskImage_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitMaskImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskImage_getterinfo, GenericSetter<NormalThisPolicy>, &maskImage_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-mask-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskImage_getterinfo, GenericSetter<NormalThisPolicy>, &maskImage_setterinfo),
  JSPropertySpec::nativeAccessors("webkitMaskImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskImage_getterinfo, GenericSetter<NormalThisPolicy>, &maskImage_setterinfo),
  JSPropertySpec::nativeAccessors("maskMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskMode_getterinfo, GenericSetter<NormalThisPolicy>, &maskMode_setterinfo),
  JSPropertySpec::nativeAccessors("mask-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskMode_getterinfo, GenericSetter<NormalThisPolicy>, &maskMode_setterinfo),
  JSPropertySpec::nativeAccessors("maskOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &maskOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("mask-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &maskOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitMaskOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &maskOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-mask-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &maskOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("webkitMaskOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &maskOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("maskPositionX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionX_setterinfo),
  JSPropertySpec::nativeAccessors("mask-position-x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionX_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitMaskPositionX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionX_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-mask-position-x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionX_setterinfo),
  JSPropertySpec::nativeAccessors("webkitMaskPositionX", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionX_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionX_setterinfo),
  JSPropertySpec::nativeAccessors("maskPositionY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionY_setterinfo),
  JSPropertySpec::nativeAccessors("mask-position-y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionY_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitMaskPositionY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionY_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-mask-position-y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionY_setterinfo),
  JSPropertySpec::nativeAccessors("webkitMaskPositionY", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPositionY_getterinfo, GenericSetter<NormalThisPolicy>, &maskPositionY_setterinfo),
  JSPropertySpec::nativeAccessors("maskRepeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &maskRepeat_setterinfo),
  JSPropertySpec::nativeAccessors("mask-repeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &maskRepeat_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitMaskRepeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &maskRepeat_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-mask-repeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &maskRepeat_setterinfo),
  JSPropertySpec::nativeAccessors("webkitMaskRepeat", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskRepeat_getterinfo, GenericSetter<NormalThisPolicy>, &maskRepeat_setterinfo),
  JSPropertySpec::nativeAccessors("maskSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskSize_getterinfo, GenericSetter<NormalThisPolicy>, &maskSize_setterinfo),
  JSPropertySpec::nativeAccessors("mask-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskSize_getterinfo, GenericSetter<NormalThisPolicy>, &maskSize_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitMaskSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskSize_getterinfo, GenericSetter<NormalThisPolicy>, &maskSize_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-mask-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskSize_getterinfo, GenericSetter<NormalThisPolicy>, &maskSize_setterinfo),
  JSPropertySpec::nativeAccessors("webkitMaskSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskSize_getterinfo, GenericSetter<NormalThisPolicy>, &maskSize_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozContextProperties", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozContextProperties_getterinfo, GenericSetter<NormalThisPolicy>, &MozContextProperties_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-context-properties", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozContextProperties_getterinfo, GenericSetter<NormalThisPolicy>, &MozContextProperties_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("offsetAnchor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetAnchor_getterinfo, GenericSetter<NormalThisPolicy>, &offsetAnchor_setterinfo),
  JSPropertySpec::nativeAccessors("offset-anchor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetAnchor_getterinfo, GenericSetter<NormalThisPolicy>, &offsetAnchor_setterinfo),
  JSPropertySpec::nativeAccessors("offsetPath", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetPath_getterinfo, GenericSetter<NormalThisPolicy>, &offsetPath_setterinfo),
  JSPropertySpec::nativeAccessors("offset-path", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetPath_getterinfo, GenericSetter<NormalThisPolicy>, &offsetPath_setterinfo),
  JSPropertySpec::nativeAccessors("offsetPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetPosition_getterinfo, GenericSetter<NormalThisPolicy>, &offsetPosition_setterinfo),
  JSPropertySpec::nativeAccessors("offset-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetPosition_getterinfo, GenericSetter<NormalThisPolicy>, &offsetPosition_setterinfo),
  JSPropertySpec::nativeAccessors("outlineOffset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineOffset_getterinfo, GenericSetter<NormalThisPolicy>, &outlineOffset_setterinfo),
  JSPropertySpec::nativeAccessors("outline-offset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineOffset_getterinfo, GenericSetter<NormalThisPolicy>, &outlineOffset_setterinfo),
  JSPropertySpec::nativeAccessors("page", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &page_getterinfo, GenericSetter<NormalThisPolicy>, &page_setterinfo),
  JSPropertySpec::nativeAccessors("perspective", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &perspective_getterinfo, GenericSetter<NormalThisPolicy>, &perspective_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("positionAnchor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &positionAnchor_getterinfo, GenericSetter<NormalThisPolicy>, &positionAnchor_setterinfo),
  JSPropertySpec::nativeAccessors("position-anchor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &positionAnchor_getterinfo, GenericSetter<NormalThisPolicy>, &positionAnchor_setterinfo),
  JSPropertySpec::nativeAccessors("positionTryFallbacks", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &positionTryFallbacks_getterinfo, GenericSetter<NormalThisPolicy>, &positionTryFallbacks_setterinfo),
  JSPropertySpec::nativeAccessors("position-try-fallbacks", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &positionTryFallbacks_getterinfo, GenericSetter<NormalThisPolicy>, &positionTryFallbacks_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("quotes", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &quotes_getterinfo, GenericSetter<NormalThisPolicy>, &quotes_setterinfo),
  JSPropertySpec::nativeAccessors("rotate", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rotate_getterinfo, GenericSetter<NormalThisPolicy>, &rotate_setterinfo),
  JSPropertySpec::nativeAccessors("scale", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scale_getterinfo, GenericSetter<NormalThisPolicy>, &scale_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("scrollTimelineAxis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollTimelineAxis_getterinfo, GenericSetter<NormalThisPolicy>, &scrollTimelineAxis_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-timeline-axis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollTimelineAxis_getterinfo, GenericSetter<NormalThisPolicy>, &scrollTimelineAxis_setterinfo),
  JSPropertySpec::nativeAccessors("scrollTimelineName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollTimelineName_getterinfo, GenericSetter<NormalThisPolicy>, &scrollTimelineName_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-timeline-name", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollTimelineName_getterinfo, GenericSetter<NormalThisPolicy>, &scrollTimelineName_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("scrollbarColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollbarColor_getterinfo, GenericSetter<NormalThisPolicy>, &scrollbarColor_setterinfo),
  JSPropertySpec::nativeAccessors("scrollbar-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollbarColor_getterinfo, GenericSetter<NormalThisPolicy>, &scrollbarColor_setterinfo),
  JSPropertySpec::nativeAccessors("shapeOutside", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeOutside_getterinfo, GenericSetter<NormalThisPolicy>, &shapeOutside_setterinfo),
  JSPropertySpec::nativeAccessors("shape-outside", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeOutside_getterinfo, GenericSetter<NormalThisPolicy>, &shapeOutside_setterinfo),
  JSPropertySpec::nativeAccessors("strokeDasharray", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeDasharray_getterinfo, GenericSetter<NormalThisPolicy>, &strokeDasharray_setterinfo),
  JSPropertySpec::nativeAccessors("stroke-dasharray", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeDasharray_getterinfo, GenericSetter<NormalThisPolicy>, &strokeDasharray_setterinfo),
  JSPropertySpec::nativeAccessors("strokeDashoffset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeDashoffset_getterinfo, GenericSetter<NormalThisPolicy>, &strokeDashoffset_setterinfo),
  JSPropertySpec::nativeAccessors("stroke-dashoffset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeDashoffset_getterinfo, GenericSetter<NormalThisPolicy>, &strokeDashoffset_setterinfo),
  JSPropertySpec::nativeAccessors("strokeWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeWidth_getterinfo, GenericSetter<NormalThisPolicy>, &strokeWidth_setterinfo),
  JSPropertySpec::nativeAccessors("stroke-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &strokeWidth_getterinfo, GenericSetter<NormalThisPolicy>, &strokeWidth_setterinfo),
  JSPropertySpec::nativeAccessors("tabSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &tabSize_getterinfo, GenericSetter<NormalThisPolicy>, &tabSize_setterinfo),
  JSPropertySpec::nativeAccessors("tab-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &tabSize_getterinfo, GenericSetter<NormalThisPolicy>, &tabSize_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-tab-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &tabSize_getterinfo, GenericSetter<NormalThisPolicy>, &tabSize_setterinfo),
  JSPropertySpec::nativeAccessors("MozTabSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &tabSize_getterinfo, GenericSetter<NormalThisPolicy>, &tabSize_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("textDecorationInset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationInset_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationInset_setterinfo),
  JSPropertySpec::nativeAccessors("text-decoration-inset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationInset_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationInset_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("textDecorationThickness", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationThickness_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationThickness_setterinfo),
  JSPropertySpec::nativeAccessors("text-decoration-thickness", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationThickness_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationThickness_setterinfo),
  JSPropertySpec::nativeAccessors("textEmphasisStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasisStyle_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasisStyle_setterinfo),
  JSPropertySpec::nativeAccessors("text-emphasis-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasisStyle_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasisStyle_setterinfo),
  JSPropertySpec::nativeAccessors("textIndent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textIndent_getterinfo, GenericSetter<NormalThisPolicy>, &textIndent_setterinfo),
  JSPropertySpec::nativeAccessors("text-indent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textIndent_getterinfo, GenericSetter<NormalThisPolicy>, &textIndent_setterinfo),
  JSPropertySpec::nativeAccessors("textOverflow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textOverflow_getterinfo, GenericSetter<NormalThisPolicy>, &textOverflow_setterinfo),
  JSPropertySpec::nativeAccessors("text-overflow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textOverflow_getterinfo, GenericSetter<NormalThisPolicy>, &textOverflow_setterinfo),
  JSPropertySpec::nativeAccessors("textShadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textShadow_getterinfo, GenericSetter<NormalThisPolicy>, &textShadow_setterinfo),
  JSPropertySpec::nativeAccessors("text-shadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textShadow_getterinfo, GenericSetter<NormalThisPolicy>, &textShadow_setterinfo),
  JSPropertySpec::nativeAccessors("textUnderlineOffset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textUnderlineOffset_getterinfo, GenericSetter<NormalThisPolicy>, &textUnderlineOffset_setterinfo),
  JSPropertySpec::nativeAccessors("text-underline-offset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textUnderlineOffset_getterinfo, GenericSetter<NormalThisPolicy>, &textUnderlineOffset_setterinfo),
  JSPropertySpec::nativeAccessors("transformOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &transformOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("transform-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &transformOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTransformOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &transformOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-transform-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &transformOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTransformOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &transformOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("transitionBehavior", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionBehavior_getterinfo, GenericSetter<NormalThisPolicy>, &transitionBehavior_setterinfo),
  JSPropertySpec::nativeAccessors("transition-behavior", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionBehavior_getterinfo, GenericSetter<NormalThisPolicy>, &transitionBehavior_setterinfo),
  JSPropertySpec::nativeAccessors("transitionDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDelay_setterinfo),
  JSPropertySpec::nativeAccessors("transition-delay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDelay_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTransitionDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDelay_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-transition-delay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDelay_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTransitionDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDelay_setterinfo),
  JSPropertySpec::nativeAccessors("transitionDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDuration_setterinfo),
  JSPropertySpec::nativeAccessors("transition-duration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDuration_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTransitionDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDuration_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-transition-duration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDuration_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTransitionDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &transitionDuration_setterinfo),
  JSPropertySpec::nativeAccessors("transitionProperty", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &transitionProperty_setterinfo),
  JSPropertySpec::nativeAccessors("transition-property", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &transitionProperty_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTransitionProperty", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &transitionProperty_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-transition-property", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &transitionProperty_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTransitionProperty", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &transitionProperty_setterinfo),
  JSPropertySpec::nativeAccessors("transitionTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &transitionTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("transition-timing-function", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &transitionTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTransitionTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &transitionTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-transition-timing-function", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &transitionTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTransitionTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &transitionTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("translate", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &translate_getterinfo, GenericSetter<NormalThisPolicy>, &translate_setterinfo),
  JSPropertySpec::nativeAccessors("verticalAlign", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &verticalAlign_getterinfo, GenericSetter<NormalThisPolicy>, &verticalAlign_setterinfo),
  JSPropertySpec::nativeAccessors("vertical-align", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &verticalAlign_getterinfo, GenericSetter<NormalThisPolicy>, &verticalAlign_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("viewTimelineAxis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &viewTimelineAxis_getterinfo, GenericSetter<NormalThisPolicy>, &viewTimelineAxis_setterinfo),
  JSPropertySpec::nativeAccessors("view-timeline-axis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &viewTimelineAxis_getterinfo, GenericSetter<NormalThisPolicy>, &viewTimelineAxis_setterinfo),
  JSPropertySpec::nativeAccessors("viewTimelineInset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &viewTimelineInset_getterinfo, GenericSetter<NormalThisPolicy>, &viewTimelineInset_setterinfo),
  JSPropertySpec::nativeAccessors("view-timeline-inset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &viewTimelineInset_getterinfo, GenericSetter<NormalThisPolicy>, &viewTimelineInset_setterinfo),
  JSPropertySpec::nativeAccessors("viewTimelineName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &viewTimelineName_getterinfo, GenericSetter<NormalThisPolicy>, &viewTimelineName_setterinfo),
  JSPropertySpec::nativeAccessors("view-timeline-name", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &viewTimelineName_getterinfo, GenericSetter<NormalThisPolicy>, &viewTimelineName_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("viewTransitionClass", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &viewTransitionClass_getterinfo, GenericSetter<NormalThisPolicy>, &viewTransitionClass_setterinfo),
  JSPropertySpec::nativeAccessors("view-transition-class", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &viewTransitionClass_getterinfo, GenericSetter<NormalThisPolicy>, &viewTransitionClass_setterinfo),
  JSPropertySpec::nativeAccessors("viewTransitionName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &viewTransitionName_getterinfo, GenericSetter<NormalThisPolicy>, &viewTransitionName_setterinfo),
  JSPropertySpec::nativeAccessors("view-transition-name", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &viewTransitionName_getterinfo, GenericSetter<NormalThisPolicy>, &viewTransitionName_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("webkitTextStrokeWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStrokeWidth_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStrokeWidth_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTextStrokeWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStrokeWidth_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStrokeWidth_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-text-stroke-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStrokeWidth_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStrokeWidth_setterinfo),
  JSPropertySpec::nativeAccessors("willChange", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &willChange_getterinfo, GenericSetter<NormalThisPolicy>, &willChange_setterinfo),
  JSPropertySpec::nativeAccessors("will-change", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &willChange_getterinfo, GenericSetter<NormalThisPolicy>, &willChange_setterinfo),
  JSPropertySpec::nativeAccessors("wordSpacing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &wordSpacing_getterinfo, GenericSetter<NormalThisPolicy>, &wordSpacing_setterinfo),
  JSPropertySpec::nativeAccessors("word-spacing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &wordSpacing_getterinfo, GenericSetter<NormalThisPolicy>, &wordSpacing_setterinfo),
  JSPropertySpec::nativeAccessors("objectPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &objectPosition_getterinfo, GenericSetter<NormalThisPolicy>, &objectPosition_setterinfo),
  JSPropertySpec::nativeAccessors("object-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &objectPosition_getterinfo, GenericSetter<NormalThisPolicy>, &objectPosition_setterinfo),
  JSPropertySpec::nativeAccessors("perspectiveOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &perspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &perspectiveOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("perspective-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &perspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &perspectiveOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitPerspectiveOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &perspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &perspectiveOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-perspective-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &perspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &perspectiveOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("webkitPerspectiveOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &perspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &perspectiveOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("fill", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fill_getterinfo, GenericSetter<NormalThisPolicy>, &fill_setterinfo),
  JSPropertySpec::nativeAccessors("stroke", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &stroke_getterinfo, GenericSetter<NormalThisPolicy>, &stroke_setterinfo),
  JSPropertySpec::nativeAccessors("gridTemplateColumns", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplateColumns_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplateColumns_setterinfo),
  JSPropertySpec::nativeAccessors("grid-template-columns", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplateColumns_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplateColumns_setterinfo),
  JSPropertySpec::nativeAccessors("gridTemplateRows", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplateRows_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplateRows_setterinfo),
  JSPropertySpec::nativeAccessors("grid-template-rows", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplateRows_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplateRows_setterinfo),
  JSPropertySpec::nativeAccessors("borderImageSource", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageSource_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageSource_setterinfo),
  JSPropertySpec::nativeAccessors("border-image-source", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImageSource_getterinfo, GenericSetter<NormalThisPolicy>, &borderImageSource_setterinfo),
  JSPropertySpec::nativeAccessors("listStyleImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStyleImage_getterinfo, GenericSetter<NormalThisPolicy>, &listStyleImage_setterinfo),
  JSPropertySpec::nativeAccessors("list-style-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStyleImage_getterinfo, GenericSetter<NormalThisPolicy>, &listStyleImage_setterinfo),
  JSPropertySpec::nativeAccessors("gridAutoColumns", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridAutoColumns_getterinfo, GenericSetter<NormalThisPolicy>, &gridAutoColumns_setterinfo),
  JSPropertySpec::nativeAccessors("grid-auto-columns", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridAutoColumns_getterinfo, GenericSetter<NormalThisPolicy>, &gridAutoColumns_setterinfo),
  JSPropertySpec::nativeAccessors("gridAutoRows", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridAutoRows_getterinfo, GenericSetter<NormalThisPolicy>, &gridAutoRows_setterinfo),
  JSPropertySpec::nativeAccessors("grid-auto-rows", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridAutoRows_getterinfo, GenericSetter<NormalThisPolicy>, &gridAutoRows_setterinfo),
  JSPropertySpec::nativeAccessors("transform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transform_getterinfo, GenericSetter<NormalThisPolicy>, &transform_setterinfo),
  JSPropertySpec::nativeAccessors("columnGap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnGap_getterinfo, GenericSetter<NormalThisPolicy>, &columnGap_setterinfo),
  JSPropertySpec::nativeAccessors("column-gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnGap_getterinfo, GenericSetter<NormalThisPolicy>, &columnGap_setterinfo),
  JSPropertySpec::nativeAccessors("grid-column-gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnGap_getterinfo, GenericSetter<NormalThisPolicy>, &columnGap_setterinfo),
  JSPropertySpec::nativeAccessors("gridColumnGap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnGap_getterinfo, GenericSetter<NormalThisPolicy>, &columnGap_setterinfo),
  JSPropertySpec::nativeAccessors("rowGap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rowGap_getterinfo, GenericSetter<NormalThisPolicy>, &rowGap_setterinfo),
  JSPropertySpec::nativeAccessors("row-gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rowGap_getterinfo, GenericSetter<NormalThisPolicy>, &rowGap_setterinfo),
  JSPropertySpec::nativeAccessors("grid-row-gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rowGap_getterinfo, GenericSetter<NormalThisPolicy>, &rowGap_setterinfo),
  JSPropertySpec::nativeAccessors("gridRowGap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rowGap_getterinfo, GenericSetter<NormalThisPolicy>, &rowGap_setterinfo),
  JSPropertySpec::nativeAccessors("markerEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &markerEnd_getterinfo, GenericSetter<NormalThisPolicy>, &markerEnd_setterinfo),
  JSPropertySpec::nativeAccessors("marker-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &markerEnd_getterinfo, GenericSetter<NormalThisPolicy>, &markerEnd_setterinfo),
  JSPropertySpec::nativeAccessors("markerMid", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &markerMid_getterinfo, GenericSetter<NormalThisPolicy>, &markerMid_setterinfo),
  JSPropertySpec::nativeAccessors("marker-mid", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &markerMid_getterinfo, GenericSetter<NormalThisPolicy>, &markerMid_setterinfo),
  JSPropertySpec::nativeAccessors("markerStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &markerStart_getterinfo, GenericSetter<NormalThisPolicy>, &markerStart_setterinfo),
  JSPropertySpec::nativeAccessors("marker-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &markerStart_getterinfo, GenericSetter<NormalThisPolicy>, &markerStart_setterinfo),
  JSPropertySpec::nativeAccessors("containIntrinsicBlockSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containIntrinsicBlockSize_getterinfo, GenericSetter<NormalThisPolicy>, &containIntrinsicBlockSize_setterinfo),
  JSPropertySpec::nativeAccessors("contain-intrinsic-block-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containIntrinsicBlockSize_getterinfo, GenericSetter<NormalThisPolicy>, &containIntrinsicBlockSize_setterinfo),
  JSPropertySpec::nativeAccessors("containIntrinsicHeight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containIntrinsicHeight_getterinfo, GenericSetter<NormalThisPolicy>, &containIntrinsicHeight_setterinfo),
  JSPropertySpec::nativeAccessors("contain-intrinsic-height", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containIntrinsicHeight_getterinfo, GenericSetter<NormalThisPolicy>, &containIntrinsicHeight_setterinfo),
  JSPropertySpec::nativeAccessors("containIntrinsicInlineSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containIntrinsicInlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &containIntrinsicInlineSize_setterinfo),
  JSPropertySpec::nativeAccessors("contain-intrinsic-inline-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containIntrinsicInlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &containIntrinsicInlineSize_setterinfo),
  JSPropertySpec::nativeAccessors("containIntrinsicWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containIntrinsicWidth_getterinfo, GenericSetter<NormalThisPolicy>, &containIntrinsicWidth_setterinfo),
  JSPropertySpec::nativeAccessors("contain-intrinsic-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containIntrinsicWidth_getterinfo, GenericSetter<NormalThisPolicy>, &containIntrinsicWidth_setterinfo),
  JSPropertySpec::nativeAccessors("gridColumnEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumnEnd_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumnEnd_setterinfo),
  JSPropertySpec::nativeAccessors("grid-column-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumnEnd_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumnEnd_setterinfo),
  JSPropertySpec::nativeAccessors("gridColumnStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumnStart_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumnStart_setterinfo),
  JSPropertySpec::nativeAccessors("grid-column-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumnStart_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumnStart_setterinfo),
  JSPropertySpec::nativeAccessors("gridRowEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRowEnd_getterinfo, GenericSetter<NormalThisPolicy>, &gridRowEnd_setterinfo),
  JSPropertySpec::nativeAccessors("grid-row-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRowEnd_getterinfo, GenericSetter<NormalThisPolicy>, &gridRowEnd_setterinfo),
  JSPropertySpec::nativeAccessors("gridRowStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRowStart_getterinfo, GenericSetter<NormalThisPolicy>, &gridRowStart_setterinfo),
  JSPropertySpec::nativeAccessors("grid-row-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRowStart_getterinfo, GenericSetter<NormalThisPolicy>, &gridRowStart_setterinfo),
  JSPropertySpec::nativeAccessors("maxBlockSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxBlockSize_getterinfo, GenericSetter<NormalThisPolicy>, &maxBlockSize_setterinfo),
  JSPropertySpec::nativeAccessors("max-block-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxBlockSize_getterinfo, GenericSetter<NormalThisPolicy>, &maxBlockSize_setterinfo),
  JSPropertySpec::nativeAccessors("maxHeight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxHeight_getterinfo, GenericSetter<NormalThisPolicy>, &maxHeight_setterinfo),
  JSPropertySpec::nativeAccessors("max-height", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxHeight_getterinfo, GenericSetter<NormalThisPolicy>, &maxHeight_setterinfo),
  JSPropertySpec::nativeAccessors("maxInlineSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxInlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &maxInlineSize_setterinfo),
  JSPropertySpec::nativeAccessors("max-inline-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxInlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &maxInlineSize_setterinfo),
  JSPropertySpec::nativeAccessors("maxWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxWidth_getterinfo, GenericSetter<NormalThisPolicy>, &maxWidth_setterinfo),
  JSPropertySpec::nativeAccessors("max-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maxWidth_getterinfo, GenericSetter<NormalThisPolicy>, &maxWidth_setterinfo),
  JSPropertySpec::nativeAccessors("cx", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &cx_getterinfo, GenericSetter<NormalThisPolicy>, &cx_setterinfo),
  JSPropertySpec::nativeAccessors("cy", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &cy_getterinfo, GenericSetter<NormalThisPolicy>, &cy_setterinfo),
  JSPropertySpec::nativeAccessors("offsetDistance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetDistance_getterinfo, GenericSetter<NormalThisPolicy>, &offsetDistance_setterinfo),
  JSPropertySpec::nativeAccessors("offset-distance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offsetDistance_getterinfo, GenericSetter<NormalThisPolicy>, &offsetDistance_setterinfo),
  JSPropertySpec::nativeAccessors("x", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &x_getterinfo, GenericSetter<NormalThisPolicy>, &x_setterinfo),
  JSPropertySpec::nativeAccessors("y", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &y_getterinfo, GenericSetter<NormalThisPolicy>, &y_setterinfo),
  JSPropertySpec::nativeAccessors("borderBottomLeftRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomLeftRadius_setterinfo),
  JSPropertySpec::nativeAccessors("border-bottom-left-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomLeftRadius_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBorderBottomLeftRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomLeftRadius_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-border-bottom-left-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomLeftRadius_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBorderBottomLeftRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomLeftRadius_setterinfo),
  JSPropertySpec::nativeAccessors("borderBottomRightRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomRightRadius_setterinfo),
  JSPropertySpec::nativeAccessors("border-bottom-right-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomRightRadius_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBorderBottomRightRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomRightRadius_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-border-bottom-right-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomRightRadius_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBorderBottomRightRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomRightRadius_setterinfo),
  JSPropertySpec::nativeAccessors("borderEndEndRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderEndEndRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderEndEndRadius_setterinfo),
  JSPropertySpec::nativeAccessors("border-end-end-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderEndEndRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderEndEndRadius_setterinfo),
  JSPropertySpec::nativeAccessors("borderEndStartRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderEndStartRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderEndStartRadius_setterinfo),
  JSPropertySpec::nativeAccessors("border-end-start-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderEndStartRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderEndStartRadius_setterinfo),
  JSPropertySpec::nativeAccessors("borderStartEndRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderStartEndRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderStartEndRadius_setterinfo),
  JSPropertySpec::nativeAccessors("border-start-end-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderStartEndRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderStartEndRadius_setterinfo),
  JSPropertySpec::nativeAccessors("borderStartStartRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderStartStartRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderStartStartRadius_setterinfo),
  JSPropertySpec::nativeAccessors("border-start-start-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderStartStartRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderStartStartRadius_setterinfo),
  JSPropertySpec::nativeAccessors("borderTopLeftRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopLeftRadius_setterinfo),
  JSPropertySpec::nativeAccessors("border-top-left-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopLeftRadius_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBorderTopLeftRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopLeftRadius_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-border-top-left-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopLeftRadius_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBorderTopLeftRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopLeftRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopLeftRadius_setterinfo),
  JSPropertySpec::nativeAccessors("borderTopRightRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopRightRadius_setterinfo),
  JSPropertySpec::nativeAccessors("border-top-right-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopRightRadius_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBorderTopRightRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopRightRadius_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-border-top-right-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopRightRadius_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBorderTopRightRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopRightRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopRightRadius_setterinfo),
  JSPropertySpec::nativeAccessors("bottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &bottom_getterinfo, GenericSetter<NormalThisPolicy>, &bottom_setterinfo),
  JSPropertySpec::nativeAccessors("insetBlockEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &insetBlockEnd_setterinfo),
  JSPropertySpec::nativeAccessors("inset-block-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &insetBlockEnd_setterinfo),
  JSPropertySpec::nativeAccessors("insetBlockStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &insetBlockStart_setterinfo),
  JSPropertySpec::nativeAccessors("inset-block-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &insetBlockStart_setterinfo),
  JSPropertySpec::nativeAccessors("insetInlineEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &insetInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("inset-inline-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &insetInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("insetInlineStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &insetInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("inset-inline-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &insetInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("left", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &left_getterinfo, GenericSetter<NormalThisPolicy>, &left_setterinfo),
  JSPropertySpec::nativeAccessors("right", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &right_getterinfo, GenericSetter<NormalThisPolicy>, &right_setterinfo),
  JSPropertySpec::nativeAccessors("top", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &top_getterinfo, GenericSetter<NormalThisPolicy>, &top_setterinfo),
  JSPropertySpec::nativeAccessors("marginBlockEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &marginBlockEnd_setterinfo),
  JSPropertySpec::nativeAccessors("margin-block-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &marginBlockEnd_setterinfo),
  JSPropertySpec::nativeAccessors("marginBlockStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &marginBlockStart_setterinfo),
  JSPropertySpec::nativeAccessors("margin-block-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &marginBlockStart_setterinfo),
  JSPropertySpec::nativeAccessors("marginBottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBottom_getterinfo, GenericSetter<NormalThisPolicy>, &marginBottom_setterinfo),
  JSPropertySpec::nativeAccessors("margin-bottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBottom_getterinfo, GenericSetter<NormalThisPolicy>, &marginBottom_setterinfo),
  JSPropertySpec::nativeAccessors("marginInlineEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &marginInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("margin-inline-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &marginInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-margin-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &marginInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("MozMarginEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &marginInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("marginInlineStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &marginInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("margin-inline-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &marginInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-margin-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &marginInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("MozMarginStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &marginInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("marginLeft", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginLeft_getterinfo, GenericSetter<NormalThisPolicy>, &marginLeft_setterinfo),
  JSPropertySpec::nativeAccessors("margin-left", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginLeft_getterinfo, GenericSetter<NormalThisPolicy>, &marginLeft_setterinfo),
  JSPropertySpec::nativeAccessors("marginRight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginRight_getterinfo, GenericSetter<NormalThisPolicy>, &marginRight_setterinfo),
  JSPropertySpec::nativeAccessors("margin-right", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginRight_getterinfo, GenericSetter<NormalThisPolicy>, &marginRight_setterinfo),
  JSPropertySpec::nativeAccessors("marginTop", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginTop_getterinfo, GenericSetter<NormalThisPolicy>, &marginTop_setterinfo),
  JSPropertySpec::nativeAccessors("margin-top", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginTop_getterinfo, GenericSetter<NormalThisPolicy>, &marginTop_setterinfo),
  JSPropertySpec::nativeAccessors("blockSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &blockSize_getterinfo, GenericSetter<NormalThisPolicy>, &blockSize_setterinfo),
  JSPropertySpec::nativeAccessors("block-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &blockSize_getterinfo, GenericSetter<NormalThisPolicy>, &blockSize_setterinfo),
  JSPropertySpec::nativeAccessors("height", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &height_getterinfo, GenericSetter<NormalThisPolicy>, &height_setterinfo),
  JSPropertySpec::nativeAccessors("inlineSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &inlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &inlineSize_setterinfo),
  JSPropertySpec::nativeAccessors("inline-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &inlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &inlineSize_setterinfo),
  JSPropertySpec::nativeAccessors("minBlockSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minBlockSize_getterinfo, GenericSetter<NormalThisPolicy>, &minBlockSize_setterinfo),
  JSPropertySpec::nativeAccessors("min-block-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minBlockSize_getterinfo, GenericSetter<NormalThisPolicy>, &minBlockSize_setterinfo),
  JSPropertySpec::nativeAccessors("minHeight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minHeight_getterinfo, GenericSetter<NormalThisPolicy>, &minHeight_setterinfo),
  JSPropertySpec::nativeAccessors("min-height", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minHeight_getterinfo, GenericSetter<NormalThisPolicy>, &minHeight_setterinfo),
  JSPropertySpec::nativeAccessors("minInlineSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minInlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &minInlineSize_setterinfo),
  JSPropertySpec::nativeAccessors("min-inline-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minInlineSize_getterinfo, GenericSetter<NormalThisPolicy>, &minInlineSize_setterinfo),
  JSPropertySpec::nativeAccessors("minWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minWidth_getterinfo, GenericSetter<NormalThisPolicy>, &minWidth_setterinfo),
  JSPropertySpec::nativeAccessors("min-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &minWidth_getterinfo, GenericSetter<NormalThisPolicy>, &minWidth_setterinfo),
  JSPropertySpec::nativeAccessors("width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &width_getterinfo, GenericSetter<NormalThisPolicy>, &width_setterinfo),
  JSPropertySpec::nativeAccessors("borderBlockEndWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEndWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEndWidth_setterinfo),
  JSPropertySpec::nativeAccessors("border-block-end-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEndWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEndWidth_setterinfo),
  JSPropertySpec::nativeAccessors("borderBlockStartWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStartWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStartWidth_setterinfo),
  JSPropertySpec::nativeAccessors("border-block-start-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStartWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStartWidth_setterinfo),
  JSPropertySpec::nativeAccessors("borderBottomWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomWidth_setterinfo),
  JSPropertySpec::nativeAccessors("border-bottom-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomWidth_setterinfo),
  JSPropertySpec::nativeAccessors("borderInlineEndWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndWidth_setterinfo),
  JSPropertySpec::nativeAccessors("border-inline-end-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndWidth_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-border-end-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndWidth_setterinfo),
  JSPropertySpec::nativeAccessors("MozBorderEndWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndWidth_setterinfo),
  JSPropertySpec::nativeAccessors("borderInlineStartWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartWidth_setterinfo),
  JSPropertySpec::nativeAccessors("border-inline-start-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartWidth_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-border-start-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartWidth_setterinfo),
  JSPropertySpec::nativeAccessors("MozBorderStartWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartWidth_setterinfo),
  JSPropertySpec::nativeAccessors("borderLeftWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeftWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeftWidth_setterinfo),
  JSPropertySpec::nativeAccessors("border-left-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeftWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeftWidth_setterinfo),
  JSPropertySpec::nativeAccessors("borderRightWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRightWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderRightWidth_setterinfo),
  JSPropertySpec::nativeAccessors("border-right-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRightWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderRightWidth_setterinfo),
  JSPropertySpec::nativeAccessors("borderTopWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopWidth_setterinfo),
  JSPropertySpec::nativeAccessors("border-top-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopWidth_setterinfo),
  JSPropertySpec::nativeAccessors("columnRuleWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRuleWidth_getterinfo, GenericSetter<NormalThisPolicy>, &columnRuleWidth_setterinfo),
  JSPropertySpec::nativeAccessors("column-rule-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRuleWidth_getterinfo, GenericSetter<NormalThisPolicy>, &columnRuleWidth_setterinfo),
  JSPropertySpec::nativeAccessors("outlineWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineWidth_getterinfo, GenericSetter<NormalThisPolicy>, &outlineWidth_setterinfo),
  JSPropertySpec::nativeAccessors("outline-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineWidth_getterinfo, GenericSetter<NormalThisPolicy>, &outlineWidth_setterinfo),
  JSPropertySpec::nativeAccessors("overflowClipMargin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowClipMargin_getterinfo, GenericSetter<NormalThisPolicy>, &overflowClipMargin_setterinfo),
  JSPropertySpec::nativeAccessors("overflow-clip-margin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflowClipMargin_getterinfo, GenericSetter<NormalThisPolicy>, &overflowClipMargin_setterinfo),
  JSPropertySpec::nativeAccessors("scrollMarginBlockEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginBlockEnd_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-margin-block-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginBlockEnd_setterinfo),
  JSPropertySpec::nativeAccessors("scrollMarginBlockStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginBlockStart_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-margin-block-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginBlockStart_setterinfo),
  JSPropertySpec::nativeAccessors("scrollMarginBottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginBottom_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginBottom_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-margin-bottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginBottom_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginBottom_setterinfo),
  JSPropertySpec::nativeAccessors("scrollMarginInlineEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-margin-inline-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("scrollMarginInlineStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-margin-inline-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("scrollMarginLeft", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginLeft_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginLeft_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-margin-left", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginLeft_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginLeft_setterinfo),
  JSPropertySpec::nativeAccessors("scrollMarginRight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginRight_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginRight_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-margin-right", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginRight_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginRight_setterinfo),
  JSPropertySpec::nativeAccessors("scrollMarginTop", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginTop_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginTop_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-margin-top", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginTop_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginTop_setterinfo),
  JSPropertySpec::nativeAccessors("paddingBlockEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBlockEnd_setterinfo),
  JSPropertySpec::nativeAccessors("padding-block-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBlockEnd_setterinfo),
  JSPropertySpec::nativeAccessors("paddingBlockStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBlockStart_setterinfo),
  JSPropertySpec::nativeAccessors("padding-block-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBlockStart_setterinfo),
  JSPropertySpec::nativeAccessors("paddingBottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBottom_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBottom_setterinfo),
  JSPropertySpec::nativeAccessors("padding-bottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBottom_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBottom_setterinfo),
  JSPropertySpec::nativeAccessors("paddingInlineEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("padding-inline-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-padding-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("MozPaddingEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("paddingInlineStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("padding-inline-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-padding-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("MozPaddingStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("paddingLeft", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingLeft_getterinfo, GenericSetter<NormalThisPolicy>, &paddingLeft_setterinfo),
  JSPropertySpec::nativeAccessors("padding-left", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingLeft_getterinfo, GenericSetter<NormalThisPolicy>, &paddingLeft_setterinfo),
  JSPropertySpec::nativeAccessors("paddingRight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingRight_getterinfo, GenericSetter<NormalThisPolicy>, &paddingRight_setterinfo),
  JSPropertySpec::nativeAccessors("padding-right", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingRight_getterinfo, GenericSetter<NormalThisPolicy>, &paddingRight_setterinfo),
  JSPropertySpec::nativeAccessors("paddingTop", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingTop_getterinfo, GenericSetter<NormalThisPolicy>, &paddingTop_setterinfo),
  JSPropertySpec::nativeAccessors("padding-top", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingTop_getterinfo, GenericSetter<NormalThisPolicy>, &paddingTop_setterinfo),
  JSPropertySpec::nativeAccessors("r", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &r_getterinfo, GenericSetter<NormalThisPolicy>, &r_setterinfo),
  JSPropertySpec::nativeAccessors("shapeMargin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeMargin_getterinfo, GenericSetter<NormalThisPolicy>, &shapeMargin_setterinfo),
  JSPropertySpec::nativeAccessors("shape-margin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &shapeMargin_getterinfo, GenericSetter<NormalThisPolicy>, &shapeMargin_setterinfo),
  JSPropertySpec::nativeAccessors("rx", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &rx_getterinfo, GenericSetter<NormalThisPolicy>, &rx_setterinfo),
  JSPropertySpec::nativeAccessors("ry", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &ry_getterinfo, GenericSetter<NormalThisPolicy>, &ry_setterinfo),
  JSPropertySpec::nativeAccessors("scrollPaddingBlockEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingBlockEnd_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-padding-block-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingBlockEnd_setterinfo),
  JSPropertySpec::nativeAccessors("scrollPaddingBlockStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingBlockStart_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-padding-block-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingBlockStart_setterinfo),
  JSPropertySpec::nativeAccessors("scrollPaddingBottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingBottom_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingBottom_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-padding-bottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingBottom_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingBottom_setterinfo),
  JSPropertySpec::nativeAccessors("scrollPaddingInlineEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-padding-inline-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("scrollPaddingInlineStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-padding-inline-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("scrollPaddingLeft", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingLeft_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingLeft_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-padding-left", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingLeft_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingLeft_setterinfo),
  JSPropertySpec::nativeAccessors("scrollPaddingRight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingRight_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingRight_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-padding-right", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingRight_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingRight_setterinfo),
  JSPropertySpec::nativeAccessors("scrollPaddingTop", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingTop_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingTop_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-padding-top", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingTop_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingTop_setterinfo),
  JSPropertySpec::nativeAccessors("backgroundColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundColor_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundColor_setterinfo),
  JSPropertySpec::nativeAccessors("background-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundColor_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundColor_setterinfo),
  JSPropertySpec::nativeAccessors("borderBlockEndColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEndColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEndColor_setterinfo),
  JSPropertySpec::nativeAccessors("border-block-end-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEndColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEndColor_setterinfo),
  JSPropertySpec::nativeAccessors("borderBlockStartColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStartColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStartColor_setterinfo),
  JSPropertySpec::nativeAccessors("border-block-start-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStartColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStartColor_setterinfo),
  JSPropertySpec::nativeAccessors("borderBottomColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomColor_setterinfo),
  JSPropertySpec::nativeAccessors("border-bottom-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottomColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottomColor_setterinfo),
  JSPropertySpec::nativeAccessors("borderInlineEndColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndColor_setterinfo),
  JSPropertySpec::nativeAccessors("border-inline-end-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndColor_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-border-end-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndColor_setterinfo),
  JSPropertySpec::nativeAccessors("MozBorderEndColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEndColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEndColor_setterinfo),
  JSPropertySpec::nativeAccessors("borderInlineStartColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartColor_setterinfo),
  JSPropertySpec::nativeAccessors("border-inline-start-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartColor_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-border-start-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartColor_setterinfo),
  JSPropertySpec::nativeAccessors("MozBorderStartColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStartColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStartColor_setterinfo),
  JSPropertySpec::nativeAccessors("borderLeftColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeftColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeftColor_setterinfo),
  JSPropertySpec::nativeAccessors("border-left-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeftColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeftColor_setterinfo),
  JSPropertySpec::nativeAccessors("borderRightColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRightColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderRightColor_setterinfo),
  JSPropertySpec::nativeAccessors("border-right-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRightColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderRightColor_setterinfo),
  JSPropertySpec::nativeAccessors("borderTopColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopColor_setterinfo),
  JSPropertySpec::nativeAccessors("border-top-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTopColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderTopColor_setterinfo),
  JSPropertySpec::nativeAccessors("columnRuleColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRuleColor_getterinfo, GenericSetter<NormalThisPolicy>, &columnRuleColor_setterinfo),
  JSPropertySpec::nativeAccessors("column-rule-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRuleColor_getterinfo, GenericSetter<NormalThisPolicy>, &columnRuleColor_setterinfo),
  JSPropertySpec::nativeAccessors("floodColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &floodColor_getterinfo, GenericSetter<NormalThisPolicy>, &floodColor_setterinfo),
  JSPropertySpec::nativeAccessors("flood-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &floodColor_getterinfo, GenericSetter<NormalThisPolicy>, &floodColor_setterinfo),
  JSPropertySpec::nativeAccessors("lightingColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &lightingColor_getterinfo, GenericSetter<NormalThisPolicy>, &lightingColor_setterinfo),
  JSPropertySpec::nativeAccessors("lighting-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &lightingColor_getterinfo, GenericSetter<NormalThisPolicy>, &lightingColor_setterinfo),
  JSPropertySpec::nativeAccessors("outlineColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineColor_getterinfo, GenericSetter<NormalThisPolicy>, &outlineColor_setterinfo),
  JSPropertySpec::nativeAccessors("outline-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outlineColor_getterinfo, GenericSetter<NormalThisPolicy>, &outlineColor_setterinfo),
  JSPropertySpec::nativeAccessors("stopColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &stopColor_getterinfo, GenericSetter<NormalThisPolicy>, &stopColor_setterinfo),
  JSPropertySpec::nativeAccessors("stop-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &stopColor_getterinfo, GenericSetter<NormalThisPolicy>, &stopColor_setterinfo),
  JSPropertySpec::nativeAccessors("textDecorationColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationColor_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationColor_setterinfo),
  JSPropertySpec::nativeAccessors("text-decoration-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecorationColor_getterinfo, GenericSetter<NormalThisPolicy>, &textDecorationColor_setterinfo),
  JSPropertySpec::nativeAccessors("textEmphasisColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasisColor_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasisColor_setterinfo),
  JSPropertySpec::nativeAccessors("text-emphasis-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasisColor_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasisColor_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTextFillColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextFillColor_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextFillColor_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTextFillColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextFillColor_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextFillColor_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-text-fill-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextFillColor_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextFillColor_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTextStrokeColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStrokeColor_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStrokeColor_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTextStrokeColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStrokeColor_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStrokeColor_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-text-stroke-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStrokeColor_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStrokeColor_setterinfo),
  JSPropertySpec::nativeAccessors("background", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &background_getterinfo, GenericSetter<NormalThisPolicy>, &background_setterinfo),
  JSPropertySpec::nativeAccessors("backgroundPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundPosition_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundPosition_setterinfo),
  JSPropertySpec::nativeAccessors("background-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &backgroundPosition_getterinfo, GenericSetter<NormalThisPolicy>, &backgroundPosition_setterinfo),
  JSPropertySpec::nativeAccessors("borderColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderColor_setterinfo),
  JSPropertySpec::nativeAccessors("border-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderColor_setterinfo),
  JSPropertySpec::nativeAccessors("borderStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderStyle_setterinfo),
  JSPropertySpec::nativeAccessors("border-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderStyle_setterinfo),
  JSPropertySpec::nativeAccessors("borderWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderWidth_setterinfo),
  JSPropertySpec::nativeAccessors("border-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderWidth_setterinfo),
  JSPropertySpec::nativeAccessors("borderTop", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTop_getterinfo, GenericSetter<NormalThisPolicy>, &borderTop_setterinfo),
  JSPropertySpec::nativeAccessors("border-top", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderTop_getterinfo, GenericSetter<NormalThisPolicy>, &borderTop_setterinfo),
  JSPropertySpec::nativeAccessors("borderRight", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRight_getterinfo, GenericSetter<NormalThisPolicy>, &borderRight_setterinfo),
  JSPropertySpec::nativeAccessors("border-right", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRight_getterinfo, GenericSetter<NormalThisPolicy>, &borderRight_setterinfo),
  JSPropertySpec::nativeAccessors("borderBottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottom_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottom_setterinfo),
  JSPropertySpec::nativeAccessors("border-bottom", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBottom_getterinfo, GenericSetter<NormalThisPolicy>, &borderBottom_setterinfo),
  JSPropertySpec::nativeAccessors("borderLeft", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeft_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeft_setterinfo),
  JSPropertySpec::nativeAccessors("border-left", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderLeft_getterinfo, GenericSetter<NormalThisPolicy>, &borderLeft_setterinfo),
  JSPropertySpec::nativeAccessors("borderBlockStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStart_setterinfo),
  JSPropertySpec::nativeAccessors("border-block-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStart_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStart_setterinfo),
  JSPropertySpec::nativeAccessors("borderBlockEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEnd_setterinfo),
  JSPropertySpec::nativeAccessors("border-block-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockEnd_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockEnd_setterinfo),
  JSPropertySpec::nativeAccessors("borderInlineStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("border-inline-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-border-start", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("MozBorderStart", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStart_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStart_setterinfo),
  JSPropertySpec::nativeAccessors("borderInlineEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("border-inline-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-border-end", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("MozBorderEnd", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineEnd_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineEnd_setterinfo),
  JSPropertySpec::nativeAccessors("border", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &border_getterinfo, GenericSetter<NormalThisPolicy>, &border_setterinfo),
  JSPropertySpec::nativeAccessors("borderRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderRadius_setterinfo),
  JSPropertySpec::nativeAccessors("border-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderRadius_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBorderRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderRadius_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-border-radius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderRadius_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBorderRadius", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderRadius_getterinfo, GenericSetter<NormalThisPolicy>, &borderRadius_setterinfo),
  JSPropertySpec::nativeAccessors("borderImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImage_getterinfo, GenericSetter<NormalThisPolicy>, &borderImage_setterinfo),
  JSPropertySpec::nativeAccessors("border-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImage_getterinfo, GenericSetter<NormalThisPolicy>, &borderImage_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitBorderImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImage_getterinfo, GenericSetter<NormalThisPolicy>, &borderImage_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-border-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImage_getterinfo, GenericSetter<NormalThisPolicy>, &borderImage_setterinfo),
  JSPropertySpec::nativeAccessors("webkitBorderImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderImage_getterinfo, GenericSetter<NormalThisPolicy>, &borderImage_setterinfo),
  JSPropertySpec::nativeAccessors("borderBlockWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockWidth_setterinfo),
  JSPropertySpec::nativeAccessors("border-block-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockWidth_setterinfo),
  JSPropertySpec::nativeAccessors("borderBlockStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStyle_setterinfo),
  JSPropertySpec::nativeAccessors("border-block-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockStyle_setterinfo),
  JSPropertySpec::nativeAccessors("borderBlockColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockColor_setterinfo),
  JSPropertySpec::nativeAccessors("border-block-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlockColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlockColor_setterinfo),
  JSPropertySpec::nativeAccessors("borderInlineWidth", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineWidth_setterinfo),
  JSPropertySpec::nativeAccessors("border-inline-width", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineWidth_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineWidth_setterinfo),
  JSPropertySpec::nativeAccessors("borderInlineStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStyle_setterinfo),
  JSPropertySpec::nativeAccessors("border-inline-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineStyle_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineStyle_setterinfo),
  JSPropertySpec::nativeAccessors("borderInlineColor", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineColor_setterinfo),
  JSPropertySpec::nativeAccessors("border-inline-color", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInlineColor_getterinfo, GenericSetter<NormalThisPolicy>, &borderInlineColor_setterinfo),
  JSPropertySpec::nativeAccessors("borderBlock", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlock_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlock_setterinfo),
  JSPropertySpec::nativeAccessors("border-block", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderBlock_getterinfo, GenericSetter<NormalThisPolicy>, &borderBlock_setterinfo),
  JSPropertySpec::nativeAccessors("borderInline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInline_getterinfo, GenericSetter<NormalThisPolicy>, &borderInline_setterinfo),
  JSPropertySpec::nativeAccessors("border-inline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &borderInline_getterinfo, GenericSetter<NormalThisPolicy>, &borderInline_setterinfo),
  JSPropertySpec::nativeAccessors("overflow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overflow_getterinfo, GenericSetter<NormalThisPolicy>, &overflow_setterinfo),
  JSPropertySpec::nativeAccessors("overscrollBehavior", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehavior_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehavior_setterinfo),
  JSPropertySpec::nativeAccessors("overscroll-behavior", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &overscrollBehavior_getterinfo, GenericSetter<NormalThisPolicy>, &overscrollBehavior_setterinfo),
  JSPropertySpec::nativeAccessors("container", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &container_getterinfo, GenericSetter<NormalThisPolicy>, &container_setterinfo),
  JSPropertySpec::nativeAccessors("pageBreakBefore", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pageBreakBefore_getterinfo, GenericSetter<NormalThisPolicy>, &pageBreakBefore_setterinfo),
  JSPropertySpec::nativeAccessors("page-break-before", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pageBreakBefore_getterinfo, GenericSetter<NormalThisPolicy>, &pageBreakBefore_setterinfo),
  JSPropertySpec::nativeAccessors("pageBreakAfter", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pageBreakAfter_getterinfo, GenericSetter<NormalThisPolicy>, &pageBreakAfter_setterinfo),
  JSPropertySpec::nativeAccessors("page-break-after", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pageBreakAfter_getterinfo, GenericSetter<NormalThisPolicy>, &pageBreakAfter_setterinfo),
  JSPropertySpec::nativeAccessors("pageBreakInside", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pageBreakInside_getterinfo, GenericSetter<NormalThisPolicy>, &pageBreakInside_setterinfo),
  JSPropertySpec::nativeAccessors("page-break-inside", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &pageBreakInside_getterinfo, GenericSetter<NormalThisPolicy>, &pageBreakInside_setterinfo),
  JSPropertySpec::nativeAccessors("offset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &offset_getterinfo, GenericSetter<NormalThisPolicy>, &offset_setterinfo),
  JSPropertySpec::nativeAccessors("webkitPerspective", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitPerspective_getterinfo, GenericSetter<NormalThisPolicy>, &webkitPerspective_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitPerspective", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitPerspective_getterinfo, GenericSetter<NormalThisPolicy>, &webkitPerspective_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-perspective", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitPerspective_getterinfo, GenericSetter<NormalThisPolicy>, &webkitPerspective_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTransform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransform_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransform_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTransform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransform_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransform_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-transform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTransform_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTransform_setterinfo),
  JSPropertySpec::nativeAccessors("columns", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columns_getterinfo, GenericSetter<NormalThisPolicy>, &columns_setterinfo),
  JSPropertySpec::nativeAccessors("columnRule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRule_getterinfo, GenericSetter<NormalThisPolicy>, &columnRule_setterinfo),
  JSPropertySpec::nativeAccessors("column-rule", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &columnRule_getterinfo, GenericSetter<NormalThisPolicy>, &columnRule_setterinfo),
  JSPropertySpec::nativeAccessors("font", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &font_getterinfo, GenericSetter<NormalThisPolicy>, &font_setterinfo),
  JSPropertySpec::nativeAccessors("fontVariant", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariant_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariant_setterinfo),
  JSPropertySpec::nativeAccessors("font-variant", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontVariant_getterinfo, GenericSetter<NormalThisPolicy>, &fontVariant_setterinfo),
  JSPropertySpec::nativeAccessors("fontSynthesis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSynthesis_getterinfo, GenericSetter<NormalThisPolicy>, &fontSynthesis_setterinfo),
  JSPropertySpec::nativeAccessors("font-synthesis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &fontSynthesis_getterinfo, GenericSetter<NormalThisPolicy>, &fontSynthesis_setterinfo),
  JSPropertySpec::nativeAccessors("marker", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marker_getterinfo, GenericSetter<NormalThisPolicy>, &marker_setterinfo),
  JSPropertySpec::nativeAccessors("textEmphasis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasis_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasis_setterinfo),
  JSPropertySpec::nativeAccessors("text-emphasis", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textEmphasis_getterinfo, GenericSetter<NormalThisPolicy>, &textEmphasis_setterinfo),
  JSPropertySpec::nativeAccessors("textWrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textWrap_getterinfo, GenericSetter<NormalThisPolicy>, &textWrap_setterinfo),
  JSPropertySpec::nativeAccessors("text-wrap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textWrap_getterinfo, GenericSetter<NormalThisPolicy>, &textWrap_setterinfo),
  JSPropertySpec::nativeAccessors("whiteSpace", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &whiteSpace_getterinfo, GenericSetter<NormalThisPolicy>, &whiteSpace_setterinfo),
  JSPropertySpec::nativeAccessors("white-space", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &whiteSpace_getterinfo, GenericSetter<NormalThisPolicy>, &whiteSpace_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTextStroke", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStroke_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStroke_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTextStroke", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStroke_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStroke_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-text-stroke", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &webkitTextStroke_getterinfo, GenericSetter<NormalThisPolicy>, &webkitTextStroke_setterinfo),
  JSPropertySpec::nativeAccessors("listStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStyle_getterinfo, GenericSetter<NormalThisPolicy>, &listStyle_setterinfo),
  JSPropertySpec::nativeAccessors("list-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &listStyle_getterinfo, GenericSetter<NormalThisPolicy>, &listStyle_setterinfo),
  JSPropertySpec::nativeAccessors("margin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &margin_getterinfo, GenericSetter<NormalThisPolicy>, &margin_setterinfo),
  JSPropertySpec::nativeAccessors("marginBlock", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBlock_getterinfo, GenericSetter<NormalThisPolicy>, &marginBlock_setterinfo),
  JSPropertySpec::nativeAccessors("margin-block", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginBlock_getterinfo, GenericSetter<NormalThisPolicy>, &marginBlock_setterinfo),
  JSPropertySpec::nativeAccessors("marginInline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInline_getterinfo, GenericSetter<NormalThisPolicy>, &marginInline_setterinfo),
  JSPropertySpec::nativeAccessors("margin-inline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &marginInline_getterinfo, GenericSetter<NormalThisPolicy>, &marginInline_setterinfo),
  JSPropertySpec::nativeAccessors("scrollMargin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMargin_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMargin_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-margin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMargin_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMargin_setterinfo),
  JSPropertySpec::nativeAccessors("scrollMarginBlock", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginBlock_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginBlock_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-margin-block", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginBlock_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginBlock_setterinfo),
  JSPropertySpec::nativeAccessors("scrollMarginInline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginInline_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginInline_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-margin-inline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollMarginInline_getterinfo, GenericSetter<NormalThisPolicy>, &scrollMarginInline_setterinfo),
  JSPropertySpec::nativeAccessors("outline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &outline_getterinfo, GenericSetter<NormalThisPolicy>, &outline_setterinfo),
  JSPropertySpec::nativeAccessors("padding", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &padding_getterinfo, GenericSetter<NormalThisPolicy>, &padding_setterinfo),
  JSPropertySpec::nativeAccessors("paddingBlock", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBlock_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBlock_setterinfo),
  JSPropertySpec::nativeAccessors("padding-block", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingBlock_getterinfo, GenericSetter<NormalThisPolicy>, &paddingBlock_setterinfo),
  JSPropertySpec::nativeAccessors("paddingInline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInline_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInline_setterinfo),
  JSPropertySpec::nativeAccessors("padding-inline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &paddingInline_getterinfo, GenericSetter<NormalThisPolicy>, &paddingInline_setterinfo),
  JSPropertySpec::nativeAccessors("scrollPadding", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPadding_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPadding_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-padding", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPadding_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPadding_setterinfo),
  JSPropertySpec::nativeAccessors("scrollPaddingBlock", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingBlock_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingBlock_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-padding-block", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingBlock_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingBlock_setterinfo),
  JSPropertySpec::nativeAccessors("scrollPaddingInline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingInline_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingInline_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-padding-inline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollPaddingInline_getterinfo, GenericSetter<NormalThisPolicy>, &scrollPaddingInline_setterinfo),
  JSPropertySpec::nativeAccessors("flexFlow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexFlow_getterinfo, GenericSetter<NormalThisPolicy>, &flexFlow_setterinfo),
  JSPropertySpec::nativeAccessors("flex-flow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexFlow_getterinfo, GenericSetter<NormalThisPolicy>, &flexFlow_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitFlexFlow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexFlow_getterinfo, GenericSetter<NormalThisPolicy>, &flexFlow_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-flex-flow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexFlow_getterinfo, GenericSetter<NormalThisPolicy>, &flexFlow_setterinfo),
  JSPropertySpec::nativeAccessors("webkitFlexFlow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flexFlow_getterinfo, GenericSetter<NormalThisPolicy>, &flexFlow_setterinfo),
  JSPropertySpec::nativeAccessors("flex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flex_getterinfo, GenericSetter<NormalThisPolicy>, &flex_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitFlex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flex_getterinfo, GenericSetter<NormalThisPolicy>, &flex_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-flex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flex_getterinfo, GenericSetter<NormalThisPolicy>, &flex_setterinfo),
  JSPropertySpec::nativeAccessors("webkitFlex", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &flex_getterinfo, GenericSetter<NormalThisPolicy>, &flex_setterinfo),
  JSPropertySpec::nativeAccessors("gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gap_getterinfo, GenericSetter<NormalThisPolicy>, &gap_setterinfo),
  JSPropertySpec::nativeAccessors("grid-gap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gap_getterinfo, GenericSetter<NormalThisPolicy>, &gap_setterinfo),
  JSPropertySpec::nativeAccessors("gridGap", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gap_getterinfo, GenericSetter<NormalThisPolicy>, &gap_setterinfo),
  JSPropertySpec::nativeAccessors("gridRow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRow_getterinfo, GenericSetter<NormalThisPolicy>, &gridRow_setterinfo),
  JSPropertySpec::nativeAccessors("grid-row", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridRow_getterinfo, GenericSetter<NormalThisPolicy>, &gridRow_setterinfo),
  JSPropertySpec::nativeAccessors("gridColumn", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumn_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumn_setterinfo),
  JSPropertySpec::nativeAccessors("grid-column", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridColumn_getterinfo, GenericSetter<NormalThisPolicy>, &gridColumn_setterinfo),
  JSPropertySpec::nativeAccessors("gridArea", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridArea_getterinfo, GenericSetter<NormalThisPolicy>, &gridArea_setterinfo),
  JSPropertySpec::nativeAccessors("grid-area", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridArea_getterinfo, GenericSetter<NormalThisPolicy>, &gridArea_setterinfo),
  JSPropertySpec::nativeAccessors("gridTemplate", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplate_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplate_setterinfo),
  JSPropertySpec::nativeAccessors("grid-template", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &gridTemplate_getterinfo, GenericSetter<NormalThisPolicy>, &gridTemplate_setterinfo),
  JSPropertySpec::nativeAccessors("grid", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &grid_getterinfo, GenericSetter<NormalThisPolicy>, &grid_setterinfo),
  JSPropertySpec::nativeAccessors("placeContent", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &placeContent_getterinfo, GenericSetter<NormalThisPolicy>, &placeContent_setterinfo),
  JSPropertySpec::nativeAccessors("place-content", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &placeContent_getterinfo, GenericSetter<NormalThisPolicy>, &placeContent_setterinfo),
  JSPropertySpec::nativeAccessors("placeSelf", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &placeSelf_getterinfo, GenericSetter<NormalThisPolicy>, &placeSelf_setterinfo),
  JSPropertySpec::nativeAccessors("place-self", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &placeSelf_getterinfo, GenericSetter<NormalThisPolicy>, &placeSelf_setterinfo),
  JSPropertySpec::nativeAccessors("placeItems", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &placeItems_getterinfo, GenericSetter<NormalThisPolicy>, &placeItems_setterinfo),
  JSPropertySpec::nativeAccessors("place-items", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &placeItems_getterinfo, GenericSetter<NormalThisPolicy>, &placeItems_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("positionTry", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &positionTry_getterinfo, GenericSetter<NormalThisPolicy>, &positionTry_setterinfo),
  JSPropertySpec::nativeAccessors("position-try", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &positionTry_getterinfo, GenericSetter<NormalThisPolicy>, &positionTry_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("inset", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &inset_getterinfo, GenericSetter<NormalThisPolicy>, &inset_setterinfo),
  JSPropertySpec::nativeAccessors("insetBlock", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetBlock_getterinfo, GenericSetter<NormalThisPolicy>, &insetBlock_setterinfo),
  JSPropertySpec::nativeAccessors("inset-block", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetBlock_getterinfo, GenericSetter<NormalThisPolicy>, &insetBlock_setterinfo),
  JSPropertySpec::nativeAccessors("insetInline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetInline_getterinfo, GenericSetter<NormalThisPolicy>, &insetInline_setterinfo),
  JSPropertySpec::nativeAccessors("inset-inline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &insetInline_getterinfo, GenericSetter<NormalThisPolicy>, &insetInline_setterinfo),
  JSPropertySpec::nativeAccessors("containIntrinsicSize", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containIntrinsicSize_getterinfo, GenericSetter<NormalThisPolicy>, &containIntrinsicSize_setterinfo),
  JSPropertySpec::nativeAccessors("contain-intrinsic-size", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &containIntrinsicSize_getterinfo, GenericSetter<NormalThisPolicy>, &containIntrinsicSize_setterinfo),
  JSPropertySpec::nativeAccessors("mask", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mask_getterinfo, GenericSetter<NormalThisPolicy>, &mask_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitMask", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mask_getterinfo, GenericSetter<NormalThisPolicy>, &mask_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-mask", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mask_getterinfo, GenericSetter<NormalThisPolicy>, &mask_setterinfo),
  JSPropertySpec::nativeAccessors("webkitMask", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &mask_getterinfo, GenericSetter<NormalThisPolicy>, &mask_setterinfo),
  JSPropertySpec::nativeAccessors("maskPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPosition_getterinfo, GenericSetter<NormalThisPolicy>, &maskPosition_setterinfo),
  JSPropertySpec::nativeAccessors("mask-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPosition_getterinfo, GenericSetter<NormalThisPolicy>, &maskPosition_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitMaskPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPosition_getterinfo, GenericSetter<NormalThisPolicy>, &maskPosition_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-mask-position", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPosition_getterinfo, GenericSetter<NormalThisPolicy>, &maskPosition_setterinfo),
  JSPropertySpec::nativeAccessors("webkitMaskPosition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &maskPosition_getterinfo, GenericSetter<NormalThisPolicy>, &maskPosition_setterinfo),
  JSPropertySpec::nativeAccessors("textDecoration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecoration_getterinfo, GenericSetter<NormalThisPolicy>, &textDecoration_setterinfo),
  JSPropertySpec::nativeAccessors("text-decoration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &textDecoration_getterinfo, GenericSetter<NormalThisPolicy>, &textDecoration_setterinfo),
  JSPropertySpec::nativeAccessors("transition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transition_getterinfo, GenericSetter<NormalThisPolicy>, &transition_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitTransition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transition_getterinfo, GenericSetter<NormalThisPolicy>, &transition_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-transition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transition_getterinfo, GenericSetter<NormalThisPolicy>, &transition_setterinfo),
  JSPropertySpec::nativeAccessors("webkitTransition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &transition_getterinfo, GenericSetter<NormalThisPolicy>, &transition_setterinfo),
  JSPropertySpec::nativeAccessors("animation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animation_getterinfo, GenericSetter<NormalThisPolicy>, &animation_setterinfo),
  JSPropertySpec::nativeAccessors("WebkitAnimation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animation_getterinfo, GenericSetter<NormalThisPolicy>, &animation_setterinfo),
  JSPropertySpec::nativeAccessors("-webkit-animation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animation_getterinfo, GenericSetter<NormalThisPolicy>, &animation_setterinfo),
  JSPropertySpec::nativeAccessors("webkitAnimation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &animation_getterinfo, GenericSetter<NormalThisPolicy>, &animation_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("scrollTimeline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollTimeline_getterinfo, GenericSetter<NormalThisPolicy>, &scrollTimeline_setterinfo),
  JSPropertySpec::nativeAccessors("scroll-timeline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &scrollTimeline_getterinfo, GenericSetter<NormalThisPolicy>, &scrollTimeline_setterinfo),
  JSPropertySpec::nativeAccessors("viewTimeline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &viewTimeline_getterinfo, GenericSetter<NormalThisPolicy>, &viewTimeline_setterinfo),
  JSPropertySpec::nativeAccessors("view-timeline", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &viewTimeline_getterinfo, GenericSetter<NormalThisPolicy>, &viewTimeline_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("all", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &all_getterinfo, GenericSetter<NormalThisPolicy>, &all_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozTransform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransform_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransform_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-transform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransform_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransform_setterinfo),
  JSPropertySpec::nativeAccessors("MozPerspective", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozPerspective_getterinfo, GenericSetter<NormalThisPolicy>, &MozPerspective_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-perspective", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozPerspective_getterinfo, GenericSetter<NormalThisPolicy>, &MozPerspective_setterinfo),
  JSPropertySpec::nativeAccessors("MozPerspectiveOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozPerspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &MozPerspectiveOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-perspective-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozPerspectiveOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &MozPerspectiveOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("MozBackfaceVisibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBackfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &MozBackfaceVisibility_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-backface-visibility", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBackfaceVisibility_getterinfo, GenericSetter<NormalThisPolicy>, &MozBackfaceVisibility_setterinfo),
  JSPropertySpec::nativeAccessors("MozTransformStyle", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransformStyle_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-transform-style", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransformStyle_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransformStyle_setterinfo),
  JSPropertySpec::nativeAccessors("MozTransformOrigin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransformOrigin_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-transform-origin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransformOrigin_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransformOrigin_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozAppearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAppearance_getterinfo, GenericSetter<NormalThisPolicy>, &MozAppearance_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-appearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAppearance_getterinfo, GenericSetter<NormalThisPolicy>, &MozAppearance_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozFontFeatureSettings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozFontFeatureSettings_getterinfo, GenericSetter<NormalThisPolicy>, &MozFontFeatureSettings_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-font-feature-settings", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozFontFeatureSettings_getterinfo, GenericSetter<NormalThisPolicy>, &MozFontFeatureSettings_setterinfo),
  JSPropertySpec::nativeAccessors("MozFontLanguageOverride", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozFontLanguageOverride_getterinfo, GenericSetter<NormalThisPolicy>, &MozFontLanguageOverride_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-font-language-override", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozFontLanguageOverride_getterinfo, GenericSetter<NormalThisPolicy>, &MozFontLanguageOverride_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozBoxSizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxSizing_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-box-sizing", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxSizing_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxSizing_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozTransitionDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionDuration_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-transition-duration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionDuration_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionDuration_setterinfo),
  JSPropertySpec::nativeAccessors("MozTransitionTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-transition-timing-function", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("MozTransitionProperty", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionProperty_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-transition-property", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionProperty_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionProperty_setterinfo),
  JSPropertySpec::nativeAccessors("MozTransitionDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionDelay_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-transition-delay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransitionDelay_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransitionDelay_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozAnimationName", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationName_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationName_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-animation-name", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationName_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationName_setterinfo),
  JSPropertySpec::nativeAccessors("MozAnimationDuration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationDuration_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-animation-duration", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationDuration_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationDuration_setterinfo),
  JSPropertySpec::nativeAccessors("MozAnimationTimingFunction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-animation-timing-function", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationTimingFunction_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationTimingFunction_setterinfo),
  JSPropertySpec::nativeAccessors("MozAnimationIterationCount", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationIterationCount_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-animation-iteration-count", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationIterationCount_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationIterationCount_setterinfo),
  JSPropertySpec::nativeAccessors("MozAnimationDirection", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationDirection_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-animation-direction", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationDirection_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationDirection_setterinfo),
  JSPropertySpec::nativeAccessors("MozAnimationPlayState", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationPlayState_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-animation-play-state", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationPlayState_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationPlayState_setterinfo),
  JSPropertySpec::nativeAccessors("MozAnimationFillMode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationFillMode_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-animation-fill-mode", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationFillMode_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationFillMode_setterinfo),
  JSPropertySpec::nativeAccessors("MozAnimationDelay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationDelay_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-animation-delay", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimationDelay_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimationDelay_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozBorderImage", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderImage_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderImage_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-border-image", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBorderImage_getterinfo, GenericSetter<NormalThisPolicy>, &MozBorderImage_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozTransition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransition_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransition_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-transition", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTransition_getterinfo, GenericSetter<NormalThisPolicy>, &MozTransition_setterinfo),
  JS_PS_END,
  JSPropertySpec::nativeAccessors("MozAnimation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimation_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimation_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-animation", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozAnimation_getterinfo, GenericSetter<NormalThisPolicy>, &MozAnimation_setterinfo),
  JS_PS_END
};

static const PrefableDisablers sAttributes_disablers52 = {
  WebIDLPrefIndex::layout_css_field_sizing_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers72 = {
  WebIDLPrefIndex::layout_css_font_variations_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers88 = {
  WebIDLPrefIndex::layout_css_font_variant_emoji_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers113 = {
  WebIDLPrefIndex::layout_css_initial_letter_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers126 = {
  WebIDLPrefIndex::layout_css_grid_template_masonry_value_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers132 = {
  WebIDLPrefIndex::mathml_math_shift_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers160 = {
  WebIDLPrefIndex::layout_css_moz_control_character_visibility_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers168 = {
  WebIDLPrefIndex::layout_css_osx_font_smoothing_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers186 = {
  WebIDLPrefIndex::layout_css_scroll_anchoring_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers199 = {
  WebIDLPrefIndex::layout_css_anchor_positioning_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers202 = {
  WebIDLPrefIndex::layout_css_anchor_positioning_position_try_order_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers205 = {
  WebIDLPrefIndex::layout_css_anchor_positioning_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers244 = {
  WebIDLPrefIndex::layout_css_text_autospace_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers307 = {
  WebIDLPrefIndex::layout_css_zoom_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers424 = {
  WebIDLPrefIndex::layout_css_anchor_positioning_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers467 = {
  WebIDLPrefIndex::layout_css_scroll_driven_animations_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers476 = {
  WebIDLPrefIndex::NoPref, 0, false, OriginTrial(0), &nsCSSProps::IsBackdropFilterAvailable
};

static const PrefableDisablers sAttributes_disablers560 = {
  WebIDLPrefIndex::layout_css_font_palette_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers568 = {
  WebIDLPrefIndex::layout_css_font_variations_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers626 = {
  WebIDLPrefIndex::svg_context_properties_content_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers640 = {
  WebIDLPrefIndex::layout_css_anchor_positioning_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers649 = {
  WebIDLPrefIndex::layout_css_scroll_driven_animations_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers669 = {
  WebIDLPrefIndex::layout_css_text_decoration_inset_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers715 = {
  WebIDLPrefIndex::layout_css_scroll_driven_animations_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers722 = {
  WebIDLPrefIndex::dom_viewTransitions_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers1143 = {
  WebIDLPrefIndex::layout_css_anchor_positioning_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers1173 = {
  WebIDLPrefIndex::layout_css_scroll_driven_animations_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers1180 = {
  WebIDLPrefIndex::layout_css_prefixes_transforms, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers1193 = {
  WebIDLPrefIndex::layout_css_moz_appearance_webidl_enabled, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers1196 = {
  WebIDLPrefIndex::layout_css_prefixes_font_features, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers1201 = {
  WebIDLPrefIndex::layout_css_prefixes_box_sizing, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers1204 = {
  WebIDLPrefIndex::layout_css_prefixes_transitions, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers1213 = {
  WebIDLPrefIndex::layout_css_prefixes_animations, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers1230 = {
  WebIDLPrefIndex::layout_css_prefixes_border_image, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers1233 = {
  WebIDLPrefIndex::layout_css_prefixes_transitions, 0, false, OriginTrial(0), nullptr
};

static const PrefableDisablers sAttributes_disablers1236 = {
  WebIDLPrefIndex::layout_css_prefixes_animations, 0, false, OriginTrial(0), nullptr
};

static const Prefable<const JSPropertySpec> sAttributes[] = {
  { nullptr, &sAttributes_specs[0] },
  { &sAttributes_disablers52, &sAttributes_specs[52] },
  { nullptr, &sAttributes_specs[55] },
  { &sAttributes_disablers72, &sAttributes_specs[72] },
  { nullptr, &sAttributes_specs[75] },
  { &sAttributes_disablers88, &sAttributes_specs[88] },
  { nullptr, &sAttributes_specs[91] },
  { &sAttributes_disablers113, &sAttributes_specs[113] },
  { nullptr, &sAttributes_specs[116] },
  { &sAttributes_disablers126, &sAttributes_specs[126] },
  { nullptr, &sAttributes_specs[129] },
  { &sAttributes_disablers132, &sAttributes_specs[132] },
  { nullptr, &sAttributes_specs[135] },
  { &sAttributes_disablers160, &sAttributes_specs[160] },
  { nullptr, &sAttributes_specs[163] },
  { &sAttributes_disablers168, &sAttributes_specs[168] },
  { nullptr, &sAttributes_specs[174] },
  { &sAttributes_disablers186, &sAttributes_specs[186] },
  { nullptr, &sAttributes_specs[189] },
  { &sAttributes_disablers199, &sAttributes_specs[199] },
  { &sAttributes_disablers202, &sAttributes_specs[202] },
  { &sAttributes_disablers205, &sAttributes_specs[205] },
  { nullptr, &sAttributes_specs[208] },
  { &sAttributes_disablers244, &sAttributes_specs[244] },
  { nullptr, &sAttributes_specs[247] },
  { &sAttributes_disablers307, &sAttributes_specs[307] },
  { nullptr, &sAttributes_specs[309] },
  { &sAttributes_disablers424, &sAttributes_specs[424] },
  { nullptr, &sAttributes_specs[429] },
  { &sAttributes_disablers467, &sAttributes_specs[467] },
  { nullptr, &sAttributes_specs[470] },
  { &sAttributes_disablers476, &sAttributes_specs[476] },
  { nullptr, &sAttributes_specs[479] },
  { &sAttributes_disablers560, &sAttributes_specs[560] },
  { nullptr, &sAttributes_specs[563] },
  { &sAttributes_disablers568, &sAttributes_specs[568] },
  { nullptr, &sAttributes_specs[571] },
  { &sAttributes_disablers626, &sAttributes_specs[626] },
  { nullptr, &sAttributes_specs[629] },
  { &sAttributes_disablers640, &sAttributes_specs[640] },
  { nullptr, &sAttributes_specs[645] },
  { &sAttributes_disablers649, &sAttributes_specs[649] },
  { nullptr, &sAttributes_specs[654] },
  { &sAttributes_disablers669, &sAttributes_specs[669] },
  { nullptr, &sAttributes_specs[672] },
  { &sAttributes_disablers715, &sAttributes_specs[715] },
  { &sAttributes_disablers722, &sAttributes_specs[722] },
  { nullptr, &sAttributes_specs[727] },
  { &sAttributes_disablers1143, &sAttributes_specs[1143] },
  { nullptr, &sAttributes_specs[1146] },
  { &sAttributes_disablers1173, &sAttributes_specs[1173] },
  { nullptr, &sAttributes_specs[1178] },
  { &sAttributes_disablers1180, &sAttributes_specs[1180] },
  { &sAttributes_disablers1193, &sAttributes_specs[1193] },
  { &sAttributes_disablers1196, &sAttributes_specs[1196] },
  { &sAttributes_disablers1201, &sAttributes_specs[1201] },
  { &sAttributes_disablers1204, &sAttributes_specs[1204] },
  { &sAttributes_disablers1213, &sAttributes_specs[1213] },
  { &sAttributes_disablers1230, &sAttributes_specs[1230] },
  { &sAttributes_disablers1233, &sAttributes_specs[1233] },
  { &sAttributes_disablers1236, &sAttributes_specs[1236] },
  { nullptr, nullptr }
};

static_assert(61 <= 1ull << NUM_BITS_PROPERTY_INFO_PREF_INDEX,
    "We have a prefable index that is >= (1 << NUM_BITS_PROPERTY_INFO_PREF_INDEX)");
static_assert(415 <= 1ull << NUM_BITS_PROPERTY_INFO_SPEC_INDEX,
    "We have a spec index that is >= (1 << NUM_BITS_PROPERTY_INFO_SPEC_INDEX)");

MOZ_GLOBINIT static const JSPropertySpec sChromeAttributes_specs[] = {
  JSPropertySpec::nativeAccessors("MozBoxCollapse", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxCollapse_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxCollapse_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-box-collapse", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozBoxCollapse_getterinfo, GenericSetter<NormalThisPolicy>, &MozBoxCollapse_setterinfo),
  JSPropertySpec::nativeAccessors("MozTheme", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTheme_getterinfo, GenericSetter<NormalThisPolicy>, &MozTheme_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-theme", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozTheme_getterinfo, GenericSetter<NormalThisPolicy>, &MozTheme_setterinfo),
  JSPropertySpec::nativeAccessors("MozUserFocus", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozUserFocus_getterinfo, GenericSetter<NormalThisPolicy>, &MozUserFocus_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-user-focus", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozUserFocus_getterinfo, GenericSetter<NormalThisPolicy>, &MozUserFocus_setterinfo),
  JSPropertySpec::nativeAccessors("MozWindowDragging", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozWindowDragging_getterinfo, GenericSetter<NormalThisPolicy>, &MozWindowDragging_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-window-dragging", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozWindowDragging_getterinfo, GenericSetter<NormalThisPolicy>, &MozWindowDragging_setterinfo),
  JSPropertySpec::nativeAccessors("MozWindowShadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozWindowShadow_getterinfo, GenericSetter<NormalThisPolicy>, &MozWindowShadow_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-window-shadow", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozWindowShadow_getterinfo, GenericSetter<NormalThisPolicy>, &MozWindowShadow_setterinfo),
  JSPropertySpec::nativeAccessors("MozDefaultAppearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozDefaultAppearance_getterinfo, GenericSetter<NormalThisPolicy>, &MozDefaultAppearance_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-default-appearance", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozDefaultAppearance_getterinfo, GenericSetter<NormalThisPolicy>, &MozDefaultAppearance_setterinfo),
  JSPropertySpec::nativeAccessors("MozSubtreeHiddenOnlyVisually", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozSubtreeHiddenOnlyVisually_getterinfo, GenericSetter<NormalThisPolicy>, &MozSubtreeHiddenOnlyVisually_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-subtree-hidden-only-visually", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozSubtreeHiddenOnlyVisually_getterinfo, GenericSetter<NormalThisPolicy>, &MozSubtreeHiddenOnlyVisually_setterinfo),
  JSPropertySpec::nativeAccessors("MozWindowOpacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozWindowOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &MozWindowOpacity_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-window-opacity", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozWindowOpacity_getterinfo, GenericSetter<NormalThisPolicy>, &MozWindowOpacity_setterinfo),
  JSPropertySpec::nativeAccessors("MozWindowTransform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozWindowTransform_getterinfo, GenericSetter<NormalThisPolicy>, &MozWindowTransform_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-window-transform", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozWindowTransform_getterinfo, GenericSetter<NormalThisPolicy>, &MozWindowTransform_setterinfo),
  JSPropertySpec::nativeAccessors("MozWindowInputRegionMargin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozWindowInputRegionMargin_getterinfo, GenericSetter<NormalThisPolicy>, &MozWindowInputRegionMargin_setterinfo),
  JSPropertySpec::nativeAccessors("-moz-window-input-region-margin", JSPROP_ENUMERATE, GenericGetter<NormalThisPolicy, ThrowExceptions>, &MozWindowInputRegionMargin_getterinfo, GenericSetter<NormalThisPolicy>, &MozWindowInputRegionMargin_setterinfo),
  JS_PS_END
};


static const Prefable<const JSPropertySpec> sChromeAttributes[] = {
  { nullptr, &sChromeAttributes_specs[0] },
  { nullptr, nullptr }
};

static_assert(1 <= 1ull << NUM_BITS_PROPERTY_INFO_PREF_INDEX,
    "We have a prefable index that is >= (1 << NUM_BITS_PROPERTY_INFO_PREF_INDEX)");
static_assert(20 <= 1ull << NUM_BITS_PROPERTY_INFO_SPEC_INDEX,
    "We have a spec index that is >= (1 << NUM_BITS_PROPERTY_INFO_SPEC_INDEX)");


static uint16_t sNativeProperties_sortedPropertyIndices[1179];
static PropertyInfo sNativeProperties_propertyInfos[1179];

static const NativePropertiesN<2> sNativeProperties = {
  false, 0,
  false, 0,
  true,  0 /* sMethods */,
  true,  1 /* sAttributes */,
  false, 0,
  false, 0,
  false, 0,
  -1,
  1179,
  sNativeProperties_sortedPropertyIndices,
  {
    { sMethods, &sNativeProperties_propertyInfos[0] },
    { sAttributes, &sNativeProperties_propertyInfos[1] }
  }
};
static_assert(1179 < 1ull << (CHAR_BIT * sizeof(sNativeProperties.propertyInfoCount)),
    "We have a property info count that is oversized");

static uint16_t sChromeOnlyNativeProperties_sortedPropertyIndices[20];
static PropertyInfo sChromeOnlyNativeProperties_propertyInfos[20];

static const NativePropertiesN<1> sChromeOnlyNativeProperties = {
  false, 0,
  false, 0,
  false, 0,
  true,  0 /* sChromeAttributes */,
  false, 0,
  false, 0,
  false, 0,
  -1,
  20,
  sChromeOnlyNativeProperties_sortedPropertyIndices,
  {
    { sChromeAttributes, &sChromeOnlyNativeProperties_propertyInfos[0] }
  }
};
static_assert(20 < 1ull << (CHAR_BIT * sizeof(sChromeOnlyNativeProperties.propertyInfoCount)),
    "We have a property info count that is oversized");

static_assert(std::is_base_of_v<nsISupports, nsDOMCSSDeclaration>,
              "We don't support non-nsISupports native classes for "
              "proxy-based bindings yet");


class DOMProxyHandler : public mozilla::dom::DOMProxyHandler
{
public:
  using Base = mozilla::dom::DOMProxyHandler;

  explicit constexpr DOMProxyHandler()
  {
  }

  bool
  getOwnPropDescriptor(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, bool ignoreNamedProps, JS::MutableHandle<Maybe<JS::PropertyDescriptor>> desc) const override;

  bool
  defineProperty(JSContext* cx_, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, JS::Handle<JS::PropertyDescriptor> desc, JS::ObjectOpResult& opresult, bool* done) const override;

  using mozilla::dom::DOMProxyHandler::defineProperty;

  bool
  ownPropNames(JSContext* cx, JS::Handle<JSObject*> proxy, unsigned flags, JS::MutableHandleVector<jsid> props) const override;

  bool
  hasOwn(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, bool* bp) const override;

  bool
  get(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<JS::Value> receiver, JS::Handle<jsid> id, JS::MutableHandle<JS::Value> vp) const override;

  const char*
  className(JSContext* cx, JS::Handle<JSObject*> proxy) const override;

  bool
  finalizeInBackground(const JS::Value& priv) const override;

  void
  finalize(JS::GCContext* gcx, JSObject* proxy) const override;

  static const DOMProxyHandler*
  getInstance();

  bool
  delete_(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, JS::ObjectOpResult& opresult) const override;

  bool
  getElements(JSContext* cx, JS::Handle<JSObject*> proxy, uint32_t begin, uint32_t end, js::ElementAdder* adder) const override;

  bool
  canNurseryAllocate() const override;

  size_t
  objectMoved(JSObject* obj, JSObject* old) const override;
};

MOZ_ALWAYS_INLINE bool
IsProxy(JSObject* obj)
{
  return js::IsProxy(obj) && js::GetProxyHandler(obj) == DOMProxyHandler::getInstance();
}

MOZ_ALWAYS_INLINE nsDOMCSSDeclaration*
UnwrapProxy(JSObject* obj)
{
  MOZ_ASSERT(js::IsProxy(obj));
  if (js::GetProxyHandler(obj) != DOMProxyHandler::getInstance()) {
    MOZ_ASSERT(xpc::WrapperFactory::IsXrayWrapper(obj));
    obj = js::UncheckedUnwrap(obj);
  }
  MOZ_ASSERT(IsProxy(obj));
  return static_cast<nsDOMCSSDeclaration*>(js::GetProxyReservedSlot(obj, DOM_OBJECT_SLOT).toPrivate());
}

const NativeNamedOrIndexedPropertyHooks sNativeNamedOrIndexedPropertyHooks = {
  binding_detail::ResolveOwnProperty,
  binding_detail::EnumerateOwnProperties,
  nullptr
};
bool sNativePropertiesInited = false;
const NativePropertyHooks sNativePropertyHooks = {
  &sNativeNamedOrIndexedPropertyHooks,
  { sNativeProperties.Upcast(), sChromeOnlyNativeProperties.Upcast(), &sNativePropertiesInited },
  prototypes::id::CSSStyleProperties,
  constructors::id::CSSStyleProperties,
  &DefaultXrayExpandoObjectClass
};

static const DOMInterfaceInfo sInterfaceObjectInfo = {
  { ThrowingConstructor, &sNativePropertyHooks },
  CSSStyleDeclaration_Binding::GetConstructorObjectHandle,
  PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth,
  prototypes::id::CSSStyleProperties,
  true,
  0,
  "CSSStyleProperties",
};

static const DOMIfaceAndProtoJSClass sPrototypeClass = {
  {
    "CSSStylePropertiesPrototype",
    JSCLASS_IS_DOMIFACEANDPROTOJSCLASS | JSCLASS_HAS_RESERVED_SLOTS(DOM_INTERFACE_PROTO_SLOTS_BASE),
    JS_NULL_CLASS_OPS,
    JS_NULL_CLASS_SPEC,
    JS_NULL_CLASS_EXT,
    JS_NULL_OBJECT_OPS
  },
  eInterfacePrototype,
  prototypes::id::CSSStyleProperties,
  PrototypeTraits<prototypes::id::CSSStyleProperties>::Depth,
  &sNativePropertyHooks,
  CSSStyleDeclaration_Binding::GetProtoObject
};

static JS::Handle<JSObject*>
GetProtoObjectHandle(JSContext* aCx);

bool
DOMProxyHandler::getOwnPropDescriptor(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, bool ignoreNamedProps, JS::MutableHandle<Maybe<JS::PropertyDescriptor>> desc) const
{
  bool isXray = xpc::WrapperFactory::IsXrayWrapper(proxy);
  uint32_t index = GetArrayIndexFromId(id);
  if (IsArrayIndex(index)) {
    JS::Rooted<JS::Value> value(cx);
    nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
    bool found = false;
    nsAutoCString result;
    // NOTE: This assert does NOT call the function.
    static_assert(std::is_void_v<decltype(MOZ_KnownLive(self)->IndexedGetter(index, found, result))>, "Should be returning void here");
    MOZ_KnownLive(self)->IndexedGetter(index, found, result);
    MOZ_ASSERT(!JS_IsExceptionPending(cx));

    if (found) {
      if (!NonVoidUTF8StringToJsval(cx, result, &value)) {
        return false;
      }
      desc.set(mozilla::Some(JS::PropertyDescriptor::Data(value, { JS::PropertyAttribute::Configurable, JS::PropertyAttribute::Enumerable })));
      return true;
    }
  }

  JS::Rooted<JSObject*> expando(cx);
  if (!isXray &&(expando = GetExpandoObject(proxy))) {
    if (!JS_GetOwnPropertyDescriptorById(cx, expando, id, desc)) {
      return false;
    }
    if (desc.isSome()) {
      return true;
    }
  }

  desc.reset();
  return true;
}

bool
DOMProxyHandler::defineProperty(JSContext* cx_, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, JS::Handle<JS::PropertyDescriptor> desc, JS::ObjectOpResult& opresult, bool* done) const
{
  if (IsArrayIndex(GetArrayIndexFromId(id))) {
    *done = true;
    return opresult.failNoIndexedSetter();
  }
  return mozilla::dom::DOMProxyHandler::defineProperty(cx_, proxy, id, desc, opresult, done);
}


bool
DOMProxyHandler::ownPropNames(JSContext* cx, JS::Handle<JSObject*> proxy, unsigned flags, JS::MutableHandleVector<jsid> props) const
{
  bool isXray = xpc::WrapperFactory::IsXrayWrapper(proxy);

  uint32_t length = UnwrapProxy(proxy)->Length();
  MOZ_ASSERT(int32_t(length) >= 0);
  for (int32_t i = 0; i < int32_t(length); ++i) {
    if (!props.append(JS::PropertyKey::Int(i))) {
      return false;
    }
  }

  JS::Rooted<JSObject*> expando(cx);
  if (!isXray &&(expando = DOMProxyHandler::GetExpandoObject(proxy)) &&
      !js::GetPropertyKeys(cx, expando, flags, props)) {
    return false;
  }

  return true;
}

bool
DOMProxyHandler::hasOwn(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, bool* bp) const
{
  MOZ_ASSERT(!xpc::WrapperFactory::IsXrayWrapper(proxy),
            "Should not have a XrayWrapper here");
  uint32_t index = GetArrayIndexFromId(id);
  if (IsArrayIndex(index)) {
    bool found = false;
    nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
    nsAutoCString result;
    // NOTE: This assert does NOT call the function.
    static_assert(std::is_void_v<decltype(MOZ_KnownLive(self)->IndexedGetter(index, found, result))>, "Should be returning void here");
    MOZ_KnownLive(self)->IndexedGetter(index, found, result);
    MOZ_ASSERT(!JS_IsExceptionPending(cx));
    (void)result;

    *bp = found;
    return true;
  }


  JS::Rooted<JSObject*> expando(cx, GetExpandoObject(proxy));
  if (expando) {
    bool b = true;
    bool ok = JS_HasPropertyById(cx, expando, id, &b);
    *bp = !!b;
    if (!ok || *bp) {
      return ok;
    }
  }

  *bp = false;
  return true;
}

bool
DOMProxyHandler::get(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<JS::Value> receiver, JS::Handle<jsid> id, JS::MutableHandle<JS::Value> vp) const
{
  MOZ_ASSERT(!xpc::WrapperFactory::IsXrayWrapper(proxy),
              "Should not have a XrayWrapper here");

  uint32_t index = GetArrayIndexFromId(id);
  if (IsArrayIndex(index)) {
    nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
    bool found = false;
    nsAutoCString result;
    // NOTE: This assert does NOT call the function.
    static_assert(std::is_void_v<decltype(MOZ_KnownLive(self)->IndexedGetter(index, found, result))>, "Should be returning void here");
    MOZ_KnownLive(self)->IndexedGetter(index, found, result);
    MOZ_ASSERT(!JS_IsExceptionPending(cx));

    if (found) {
      if (!NonVoidUTF8StringToJsval(cx, result, vp)) {
        return false;
      }
      return true;
    }
    // Even if we don't have this index, we don't forward the
    // get on to our expando object.
  } else {
    bool expandoHasProp = false;
    { // Scope for expando
      JS::Rooted<JSObject*> expando(cx, DOMProxyHandler::GetExpandoObject(proxy));
      if (expando) {
        if (!JS_HasPropertyById(cx, expando, id, &expandoHasProp)) {
          return false;
        }

        if (expandoHasProp) {
          // Forward the get to the expando object, but our receiver is whatever our
          // receiver is.
          if (!JS_ForwardGetPropertyTo(cx, expando, id, receiver, vp)) {
            return false;
          }
        }
      }
    }

    if (expandoHasProp) {
      return true;
    }
  }

  bool foundOnPrototype;
  if (!GetPropertyOnPrototype(cx, proxy, receiver, id, &foundOnPrototype, vp)) {
    return false;
  }

  if (foundOnPrototype) {
    return true;
  }

  MOZ_ASSERT(vp.isUndefined());
  return true;
}

const char*
DOMProxyHandler::className(JSContext* cx, JS::Handle<JSObject*> proxy) const
{
  return "CSSStyleProperties";
}

bool
DOMProxyHandler::finalizeInBackground(const JS::Value& priv) const
{
  return false;
}

void
DOMProxyHandler::finalize(JS::GCContext* gcx, JSObject* proxy) const
{
  nsDOMCSSDeclaration* self = UnwrapPossiblyNotInitializedDOMObject<nsDOMCSSDeclaration>(proxy);
  if (self) {
    JS::SetReservedSlot(proxy, DOM_OBJECT_SLOT, JS::UndefinedValue());
    ClearWrapper(self, self, proxy);
    if (size_t mallocBytes = BindingJSObjectMallocBytes(self)) {
      JS::RemoveAssociatedMemory(proxy, mallocBytes,
                                 JS::MemoryUse::DOMBinding);
    }
    AddForDeferredFinalization<nsDOMCSSDeclaration>(self);
  }
}

const DOMProxyHandler*
DOMProxyHandler::getInstance()
{
  static const DOMProxyHandler instance;
  return &instance;
}

bool
DOMProxyHandler::delete_(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id, JS::ObjectOpResult& opresult) const
{
  MOZ_ASSERT(!xpc::WrapperFactory::IsXrayWrapper(proxy),
            "Should not have a XrayWrapper here");

  uint32_t index = GetArrayIndexFromId(id);
  if (IsArrayIndex(index)) {
    bool deleteSucceeded;
    bool found = false;
    nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
    nsAutoCString result;
    // NOTE: This assert does NOT call the function.
    static_assert(std::is_void_v<decltype(MOZ_KnownLive(self)->IndexedGetter(index, found, result))>, "Should be returning void here");
    MOZ_KnownLive(self)->IndexedGetter(index, found, result);
    MOZ_ASSERT(!JS_IsExceptionPending(cx));
    (void)result;
    deleteSucceeded = !found;
    return deleteSucceeded ? opresult.succeed() : opresult.failCantDelete();
  }

  return dom::DOMProxyHandler::delete_(cx, proxy, id, opresult);
}

bool
DOMProxyHandler::getElements(JSContext* cx, JS::Handle<JSObject*> proxy, uint32_t begin, uint32_t end, js::ElementAdder* adder) const
{
  JS::Rooted<JS::Value> temp(cx);
  MOZ_ASSERT(!xpc::WrapperFactory::IsXrayWrapper(proxy),
             "Should not have a XrayWrapper here");

  nsDOMCSSDeclaration* self = UnwrapProxy(proxy);
  uint32_t length = self->Length();
  // Compute the end of the indices we'll get ourselves
  uint32_t ourEnd = std::clamp(length, begin, end);

  for (uint32_t index = begin; index < ourEnd; ++index) {
    bool found = false;
    nsAutoCString result;
    // NOTE: This assert does NOT call the function.
    static_assert(std::is_void_v<decltype(MOZ_KnownLive(self)->IndexedGetter(index, found, result))>, "Should be returning void here");
    MOZ_KnownLive(self)->IndexedGetter(index, found, result);
    MOZ_ASSERT(!JS_IsExceptionPending(cx));

    MOZ_ASSERT(found);
    if (!NonVoidUTF8StringToJsval(cx, result, &temp)) {
      return false;
    }
    if (!adder->append(cx, temp)) return false;
    continue;
  }

  if (end > ourEnd) {
    JS::Rooted<JSObject*> proto(cx);
    if (!js::GetObjectProto(cx, proxy, &proto)) {
      return false;
    }
    return js::GetElementsWithAdder(cx, proto, proxy, ourEnd, end, adder);
  }

  return true;
}

bool
DOMProxyHandler::canNurseryAllocate() const
{
  return true;
}

size_t
DOMProxyHandler::objectMoved(JSObject* obj, JSObject* old) const
{
  return NativeTypeHelpers<nsDOMCSSDeclaration>::ObjectMoved(obj, old);
}

static const DOMJSClass sClass = {
  PROXY_CLASS_DEF("CSSStyleProperties",
                  JSCLASS_IS_DOMJSCLASS | JSCLASS_HAS_RESERVED_SLOTS(1)),
  { prototypes::id::CSSStyleDeclaration, prototypes::id::CSSStyleProperties, prototypes::id::_ID_Count, prototypes::id::_ID_Count, prototypes::id::_ID_Count, prototypes::id::_ID_Count, prototypes::id::_ID_Count, prototypes::id::_ID_Count },
  std::is_base_of_v<nsISupports, nsDOMCSSDeclaration>,
  &sNativePropertyHooks,
  FindAssociatedGlobalForNative<nsDOMCSSDeclaration>::Get,
  GetProtoObjectHandle,
  GetCCParticipant<nsDOMCSSDeclaration>::Get(),
  nullptr,
  nullptr
};

bool
Wrap(JSContext* aCx, nsDOMCSSDeclaration* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
{
  static_assert(!std::is_base_of_v<NonRefcountedDOMObject, nsDOMCSSDeclaration>,
                "Shouldn't have wrappercached things that are not refcounted.");
  static_assert(std::is_same_v<decltype(aObject), nsDOMCSSDeclaration*>);
  MOZ_ASSERT(static_cast<nsICSSDeclaration*>(aObject) ==
             reinterpret_cast<nsICSSDeclaration*>(aObject),
             "Multiple inheritance for nsICSSDeclaration is broken.");
  MOZ_ASSERT(ToSupportsIsCorrect(aObject));
  MOZ_ASSERT_IF(aGivenProto, js::IsObjectInContextCompartment(aGivenProto, aCx));
  MOZ_ASSERT(!aCache->GetWrapper(),
             "You should probably not be using Wrap() directly; use "
             "GetOrCreateDOMReflector instead");

  MOZ_ASSERT(ToSupportsIsOnPrimaryInheritanceChain(aObject, aCache),
             "nsISupports must be on our primary inheritance chain");

  // If the wrapper cache contains a dead reflector then finalize that
  // now, ensuring that the finalizer for the old reflector always
  // runs before the new reflector is created and attached. This
  // avoids the awkward situation where there are multiple reflector
  // objects that contain pointers to the same native.

  if (JSObject* oldReflector = aCache->GetWrapperMaybeDead()) {
    DOMProxyHandler::getInstance()->finalize(nullptr /* unused */, oldReflector);
    MOZ_ASSERT(!aCache->GetWrapperMaybeDead());
  }

  JS::Rooted<JSObject*> global(aCx, FindAssociatedGlobal(aCx, aObject->GetParentObject()));
  if (!global) {
    return false;
  }
  MOZ_ASSERT(JS_IsGlobalObject(global));
  JS::AssertObjectIsNotGray(global);

  // That might have ended up wrapping us already, due to the wonders
  // of XBL.  Check for that, and bail out as needed.
  aReflector.set(aCache->GetWrapper());
  if (aReflector) {
#ifdef DEBUG
    AssertReflectorHasGivenProto(aCx, aReflector, aGivenProto);
#endif // DEBUG
    return true;
  }

  JSAutoRealm ar(aCx, global);
  JS::Handle<JSObject*> canonicalProto = GetProtoObjectHandle(aCx);
  if (!canonicalProto) {
    return false;
  }
  JS::Rooted<JSObject*> proto(aCx);
  if (aGivenProto) {
    proto = aGivenProto;
    // Unfortunately, while aGivenProto was in the compartment of aCx
    // coming in, we changed compartments to that of "parent" so may need
    // to wrap the proto here.
    if (js::GetContextCompartment(aCx) != JS::GetCompartment(proto)) {
      if (!JS_WrapObject(aCx, &proto)) {
        return false;
      }
    }
  } else {
    proto = canonicalProto;
  }

  BindingJSObjectCreator<nsDOMCSSDeclaration> creator(aCx);
  creator.CreateProxyObject(aCx, &sClass.mBase, DOMProxyHandler::getInstance(),
                            proto, /* aLazyProto = */ false,
                            aObject, JS::UndefinedHandleValue, aReflector);
  if (!aReflector) {
    return false;
  }

  aCache->SetWrapper(aReflector);
  creator.InitializationSucceeded();

  MOZ_ASSERT(aCache->GetWrapperPreserveColor() &&
             aCache->GetWrapperPreserveColor() == aReflector);
  // If proto != canonicalProto, we have to preserve our wrapper;
  // otherwise we won't be able to properly recreate it later, since
  // we won't know what proto to use.  Note that we don't check
  // aGivenProto here, since it's entirely possible (and even
  // somewhat common) to have a non-null aGivenProto which is the
  // same as canonicalProto.
  if (proto != canonicalProto) {
    PreserveWrapper(aObject);
  }

  return true;
}

void
CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, DefineInterfaceProperty aDefineOnGlobal)
{
  JS::Heap<JSObject*>* protoCache = &aProtoAndIfaceCache.EntrySlotOrCreate(prototypes::id::CSSStyleProperties);
  JS::Heap<JSObject*>* interfaceCache = &aProtoAndIfaceCache.EntrySlotOrCreate(constructors::id::CSSStyleProperties);

  JS::Handle<JSObject*> parentProto(CSSStyleDeclaration_Binding::GetProtoObjectHandle(aCx));
  if (!parentProto) {
    return;
  }

  JS::Handle<JSObject*> constructorProto(CSSStyleDeclaration_Binding::GetConstructorObjectHandle(aCx));
  if (!constructorProto) {
    return;
  }

  dom::CreateInterfaceObjects(aCx, aGlobal, parentProto,
                              &sPrototypeClass, protoCache,
                              constructorProto, &sInterfaceObjectInfo, 0, false, Span<const LegacyFactoryFunction, 0>{},
                              interfaceCache,
                              sNativeProperties.Upcast(),
                              sChromeOnlyNativeProperties.Upcast(),
                              "CSSStyleProperties",
                              aDefineOnGlobal != DefineInterfaceProperty::No,
                              nullptr,
                              false,
                              nullptr);
}

static JS::Handle<JSObject*>
GetProtoObjectHandle(JSContext* aCx)
{
  /* Get the interface prototype object for this class.  This will create the
     object as needed. */
  return GetPerInterfaceObjectHandle(aCx, prototypes::id::CSSStyleProperties,
                                     &CreateInterfaceObjects,
                                     DefineInterfaceProperty::CheckExposure);

}

JS::Handle<JSObject*>
GetConstructorObjectHandle(JSContext* aCx)
{
  /* Get the interface object for this class.  This will create the object as
     needed. */

  return GetPerInterfaceObjectHandle(aCx, constructors::id::CSSStyleProperties,
                                     &CreateInterfaceObjects,
                                     DefineInterfaceProperty::CheckExposure);
}

} // namespace CSSStyleProperties_Binding



} // namespace mozilla::dom
