text: // Copyright 2014 The Chromium Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  // This file has been auto-generated by code_generator_v8.py. DO NOT MODIFY!
  
  #include "config.h"
  #include "V8HTMLBodyElement.h"
  
  #include "bindings/core/v8/ExceptionState.h"
  #include "bindings/core/v8/V8AbstractEventListener.h"
  #include "bindings/core/v8/V8DOMConfiguration.h"
  #include "bindings/core/v8/V8EventListenerList.h"
  #include "bindings/core/v8/V8ObjectConstructor.h"
  #include "core/HTMLNames.h"
  #include "core/dom/ContextFeatures.h"
  #include "core/dom/Document.h"
  #include "core/dom/custom/CustomElementProcessingStack.h"
  #include "core/frame/DOMWindowEventHandlers.h"
  #include "platform/RuntimeEnabledFeatures.h"
  #include "platform/TraceEvent.h"
  #include "wtf/GetPtr.h"
  #include "wtf/RefPtr.h"
  
  namespace blink {
  
  // Suppress warning: global constructors, because struct WrapperTypeInfo is trivial
  // and does not depend on another global objects.
  #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG)
  #pragma clang diagnostic push
  #pragma clang diagnostic ignored "-Wglobal-constructors"
  #endif
  const WrapperTypeInfo V8HTMLBodyElement::wrapperTypeInfo = { gin::kEmbedderBlink, V8HTMLBodyElement::domTemplate, V8HTMLBodyElement::refObject, V8HTMLBodyElement::derefObject, V8HTMLBodyElement::trace, 0, 0, V8HTMLBodyElement::preparePrototypeObject, V8HTMLBodyElement::installConditionallyEnabledProperties, "HTMLBodyElement", &V8HTMLElement::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::NodeClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Dependent, WrapperTypeInfo::WillBeGarbageCollectedObject };
  #if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG)
  #pragma clang diagnostic pop
  #endif
  
  // This static member must be declared by DEFINE_WRAPPERTYPEINFO in HTMLBodyElement.h.
  // For details, see the comment of DEFINE_WRAPPERTYPEINFO in
  // bindings/core/v8/ScriptWrappable.h.
  const WrapperTypeInfo& HTMLBodyElement::s_wrapperTypeInfo = V8HTMLBodyElement::wrapperTypeInfo;
  
  namespace HTMLBodyElementV8Internal {
  
  static void textAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      Element* impl = V8Element::toImpl(holder);
      v8SetReturnValueString(info, impl->fastGetAttribute(HTMLNames::textAttr), info.GetIsolate());
  }
  
  static void textAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::textAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void textAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      Element* impl = V8Element::toImpl(holder);
      V8StringResource<TreatNullAsEmptyString> cppValue = v8Value;
      if (!cppValue.prepare())
          return;
      impl->setAttribute(HTMLNames::textAttr, cppValue);
  }
  
  static void textAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      CustomElementProcessingStack::CallbackDeliveryScope deliveryScope;
      HTMLBodyElementV8Internal::textAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void linkAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      Element* impl = V8Element::toImpl(holder);
      v8SetReturnValueString(info, impl->fastGetAttribute(HTMLNames::linkAttr), info.GetIsolate());
  }
  
  static void linkAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::linkAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void linkAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      Element* impl = V8Element::toImpl(holder);
      V8StringResource<TreatNullAsEmptyString> cppValue = v8Value;
      if (!cppValue.prepare())
          return;
      impl->setAttribute(HTMLNames::linkAttr, cppValue);
  }
  
  static void linkAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      CustomElementProcessingStack::CallbackDeliveryScope deliveryScope;
      HTMLBodyElementV8Internal::linkAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void vLinkAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      Element* impl = V8Element::toImpl(holder);
      v8SetReturnValueString(info, impl->fastGetAttribute(HTMLNames::vlinkAttr), info.GetIsolate());
  }
  
  static void vLinkAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::vLinkAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void vLinkAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      Element* impl = V8Element::toImpl(holder);
      V8StringResource<TreatNullAsEmptyString> cppValue = v8Value;
      if (!cppValue.prepare())
          return;
      impl->setAttribute(HTMLNames::vlinkAttr, cppValue);
  }
  
  static void vLinkAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      CustomElementProcessingStack::CallbackDeliveryScope deliveryScope;
      HTMLBodyElementV8Internal::vLinkAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void aLinkAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      Element* impl = V8Element::toImpl(holder);
      v8SetReturnValueString(info, impl->fastGetAttribute(HTMLNames::alinkAttr), info.GetIsolate());
  }
  
  static void aLinkAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::aLinkAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void aLinkAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      Element* impl = V8Element::toImpl(holder);
      V8StringResource<TreatNullAsEmptyString> cppValue = v8Value;
      if (!cppValue.prepare())
          return;
      impl->setAttribute(HTMLNames::alinkAttr, cppValue);
  }
  
  static void aLinkAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      CustomElementProcessingStack::CallbackDeliveryScope deliveryScope;
      HTMLBodyElementV8Internal::aLinkAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void bgColorAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      Element* impl = V8Element::toImpl(holder);
      v8SetReturnValueString(info, impl->fastGetAttribute(HTMLNames::bgcolorAttr), info.GetIsolate());
  }
  
  static void bgColorAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::bgColorAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void bgColorAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      Element* impl = V8Element::toImpl(holder);
      V8StringResource<TreatNullAsEmptyString> cppValue = v8Value;
      if (!cppValue.prepare())
          return;
      impl->setAttribute(HTMLNames::bgcolorAttr, cppValue);
  }
  
  static void bgColorAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      CustomElementProcessingStack::CallbackDeliveryScope deliveryScope;
      HTMLBodyElementV8Internal::bgColorAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void backgroundAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      Element* impl = V8Element::toImpl(holder);
      v8SetReturnValueString(info, impl->fastGetAttribute(HTMLNames::backgroundAttr), info.GetIsolate());
  }
  
  static void backgroundAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::backgroundAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void backgroundAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      Element* impl = V8Element::toImpl(holder);
      V8StringResource<> cppValue = v8Value;
      if (!cppValue.prepare())
          return;
      impl->setAttribute(HTMLNames::backgroundAttr, cppValue);
  }
  
  static void backgroundAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      CustomElementProcessingStack::CallbackDeliveryScope deliveryScope;
      HTMLBodyElementV8Internal::backgroundAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onblurAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(impl->onblur());
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onblurAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onblurAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onblurAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      impl->setOnblur(V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onblurAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onblurAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onerrorAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(impl->onerror());
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onerrorAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onerrorAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onerrorAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      impl->setOnerror(V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onerrorAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onerrorAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onfocusAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(impl->onfocus());
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onfocusAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onfocusAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onfocusAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      impl->setOnfocus(V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onfocusAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onfocusAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onloadAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(impl->onload());
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onloadAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onloadAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onloadAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      impl->setOnload(V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onloadAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onloadAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onresizeAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(impl->onresize());
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onresizeAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onresizeAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onresizeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      impl->setOnresize(V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onresizeAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onresizeAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onscrollAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(impl->onscroll());
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onscrollAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onscrollAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onscrollAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      impl->setOnscroll(V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onscrollAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onscrollAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onorientationchangeAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(impl->onorientationchange());
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onorientationchangeAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onorientationchangeAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onorientationchangeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      impl->setOnorientationchange(V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onorientationchangeAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onorientationchangeAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onbeforeunloadAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::onbeforeunload(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onbeforeunloadAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onbeforeunloadAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onbeforeunloadAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnbeforeunload(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onbeforeunloadAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onbeforeunloadAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onhashchangeAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::onhashchange(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onhashchangeAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onhashchangeAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onhashchangeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnhashchange(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onhashchangeAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onhashchangeAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onlanguagechangeAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::onlanguagechange(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onlanguagechangeAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onlanguagechangeAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onlanguagechangeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnlanguagechange(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onlanguagechangeAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onlanguagechangeAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onmessageAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::onmessage(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onmessageAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onmessageAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onmessageAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnmessage(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onmessageAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onmessageAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onofflineAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::onoffline(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onofflineAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onofflineAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onofflineAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnoffline(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onofflineAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onofflineAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void ononlineAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::ononline(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void ononlineAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::ononlineAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void ononlineAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnonline(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void ononlineAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::ononlineAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onpagehideAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::onpagehide(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onpagehideAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onpagehideAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onpagehideAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnpagehide(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onpagehideAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onpagehideAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onpageshowAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::onpageshow(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onpageshowAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onpageshowAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onpageshowAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnpageshow(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onpageshowAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onpageshowAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onpopstateAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::onpopstate(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onpopstateAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onpopstateAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onpopstateAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnpopstate(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onpopstateAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onpopstateAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onstorageAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::onstorage(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onstorageAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onstorageAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onstorageAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnstorage(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onstorageAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onstorageAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onunloadAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::onunload(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onunloadAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onunloadAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onunloadAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnunload(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onunloadAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onunloadAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onrejectionhandledAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::onrejectionhandled(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onrejectionhandledAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onrejectionhandledAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onrejectionhandledAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnrejectionhandled(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onrejectionhandledAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onrejectionhandledAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onunhandledrejectionAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      EventListener* cppValue(DOMWindowEventHandlers::onunhandledrejection(*impl));
      v8SetReturnValue(info, cppValue ? v8::Local<v8::Value>(V8AbstractEventListener::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Local<v8::Value>(v8::Null(info.GetIsolate())));
  }
  
  static void onunhandledrejectionAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
      HTMLBodyElementV8Internal::onunhandledrejectionAttributeGetter(info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  static void onunhandledrejectionAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Object> holder = info.Holder();
      HTMLBodyElement* impl = V8HTMLBodyElement::toImpl(holder);
      DOMWindowEventHandlers::setOnunhandledrejection(*impl, V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate));
  }
  
  static void onunhandledrejectionAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
  {
      v8::Local<v8::Value> v8Value = info[0];
      TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
      HTMLBodyElementV8Internal::onunhandledrejectionAttributeSetter(v8Value, info);
      TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
  }
  
  } // namespace HTMLBodyElementV8Internal
  
  static const V8DOMConfiguration::AccessorConfiguration V8HTMLBodyElementAccessors[] = {
      {"text", HTMLBodyElementV8Internal::textAttributeGetterCallback, HTMLBodyElementV8Internal::textAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"link", HTMLBodyElementV8Internal::linkAttributeGetterCallback, HTMLBodyElementV8Internal::linkAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"vLink", HTMLBodyElementV8Internal::vLinkAttributeGetterCallback, HTMLBodyElementV8Internal::vLinkAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"aLink", HTMLBodyElementV8Internal::aLinkAttributeGetterCallback, HTMLBodyElementV8Internal::aLinkAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"bgColor", HTMLBodyElementV8Internal::bgColorAttributeGetterCallback, HTMLBodyElementV8Internal::bgColorAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"background", HTMLBodyElementV8Internal::backgroundAttributeGetterCallback, HTMLBodyElementV8Internal::backgroundAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onblur", HTMLBodyElementV8Internal::onblurAttributeGetterCallback, HTMLBodyElementV8Internal::onblurAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onerror", HTMLBodyElementV8Internal::onerrorAttributeGetterCallback, HTMLBodyElementV8Internal::onerrorAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onfocus", HTMLBodyElementV8Internal::onfocusAttributeGetterCallback, HTMLBodyElementV8Internal::onfocusAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onload", HTMLBodyElementV8Internal::onloadAttributeGetterCallback, HTMLBodyElementV8Internal::onloadAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onresize", HTMLBodyElementV8Internal::onresizeAttributeGetterCallback, HTMLBodyElementV8Internal::onresizeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onscroll", HTMLBodyElementV8Internal::onscrollAttributeGetterCallback, HTMLBodyElementV8Internal::onscrollAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onbeforeunload", HTMLBodyElementV8Internal::onbeforeunloadAttributeGetterCallback, HTMLBodyElementV8Internal::onbeforeunloadAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onhashchange", HTMLBodyElementV8Internal::onhashchangeAttributeGetterCallback, HTMLBodyElementV8Internal::onhashchangeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onlanguagechange", HTMLBodyElementV8Internal::onlanguagechangeAttributeGetterCallback, HTMLBodyElementV8Internal::onlanguagechangeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onmessage", HTMLBodyElementV8Internal::onmessageAttributeGetterCallback, HTMLBodyElementV8Internal::onmessageAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onoffline", HTMLBodyElementV8Internal::onofflineAttributeGetterCallback, HTMLBodyElementV8Internal::onofflineAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"ononline", HTMLBodyElementV8Internal::ononlineAttributeGetterCallback, HTMLBodyElementV8Internal::ononlineAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onpagehide", HTMLBodyElementV8Internal::onpagehideAttributeGetterCallback, HTMLBodyElementV8Internal::onpagehideAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onpageshow", HTMLBodyElementV8Internal::onpageshowAttributeGetterCallback, HTMLBodyElementV8Internal::onpageshowAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onpopstate", HTMLBodyElementV8Internal::onpopstateAttributeGetterCallback, HTMLBodyElementV8Internal::onpopstateAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onstorage", HTMLBodyElementV8Internal::onstorageAttributeGetterCallback, HTMLBodyElementV8Internal::onstorageAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
      {"onunload", HTMLBodyElementV8Internal::onunloadAttributeGetterCallback, HTMLBodyElementV8Internal::onunloadAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
  };
  
  static void installV8HTMLBodyElementTemplate(v8::Local<v8::FunctionTemplate> functionTemplate, v8::Isolate* isolate)
  {
      functionTemplate->ReadOnlyPrototype();
  
      v8::Local<v8::Signature> defaultSignature;
      defaultSignature = V8DOMConfiguration::installDOMClassTemplate(isolate, functionTemplate, "HTMLBodyElement", V8HTMLElement::domTemplate(isolate), V8HTMLBodyElement::internalFieldCount,
          0, 0,
          V8HTMLBodyElementAccessors, WTF_ARRAY_LENGTH(V8HTMLBodyElementAccessors),
          0, 0);
      v8::Local<v8::ObjectTemplate> instanceTemplate = functionTemplate->InstanceTemplate();
      ALLOW_UNUSED_LOCAL(instanceTemplate);
      v8::Local<v8::ObjectTemplate> prototypeTemplate = functionTemplate->PrototypeTemplate();
      ALLOW_UNUSED_LOCAL(prototypeTemplate);
      if (RuntimeEnabledFeatures::orientationEventEnabled()) {
          static const V8DOMConfiguration::AccessorConfiguration accessorConfiguration =\
          {"onorientationchange", HTMLBodyElementV8Internal::onorientationchangeAttributeGetterCallback, HTMLBodyElementV8Internal::onorientationchangeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder};
          V8DOMConfiguration::installAccessor(isolate, instanceTemplate, prototypeTemplate, functionTemplate, defaultSignature, accessorConfiguration);
      }
      if (RuntimeEnabledFeatures::promiseRejectionEventEnabled()) {
          static const V8DOMConfiguration::AccessorConfiguration accessorConfiguration =\
          {"onrejectionhandled", HTMLBodyElementV8Internal::onrejectionhandledAttributeGetterCallback, HTMLBodyElementV8Internal::onrejectionhandledAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder};
          V8DOMConfiguration::installAccessor(isolate, instanceTemplate, prototypeTemplate, functionTemplate, defaultSignature, accessorConfiguration);
      }
      if (RuntimeEnabledFeatures::promiseRejectionEventEnabled()) {
          static const V8DOMConfiguration::AccessorConfiguration accessorConfiguration =\
          {"onunhandledrejection", HTMLBodyElementV8Internal::onunhandledrejectionAttributeGetterCallback, HTMLBodyElementV8Internal::onunhandledrejectionAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder};
          V8DOMConfiguration::installAccessor(isolate, instanceTemplate, prototypeTemplate, functionTemplate, defaultSignature, accessorConfiguration);
      }
  
      // Custom toString template
      functionTemplate->Set(v8AtomicString(isolate, "toString"), V8PerIsolateData::from(isolate)->toStringTemplate());
  }
  
  v8::Local<v8::FunctionTemplate> V8HTMLBodyElement::domTemplate(v8::Isolate* isolate)
  {
      return V8DOMConfiguration::domClassTemplate(isolate, const_cast<WrapperTypeInfo*>(&wrapperTypeInfo), installV8HTMLBodyElementTemplate);
  }
  
  bool V8HTMLBodyElement::hasInstance(v8::Local<v8::Value> v8Value, v8::Isolate* isolate)
  {
      return V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, v8Value);
  }
  
  v8::Local<v8::Object> V8HTMLBodyElement::findInstanceInPrototypeChain(v8::Local<v8::Value> v8Value, v8::Isolate* isolate)
  {
      return V8PerIsolateData::from(isolate)->findInstanceInPrototypeChain(&wrapperTypeInfo, v8Value);
  }
  
  HTMLBodyElement* V8HTMLBodyElement::toImplWithTypeCheck(v8::Isolate* isolate, v8::Local<v8::Value> value)
  {
      return hasInstance(value, isolate) ? toImpl(v8::Local<v8::Object>::Cast(value)) : 0;
  }
  
  void V8HTMLBodyElement::refObject(ScriptWrappable* scriptWrappable)
  {
  #if !ENABLE(OILPAN)
      scriptWrappable->toImpl<HTMLBodyElement>()->ref();
  #endif
  }
  
  void V8HTMLBodyElement::derefObject(ScriptWrappable* scriptWrappable)
  {
  #if !ENABLE(OILPAN)
      scriptWrappable->toImpl<HTMLBodyElement>()->deref();
  #endif
  }
  
  } // namespace blink
  