106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)/*
219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * Copyright (C) 2013 Google Inc. All rights reserved.
319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) *
419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * Redistribution and use in source and binary forms, with or without
519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * modification, are permitted provided that the following conditions are
619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * met:
719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) *
819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) *     * Redistributions of source code must retain the above copyright
919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * notice, this list of conditions and the following disclaimer.
1019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) *     * Redistributions in binary form must reproduce the above
1119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * copyright notice, this list of conditions and the following disclaimer
1219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * in the documentation and/or other materials provided with the
1319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * distribution.
1419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) *     * Neither the name of Google Inc. nor the names of its
1519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * contributors may be used to endorse or promote products derived from
1619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * this software without specific prior written permission.
1719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) *
1819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
2119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) */
3019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
3119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)// This file has been auto-generated by code_generator_v8.pm. DO NOT MODIFY!
3206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
3306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "config.h"
3406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "V8TestObjectPython.h"
3506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
36bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#include "HTMLNames.h"
3706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "RuntimeEnabledFeatures.h"
38f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)#include "V8Attr.h"
3919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#include "V8CompareHow.h"
401e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "V8Document.h"
411e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "V8DocumentFragment.h"
421e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "V8DocumentType.h"
431e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "V8Element.h"
441e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "V8Entity.h"
451e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "V8HTMLCollection.h"
461e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "V8HTMLElement.h"
471e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "V8Node.h"
481e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "V8NodeFilter.h"
491e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "V8ShadowRoot.h"
50bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#include "V8TestInterface.h"
511e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "V8TestInterfaceEmpty.h"
52f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)#include "V8TestObjectA.h"
531e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "V8Window.h"
54f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)#include "V8XPathNSResolver.h"
551e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "bindings/v8/BindingSecurity.h"
5619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#include "bindings/v8/Dictionary.h"
571e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "bindings/v8/ExceptionState.h"
5851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#include "bindings/v8/ScriptCallStackFactory.h"
59bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#include "bindings/v8/ScriptPromise.h"
6051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#include "bindings/v8/ScriptState.h"
61bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#include "bindings/v8/ScriptValue.h"
621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "bindings/v8/SerializedScriptValue.h"
631e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "bindings/v8/V8AbstractEventListener.h"
641e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "bindings/v8/V8DOMActivityLogger.h"
6506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "bindings/v8/V8DOMConfiguration.h"
66bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#include "bindings/v8/V8EventListenerList.h"
671e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "bindings/v8/V8HiddenPropertyName.h"
681e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "bindings/v8/custom/V8ArrayBufferCustom.h"
69f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)#include "bindings/v8/custom/V8ArrayBufferViewCustom.h"
701e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "bindings/v8/custom/V8Float32ArrayCustom.h"
71f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)#include "bindings/v8/custom/V8Int32ArrayCustom.h"
721e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "bindings/v8/custom/V8Uint8ArrayCustom.h"
7319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#include "core/css/MediaQueryListListener.h"
7406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "core/dom/ContextFeatures.h"
7506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "core/dom/Document.h"
76bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#include "core/dom/custom/CustomElementCallbackDispatcher.h"
7751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#include "core/frame/DOMWindow.h"
7851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#include "core/frame/UseCounter.h"
7951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#include "core/inspector/ScriptArguments.h"
801e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "platform/TraceEvent.h"
811e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "wtf/GetPtr.h"
821e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "wtf/RefPtr.h"
8306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
8406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)namespace WebCore {
8506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
8606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)static void initializeScriptWrappableForInterface(TestObjectPython* object)
8706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
8806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    if (ScriptWrappable::wrapperCanBeStoredInObject(object))
89f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        ScriptWrappable::setTypeInfoInObject(object, &V8TestObjectPython::wrapperTypeInfo);
9006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    else
9106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)        ASSERT_NOT_REACHED();
9206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
9306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
9406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)} // namespace WebCore
9506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
9606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)// In ScriptWrappable::init, the use of a local function declaration has an issue on Windows:
9706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)// the local declaration does not pick up the surrounding namespace. Therefore, we provide this function
9806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)// in the global namespace.
9906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)// (More info on the MSVC bug here: http://connect.microsoft.com/VisualStudio/feedback/details/664619/the-namespace-of-local-function-declarations-in-c)
10006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)void webCoreInitializeScriptWrappableForInterface(WebCore::TestObjectPython* object)
10106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
10206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    WebCore::initializeScriptWrappableForInterface(object);
10306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
10406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
10506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)namespace WebCore {
106a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)const WrapperTypeInfo V8TestObjectPython::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestObjectPython::domTemplate, V8TestObjectPython::derefObject, 0, 0, 0, V8TestObjectPython::installPerContextEnabledMethods, 0, WrapperTypeObjectPrototype };
10706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
10806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)namespace TestObjectPythonV8Internal {
10906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
11006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)template <typename T> void V8_USE(T) { }
11106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
11219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void readonlyStringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
113bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
114bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
115bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->readonlyStringAttribute(), info.GetIsolate());
116bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
117bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
11819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void readonlyStringAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
119bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
120bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
12119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::readonlyStringAttributeAttributeGetter(info);
122bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
123bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
124bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
12519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void readonlyTestInterfaceEmptyAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
126bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
127bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
128bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    RefPtr<TestInterfaceEmpty> result = imp->readonlyTestInterfaceEmptyAttribute();
129bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (result && DOMDataStore::setReturnValueFromWrapper<V8TestInterfaceEmpty>(info.GetReturnValue(), result.get()))
130bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        return;
131bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8::Handle<v8::Value> wrapper = toV8(result.get(), info.Holder(), info.GetIsolate());
132bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (!wrapper.IsEmpty()) {
133bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        V8HiddenPropertyName::setNamedHiddenReference(info.Holder(), "readonlyTestInterfaceEmptyAttribute", wrapper);
134bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        v8SetReturnValue(info, wrapper);
135bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    }
136bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
137bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
13819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void readonlyTestInterfaceEmptyAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
139bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
140bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
14119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::readonlyTestInterfaceEmptyAttributeAttributeGetter(info);
142bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
143bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
144bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
14519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void readonlyLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
146bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
147bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
148bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->readonlyLongAttribute());
149bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
150bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
15119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void readonlyLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
152bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
153bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
15419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::readonlyLongAttributeAttributeGetter(info);
155bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
156bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
157bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
15819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void dateAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
159bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
160bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
161bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, v8DateOrNull(imp->dateAttribute(), info.GetIsolate()));
162bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
163bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
16419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void dateAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
165bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
166bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
16719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::dateAttributeAttributeGetter(info);
168bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
169bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
170bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
17119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void dateAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
172bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
173bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
174bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(double, cppValue, toWebCoreDate(jsValue));
175bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setDateAttribute(cppValue);
176bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
177bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
17819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void dateAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
179bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
180bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
18119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::dateAttributeAttributeSetter(jsValue, info);
182bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
183bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
184bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
18519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
186bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
187bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
188bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->stringAttribute(), info.GetIsolate());
189bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
190bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
19119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
192bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
193bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
19419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::stringAttributeAttributeGetter(info);
195bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
196bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
197bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
19819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
199bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
200bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
201bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
202bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setStringAttribute(cppValue);
203bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
204bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
20519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
206bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
207bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
20819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::stringAttributeAttributeSetter(jsValue, info);
209bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
210bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
211bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
21219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void readonlyDOMTimeStampAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
213bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
214bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
215bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, static_cast<double>(imp->readonlyDOMTimeStampAttribute()));
216bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
217bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
21819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void readonlyDOMTimeStampAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
219bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
220bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
22119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::readonlyDOMTimeStampAttributeAttributeGetter(info);
222bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
223bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
224bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
22519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void booleanAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
226bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
227bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
228bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueBool(info, imp->booleanAttribute());
229bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
230bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
23119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void booleanAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
232bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
233bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
23419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::booleanAttributeAttributeGetter(info);
235bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
236bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
237bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
23819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void booleanAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
239bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
240bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
241bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(bool, cppValue, jsValue->BooleanValue());
242bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setBooleanAttribute(cppValue);
243bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
244bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
24519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void booleanAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
246bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
247bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
24819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::booleanAttributeAttributeSetter(jsValue, info);
249bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
250bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
251bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
25219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void byteAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
253bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
254bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
255bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->byteAttribute());
256bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
257bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
25819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void byteAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
259bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
260bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
26119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::byteAttributeAttributeGetter(info);
262bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
263bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
264bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
26519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void byteAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
266bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
267bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
268bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt8(jsValue));
269bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setByteAttribute(cppValue);
270bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
271bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
27219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void byteAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
273bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
274bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
27519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::byteAttributeAttributeSetter(jsValue, info);
276bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
277bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
278bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
27919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void doubleAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
280bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
281bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
282bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, imp->doubleAttribute());
283bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
284bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
28519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void doubleAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
286bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
287bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
28819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::doubleAttributeAttributeGetter(info);
289bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
290bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
291bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
29219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void doubleAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
293bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
294bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
295bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(double, cppValue, static_cast<double>(jsValue->NumberValue()));
296bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setDoubleAttribute(cppValue);
297bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
298bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
29919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void doubleAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
300bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
301bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
30219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::doubleAttributeAttributeSetter(jsValue, info);
303bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
304bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
305bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
30619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void floatAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
307bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
308bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
309bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, imp->floatAttribute());
310bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
311bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
31219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void floatAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
313bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
314bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
31519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::floatAttributeAttributeGetter(info);
316bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
317bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
318bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
31919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void floatAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
320bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
321bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
322bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(float, cppValue, static_cast<float>(jsValue->NumberValue()));
323bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setFloatAttribute(cppValue);
324bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
325bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
32619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void floatAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
327bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
328bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
32919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::floatAttributeAttributeSetter(jsValue, info);
330bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
331bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
332bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
33319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
334bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
335bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
336bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->longAttribute());
337bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
338bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
33919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
340bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
341bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
34219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::longAttributeAttributeGetter(info);
343bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
344bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
345bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
34619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
347bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
348bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
349bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
350bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setLongAttribute(cppValue);
351bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
352bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
35319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
354bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
355bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
35619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::longAttributeAttributeSetter(jsValue, info);
357bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
358bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
359bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
36019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
361bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
362bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
363bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, static_cast<double>(imp->longLongAttribute()));
364bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
365bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
36619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
367bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
368bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
36919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::longLongAttributeAttributeGetter(info);
370bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
371bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
372bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
37319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
374bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
375bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
376bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(long long, cppValue, toInt64(jsValue));
377bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setLongLongAttribute(cppValue);
378bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
379bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
38019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
381bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
382bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
38319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::longLongAttributeAttributeSetter(jsValue, info);
384bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
385bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
386bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
38719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void octetAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
388bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
389bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
390bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueUnsigned(info, imp->octetAttribute());
391bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
392bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
39319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void octetAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
394bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
395bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
39619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::octetAttributeAttributeGetter(info);
397bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
398bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
399bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
40019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void octetAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
401bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
402bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
403bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(unsigned, cppValue, toUInt8(jsValue));
404bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setOctetAttribute(cppValue);
405bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
406bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
40719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void octetAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
408bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
409bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
41019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::octetAttributeAttributeSetter(jsValue, info);
411bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
412bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
413bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
41419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void shortAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
415bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
416bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
417bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->shortAttribute());
418bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
419bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
42019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void shortAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
421bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
422bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
42319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::shortAttributeAttributeGetter(info);
424bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
425bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
426bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
42719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void shortAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
428bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
429bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
43019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt16(jsValue));
431bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setShortAttribute(cppValue);
432bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
433bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
43419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void shortAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
435bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
436bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
43719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::shortAttributeAttributeSetter(jsValue, info);
438bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
439bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
440bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
44119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
442bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
443bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
444bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueUnsigned(info, imp->unsignedLongAttribute());
445bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
446bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
44719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
448bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
449bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
45019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::unsignedLongAttributeAttributeGetter(info);
451bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
452bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
453bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
45419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
455bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
456bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
457bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(unsigned, cppValue, toUInt32(jsValue));
458bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setUnsignedLongAttribute(cppValue);
459bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
460bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
46119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
462bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
463bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
46419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::unsignedLongAttributeAttributeSetter(jsValue, info);
465bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
466bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
467bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
46819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedLongLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
469bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
470bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
471bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, static_cast<double>(imp->unsignedLongLongAttribute()));
472bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
473bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
47419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedLongLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
475bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
476bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
47719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::unsignedLongLongAttributeAttributeGetter(info);
478bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
479bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
480bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
48119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedLongLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
482bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
483bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
484bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(unsigned long long, cppValue, toUInt64(jsValue));
485bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setUnsignedLongLongAttribute(cppValue);
486bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
487bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
48819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedLongLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
489bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
490bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
49119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::unsignedLongLongAttributeAttributeSetter(jsValue, info);
492bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
493bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
494bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
49519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedShortAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
496bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
497bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
498bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueUnsigned(info, imp->unsignedShortAttribute());
499bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
500bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
50119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedShortAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
502bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
503bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
50419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::unsignedShortAttributeAttributeGetter(info);
505bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
506bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
507bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
50819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedShortAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
509bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
510bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
51119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(unsigned, cppValue, toUInt16(jsValue));
512bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setUnsignedShortAttribute(cppValue);
513bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
514bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
51519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedShortAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
516bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
517bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
51819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::unsignedShortAttributeAttributeSetter(jsValue, info);
519bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
520bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
521bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
52219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void cssAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
523bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
524bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
525bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->cssAttribute());
526bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
527bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
52819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void cssAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
529bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
530bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
53119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::cssAttributeAttributeGetter(info);
532bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
533bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
534bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
53519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void cssAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
536bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
537bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
538bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
539bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setCSSAttribute(cppValue);
540bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
541bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
54219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void cssAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
543bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
544bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
54519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::cssAttributeAttributeSetter(jsValue, info);
546bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
547bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
548bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
54919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void imeAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
550bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
551bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
552bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->imeAttribute());
553bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
554bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
55519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void imeAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
556bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
557bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
55819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::imeAttributeAttributeGetter(info);
559bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
560bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
561bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
56219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void imeAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
563bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
564bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
565bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
566bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setIMEAttribute(cppValue);
567bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
568bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
56919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void imeAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
570bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
571bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
57219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::imeAttributeAttributeSetter(jsValue, info);
573bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
574bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
575bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
57619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void svgAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
577bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
578bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
579bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->svgAttribute());
580bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
581bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
58219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void svgAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
583bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
584bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
58519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::svgAttributeAttributeGetter(info);
586bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
587bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
588bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
58919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void svgAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
590bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
591bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
592bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
593bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setSVGAttribute(cppValue);
594bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
595bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
59619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void svgAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
597bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
598bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
59919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::svgAttributeAttributeSetter(jsValue, info);
600bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
601bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
602bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
60319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void xmlAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
604bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
605bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
606bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->xmlAttribute());
607bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
608bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
60919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void xmlAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
610bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
611bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
61219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::xmlAttributeAttributeGetter(info);
613bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
614bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
615bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
61619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void xmlAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
617bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
618bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
619bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
620bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setXMLAttribute(cppValue);
621bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
622bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
62319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void xmlAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
624bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
625bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
62619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::xmlAttributeAttributeSetter(jsValue, info);
627bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
628bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
629bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
63019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nodeFilterAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
631bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
632bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
633bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->nodeFilterAttribute(), imp);
634bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
635bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
63619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nodeFilterAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
637bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
638bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
63919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::nodeFilterAttributeAttributeGetter(info);
640bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
641bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
642bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
64319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nodeFilterAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
644bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
645bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
646bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(RefPtr<NodeFilter>, cppValue, toNodeFilter(jsValue, info.GetIsolate()));
647bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setNodeFilterAttribute(WTF::getPtr(cppValue));
648bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
649bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
65019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nodeFilterAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
651bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
652bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
65319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::nodeFilterAttributeAttributeSetter(jsValue, info);
654bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
655bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
656bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
65719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void serializedScriptValueAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
658bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
659bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
660bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, imp->serializedScriptValueAttribute() ? imp->serializedScriptValueAttribute()->deserialize() : v8::Handle<v8::Value>(v8::Null(info.GetIsolate())));
661bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
662bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
66319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void serializedScriptValueAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
664bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
665bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
66619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::serializedScriptValueAttributeAttributeGetter(info);
667bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
668bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
669bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
67019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void serializedScriptValueAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
671bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
672bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
673bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(RefPtr<SerializedScriptValue>, cppValue, SerializedScriptValue::create(jsValue, info.GetIsolate()));
674bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setSerializedScriptValueAttribute(WTF::getPtr(cppValue));
675bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
676bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
67719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void serializedScriptValueAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
678bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
679bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
68019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::serializedScriptValueAttributeAttributeSetter(jsValue, info);
681bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
682bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
683bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
68419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void anyAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
685bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
686bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
687bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, imp->anyAttribute().v8Value());
688bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
689bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
69019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void anyAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
691bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
692bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
69319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::anyAttributeAttributeGetter(info);
694bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
695bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
696bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
69719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void anyAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
698bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
699bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
700bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(ScriptValue, cppValue, ScriptValue(jsValue, info.GetIsolate()));
701bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setAnyAttribute(cppValue);
702bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
703bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
70419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void anyAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
705bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
706bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
70719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::anyAttributeAttributeSetter(jsValue, info);
708bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
709bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
710bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
71119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void promiseAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
712bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
713bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
71419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->promiseAttribute().v8Value());
715bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
716bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
71719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void promiseAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
718bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
719bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
72019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::promiseAttributeAttributeGetter(info);
721bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
722bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
723bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
72419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void promiseAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
725bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
726bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
72719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(ScriptPromise, cppValue, ScriptPromise(jsValue));
72819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    imp->setPromiseAttribute(cppValue);
729bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
730bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
73119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void promiseAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
732bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
733bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
73419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::promiseAttributeAttributeSetter(jsValue, info);
735bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
736bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
737bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
73819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void documentAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
739bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
740bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
741bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->documentAttribute(), imp);
742bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
743bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
74419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void documentAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
745bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
746bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
74719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::documentAttributeAttributeGetter(info);
748bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
749bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
750bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
75119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void documentAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
752bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
753bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
75451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(Document*, cppValue, V8Document::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8Document::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
755bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setDocumentAttribute(WTF::getPtr(cppValue));
756bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
757bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
75819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void documentAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
759bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
760bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
76119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::documentAttributeAttributeSetter(jsValue, info);
762bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
763bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
764bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
76519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void documentFragmentAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
766bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
767bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
768bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->documentFragmentAttribute(), imp);
769bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
770bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
77119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void documentFragmentAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
772bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
773bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
77419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::documentFragmentAttributeAttributeGetter(info);
775bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
776bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
777bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
77819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void documentFragmentAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
779bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
780bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
78151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(DocumentFragment*, cppValue, V8DocumentFragment::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8DocumentFragment::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
782bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setDocumentFragmentAttribute(WTF::getPtr(cppValue));
783bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
784bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
78519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void documentFragmentAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
786bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
787bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
78819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::documentFragmentAttributeAttributeSetter(jsValue, info);
789bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
790bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
791bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
79219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void documentTypeAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
793bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
794bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
795bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->documentTypeAttribute(), imp);
796bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
797bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
79819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void documentTypeAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
799bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
800bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
80119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::documentTypeAttributeAttributeGetter(info);
802bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
803bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
804bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
80519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void documentTypeAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
806bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
807bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
80851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(DocumentType*, cppValue, V8DocumentType::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8DocumentType::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
809bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setDocumentTypeAttribute(WTF::getPtr(cppValue));
810bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
811bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
81219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void documentTypeAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
813bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
814bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
81519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::documentTypeAttributeAttributeSetter(jsValue, info);
816bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
817bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
818bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
81919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void elementAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
820bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
821bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
822bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->elementAttribute(), imp);
823bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
824bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
82519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void elementAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
826bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
827bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
82819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::elementAttributeAttributeGetter(info);
829bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
830bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
831bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
83219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void elementAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
833bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
834bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
83551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(Element*, cppValue, V8Element::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8Element::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
836bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setElementAttribute(WTF::getPtr(cppValue));
837bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
838bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
83919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void elementAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
840bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
841bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
84219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::elementAttributeAttributeSetter(jsValue, info);
843bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
844bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
845bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
84619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void entityAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
847bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
848bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
849bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->entityAttribute(), imp);
850bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
851bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
85219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void entityAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
853bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
854bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
85519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::entityAttributeAttributeGetter(info);
856bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
857bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
858bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
85919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void entityAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
860bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
861bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
86251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(Entity*, cppValue, V8Entity::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8Entity::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
863bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setEntityAttribute(WTF::getPtr(cppValue));
864bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
865bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
86619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void entityAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
867bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
868bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
86919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::entityAttributeAttributeSetter(jsValue, info);
870bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
871bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
872bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
87319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nodeAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
874bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
875bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
876bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->nodeAttribute(), imp);
877bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
878bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
87919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nodeAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
880bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
881bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
88219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::nodeAttributeAttributeGetter(info);
883bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
884bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
885bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
88619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nodeAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
887bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
888bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
88951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(Node*, cppValue, V8Node::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8Node::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
890bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setNodeAttribute(WTF::getPtr(cppValue));
891bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
892bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
89319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nodeAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
894bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
895bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
89619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::nodeAttributeAttributeSetter(jsValue, info);
897bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
898bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
899bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
90019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void shadowRootAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
901bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
902bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
903bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->shadowRootAttribute(), imp);
904bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
905bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
90619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void shadowRootAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
907bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
908bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
90919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::shadowRootAttributeAttributeGetter(info);
910bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
911bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
912bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
91319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void shadowRootAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
914bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
915bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
91651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(ShadowRoot*, cppValue, V8ShadowRoot::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8ShadowRoot::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
917bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setShadowRootAttribute(WTF::getPtr(cppValue));
918bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
919bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
92019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void shadowRootAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
921bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
922bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
92319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::shadowRootAttributeAttributeSetter(jsValue, info);
924bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
925bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
926bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
92719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void arrayBufferAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
928bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
929bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
930bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->arrayBufferAttribute(), imp);
931bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
932bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
93319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void arrayBufferAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
934bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
935bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
93619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::arrayBufferAttributeAttributeGetter(info);
937bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
938bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
939bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
94019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void arrayBufferAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
941bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
942bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
943bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(ArrayBuffer*, cppValue, jsValue->IsArrayBuffer() ? V8ArrayBuffer::toNative(v8::Handle<v8::ArrayBuffer>::Cast(jsValue)) : 0);
944bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setArrayBufferAttribute(WTF::getPtr(cppValue));
945bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
946bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
94719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void arrayBufferAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
948bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
949bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
95019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::arrayBufferAttributeAttributeSetter(jsValue, info);
951bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
952bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
953bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
95419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void float32ArrayAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
955bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
956bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
957bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->float32ArrayAttribute(), imp);
958bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
959bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
96019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void float32ArrayAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
961bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
962bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
96319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::float32ArrayAttributeAttributeGetter(info);
964bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
965bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
966bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
96719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void float32ArrayAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
968bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
969bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
970bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(Float32Array*, cppValue, jsValue->IsFloat32Array() ? V8Float32Array::toNative(v8::Handle<v8::Float32Array>::Cast(jsValue)) : 0);
971bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setFloat32ArrayAttribute(WTF::getPtr(cppValue));
972bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
973bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
97419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void float32ArrayAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
975bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
976bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
97719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::float32ArrayAttributeAttributeSetter(jsValue, info);
978bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
979bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
980bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
98119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void uint8ArrayAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
982bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
983bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
984bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->uint8ArrayAttribute(), imp);
985bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
986bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
98719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void uint8ArrayAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
988bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
989bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
99019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::uint8ArrayAttributeAttributeGetter(info);
991bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
992bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
993bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
99419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void uint8ArrayAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
995bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
996bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
997bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(Uint8Array*, cppValue, jsValue->IsUint8Array() ? V8Uint8Array::toNative(v8::Handle<v8::Uint8Array>::Cast(jsValue)) : 0);
998bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setUint8ArrayAttribute(WTF::getPtr(cppValue));
999bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1000bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
100119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void uint8ArrayAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1002bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1003bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
100419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::uint8ArrayAttributeAttributeSetter(jsValue, info);
1005bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1006bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1007bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
100819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1009bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1010bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1011bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->testInterfaceEmptyAttribute(), imp);
1012bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1013bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
101419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1015bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1016bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
101719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::testInterfaceEmptyAttributeAttributeGetter(info);
1018bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1019bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1020bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
102119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1022bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1023bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
102451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, cppValue, V8TestInterfaceEmpty::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
1025bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setTestInterfaceEmptyAttribute(WTF::getPtr(cppValue));
1026bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1027bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
102819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1029bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1030bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
103119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::testInterfaceEmptyAttributeAttributeSetter(jsValue, info);
1032bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1033bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1034bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
103519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void selfAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1036bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1037bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1038bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->self(), imp);
1039bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1040bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
104119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void selfAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1042bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1043bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
104419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::selfAttributeGetter(info);
1045bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1046bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1047bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
104819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void selfAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1049bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1050bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
105151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, cppValue, V8TestInterfaceEmpty::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
1052bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setSelf(WTF::getPtr(cppValue));
1053bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1054bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
105519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void selfAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1056bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1057bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
105819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::selfAttributeSetter(jsValue, info);
1059bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1060bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1061bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
106219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void readonlyWindowAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1063bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1064bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1065bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->readonlyWindowAttribute(), imp);
1066bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1067bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
106819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void readonlyWindowAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1069bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1070bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
107119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::readonlyWindowAttributeAttributeGetter(info);
1072bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1073bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1074bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
107519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void htmlCollectionAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1076bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1077bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1078bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->htmlCollectionAttribute(), imp);
1079bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1080bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
108119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void htmlCollectionAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1082bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1083bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
108419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::htmlCollectionAttributeAttributeGetter(info);
1085bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1086bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1087bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
108819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void htmlCollectionAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1089bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1090bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
109151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(HTMLCollection*, cppValue, V8HTMLCollection::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8HTMLCollection::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
1092bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setHTMLCollectionAttribute(WTF::getPtr(cppValue));
1093bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1094bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
109519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void htmlCollectionAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1096bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1097bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
109819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::htmlCollectionAttributeAttributeSetter(jsValue, info);
1099bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1100bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1101bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
110219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void htmlElementAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1103bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1104bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1105bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->htmlElementAttribute(), imp);
1106bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1107bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
110819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void htmlElementAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1109bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1110bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
111119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::htmlElementAttributeAttributeGetter(info);
1112bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1113bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1114bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
111519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void htmlElementAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1116bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1117bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
111851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(HTMLElement*, cppValue, V8HTMLElement::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8HTMLElement::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
1119bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setHTMLElementAttribute(WTF::getPtr(cppValue));
1120bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1121bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
112219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void htmlElementAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1123bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1124bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
112519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::htmlElementAttributeAttributeSetter(jsValue, info);
1126bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1127bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1128bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
112919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringArrayAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1130bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1131bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1132bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, v8Array(imp->stringArrayAttribute(), info.GetIsolate()));
1133bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1134bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
113519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringArrayAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1136bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1137bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
113819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::stringArrayAttributeAttributeGetter(info);
1139bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1140bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1141bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
114219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringArrayAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1143bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1144bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1145f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    V8TRYCATCH_VOID(Vector<String>, cppValue, toNativeArray<String>(jsValue, 0, info.GetIsolate()));
1146bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setStringArrayAttribute(cppValue);
1147bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1148bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
114919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringArrayAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1150bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1151bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
115219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::stringArrayAttributeAttributeSetter(jsValue, info);
1153bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1154bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1155bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
115619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyArrayAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1157bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1158bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1159bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, v8Array(imp->testInterfaceEmptyArrayAttribute(), info.GetIsolate()));
1160bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1161bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
116219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyArrayAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1163bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1164bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
116519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::testInterfaceEmptyArrayAttributeAttributeGetter(info);
1166bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1167bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1168bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
116919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyArrayAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1170bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1171bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1172f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    V8TRYCATCH_VOID(Vector<RefPtr<TestInterfaceEmpty> >, cppValue, (toRefPtrNativeArray<TestInterfaceEmpty, V8TestInterfaceEmpty>(jsValue, 0, info.GetIsolate())));
1173bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setTestInterfaceEmptyArrayAttribute(cppValue);
1174bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1175bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
117619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyArrayAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1177bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1178bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
117919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::testInterfaceEmptyArrayAttributeAttributeSetter(jsValue, info);
1180bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1181bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1182bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
118319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void floatArrayAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1184bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1185bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1186bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, v8Array(imp->floatArrayAttribute(), info.GetIsolate()));
1187bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1188bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
118919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void floatArrayAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1190bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1191bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
119219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::floatArrayAttributeAttributeGetter(info);
1193bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1194bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1195bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
119619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void floatArrayAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1197bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1198bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1199f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    V8TRYCATCH_VOID(Vector<float>, cppValue, toNativeArray<float>(jsValue, 0, info.GetIsolate()));
1200bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setFloatArrayAttribute(cppValue);
1201bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1202bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
120319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void floatArrayAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1204bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1205bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
120619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::floatArrayAttributeAttributeSetter(jsValue, info);
1207bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1208bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1209bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
121019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nullableStringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1211bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1212bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1213bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    bool isNull = false;
1214bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    String jsValue = imp->nullableStringAttribute(isNull);
1215bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (isNull) {
1216bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        v8SetReturnValueNull(info);
1217bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        return;
1218bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    }
1219bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, jsValue, info.GetIsolate());
1220bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1221bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
122219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nullableStringAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1223bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1224bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
122519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::nullableStringAttributeAttributeGetter(info);
1226bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1227bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1228bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
122919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nullableStringAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1230bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1231bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1232bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
1233bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setNullableStringAttribute(cppValue);
1234bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1235bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
123619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nullableStringAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1237bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1238bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
123919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::nullableStringAttributeAttributeSetter(jsValue, info);
1240bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1241bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1242bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
124319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nullableLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1244bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1245bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1246bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    bool isNull = false;
1247bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    int jsValue = imp->nullableLongAttribute(isNull);
1248bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (isNull) {
1249bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        v8SetReturnValueNull(info);
1250bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        return;
1251bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    }
1252bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, jsValue);
1253bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1254bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
125519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nullableLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1256bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1257bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
125819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::nullableLongAttributeAttributeGetter(info);
1259bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1260bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1261bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
126219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nullableLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1263bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1264bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1265bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1266bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setNullableLongAttribute(cppValue);
1267bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1268bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
126919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nullableLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1270bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1271bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
127219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::nullableLongAttributeAttributeSetter(jsValue, info);
1273bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1274bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1275bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
127619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testEnumAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1277bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1278bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1279bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->testEnumAttribute(), info.GetIsolate());
1280bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1281bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
128219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testEnumAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1283bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1284bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
128519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::testEnumAttributeAttributeGetter(info);
1286bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1287bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1288bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
128919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testEnumAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1290bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1291bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1292bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
1293bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    String string = cppValue;
1294bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (!(string == "" || string == "EnumValue1" || string == "EnumValue2" || string == "EnumValue3"))
1295bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        return;
1296bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setTestEnumAttribute(cppValue);
1297bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1298bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
129919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testEnumAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1300bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1301bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
130219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::testEnumAttributeAttributeSetter(jsValue, info);
1303bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1304bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1305bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
130619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void staticStringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1307bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1308bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, TestObjectPython::staticStringAttribute(), info.GetIsolate());
1309bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1310bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
131119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void staticStringAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1312bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1313bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
131419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::staticStringAttributeAttributeGetter(info);
1315bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1316bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1317bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
131819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void staticStringAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1319bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1320bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
1321bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython::setStaticStringAttribute(cppValue);
1322bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1323bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
132419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void staticStringAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1325bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1326bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
132719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::staticStringAttributeAttributeSetter(jsValue, info);
1328bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1329bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1330bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
133119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void staticLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1332bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1333bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, TestObjectPython::staticLongAttribute());
1334bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1335bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
133619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void staticLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1337bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1338bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
133919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::staticLongAttributeAttributeGetter(info);
1340bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1341bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1342bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
134319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void staticLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1344bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1345bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1346bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython::setStaticLongAttribute(cppValue);
1347bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1348bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
134919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void staticLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1350bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1351bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
135219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::staticLongAttributeAttributeSetter(jsValue, info);
1353bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1354bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1355bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
135619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void eventHandlerAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1357bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1358bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1359bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    EventListener* jsValue = imp->eventHandlerAttribute(isolatedWorldForIsolate(info.GetIsolate()));
1360bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, jsValue ? v8::Handle<v8::Value>(V8AbstractEventListener::cast(jsValue)->getListenerObject(imp->executionContext())) : v8::Handle<v8::Value>(v8::Null(info.GetIsolate())));
1361bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1362bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
136319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void eventHandlerAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1364bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1365bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
136619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::eventHandlerAttributeAttributeGetter(info);
1367bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1368bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1369bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
137019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void eventHandlerAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1371bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1372bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1373bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    transferHiddenDependency(info.Holder(), imp->eventHandlerAttribute(isolatedWorldForIsolate(info.GetIsolate())), jsValue, V8TestObjectPython::eventListenerCacheIndex, info.GetIsolate());
1374bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setEventHandlerAttribute(V8EventListenerList::getEventListener(jsValue, true, ListenerFindOrCreate), isolatedWorldForIsolate(info.GetIsolate()));
1375bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1376bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
137719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void eventHandlerAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1378bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1379bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
138019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::eventHandlerAttributeAttributeSetter(jsValue, info);
1381bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1382bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1383bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
138419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessForAllWorldsLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1385bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1386bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1387bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->activityLoggingAccessForAllWorldsLongAttribute());
1388bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1389bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
139019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessForAllWorldsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1391bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1392bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
1393bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
1394bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (contextData && contextData->activityLogger())
1395bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingAccessForAllWorldsLongAttribute", 0, 0, "Getter");
139619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingAccessForAllWorldsLongAttributeAttributeGetter(info);
1397bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1398bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1399bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
140019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessForAllWorldsLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1401bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1402bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1403bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1404bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setActivityLoggingAccessForAllWorldsLongAttribute(cppValue);
1405bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1406bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
140719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessForAllWorldsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1408bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1409bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
1410bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
1411bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (contextData && contextData->activityLogger()) {
1412bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        v8::Handle<v8::Value> loggerArg[] = { jsValue };
1413bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingAccessForAllWorldsLongAttribute", 1, &loggerArg[0], "Setter");
1414bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    }
141519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingAccessForAllWorldsLongAttributeAttributeSetter(jsValue, info);
1416bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1417bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1418bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
141919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterForAllWorldsLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1420bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1421bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1422bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->activityLoggingGetterForAllWorldsLongAttribute());
1423bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1424bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
142519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterForAllWorldsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1426bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1427bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
1428bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
1429bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (contextData && contextData->activityLogger())
1430bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingGetterForAllWorldsLongAttribute", 0, 0, "Getter");
143119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingGetterForAllWorldsLongAttributeAttributeGetter(info);
1432bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1433bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1434bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
143519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterForAllWorldsLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1436bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1437bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1438bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1439bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setActivityLoggingGetterForAllWorldsLongAttribute(cppValue);
1440bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1441bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
144219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterForAllWorldsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1443bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1444bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
144519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingGetterForAllWorldsLongAttributeAttributeSetter(jsValue, info);
1446bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1447bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1448bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
144919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingSetterForAllWorldsLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1450bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1451bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1452bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->activityLoggingSetterForAllWorldsLongAttribute());
1453bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1454bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
145519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingSetterForAllWorldsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1456bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1457bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
145819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingSetterForAllWorldsLongAttributeAttributeGetter(info);
1459bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1460bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1461bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
146219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingSetterForAllWorldsLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1463bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1464bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1465bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1466bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setActivityLoggingSetterForAllWorldsLongAttribute(cppValue);
1467bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1468bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
146919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingSetterForAllWorldsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1470bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1471bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
1472bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
1473bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (contextData && contextData->activityLogger()) {
1474bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        v8::Handle<v8::Value> loggerArg[] = { jsValue };
1475bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingSetterForAllWorldsLongAttribute", 1, &loggerArg[0], "Setter");
1476bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    }
147719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingSetterForAllWorldsLongAttributeAttributeSetter(jsValue, info);
1478bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1479bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1480bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
148119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void cachedAttributeAnyAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1482bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1483a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::String> propertyName = v8::String::NewFromUtf8(info.GetIsolate(), "cachedAttributeAnyAttribute", v8::String::kInternalizedString);
1484bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1485bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (!imp->isValueDirty()) {
1486bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        v8::Handle<v8::Value> jsValue = info.Holder()->GetHiddenValue(propertyName);
1487bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        if (!jsValue.IsEmpty()) {
1488bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)            v8SetReturnValue(info, jsValue);
1489bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)            return;
1490bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        }
1491bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    }
1492bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    ScriptValue jsValue = imp->cachedAttributeAnyAttribute();
1493bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    info.Holder()->SetHiddenValue(propertyName, jsValue.v8Value());
1494bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, jsValue.v8Value());
1495bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1496bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
149719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void cachedAttributeAnyAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1498bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1499bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
150019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::cachedAttributeAnyAttributeAttributeGetter(info);
1501bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1502bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1503bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
150419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void cachedAttributeAnyAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1505bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1506bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1507bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(ScriptValue, cppValue, ScriptValue(jsValue, info.GetIsolate()));
1508bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setCachedAttributeAnyAttribute(cppValue);
1509a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    info.Holder()->DeleteHiddenValue(v8::String::NewFromUtf8(info.GetIsolate(), "cachedAttributeAnyAttribute", v8::String::kInternalizedString)); // Invalidate the cached value.
1510bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1511bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
151219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void cachedAttributeAnyAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1513bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1514bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
151519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::cachedAttributeAnyAttributeAttributeSetter(jsValue, info);
1516bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1517bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1518bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
151919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void callWithExecutionContextAnyAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1520bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1521bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1522bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    ExecutionContext* scriptContext = getExecutionContext();
1523bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, imp->callWithExecutionContextAnyAttribute(scriptContext).v8Value());
1524bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1525bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
152619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void callWithExecutionContextAnyAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1527bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1528bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
152919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::callWithExecutionContextAnyAttributeAttributeGetter(info);
1530bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1531bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1532bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
153319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void callWithExecutionContextAnyAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1534bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1535bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1536bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(ScriptValue, cppValue, ScriptValue(jsValue, info.GetIsolate()));
1537bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    ExecutionContext* scriptContext = getExecutionContext();
1538bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setCallWithExecutionContextAnyAttribute(scriptContext, cppValue);
1539bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1540bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
154119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void callWithExecutionContextAnyAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1542bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1543bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
154419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::callWithExecutionContextAnyAttributeAttributeSetter(jsValue, info);
1545bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1546bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1547bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
154819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void checkSecurityForNodeReadonlyDocumentAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1549bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1550bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1551a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    ExceptionState exceptionState(ExceptionState::GetterContext, "checkSecurityForNodeReadonlyDocumentAttribute", "TestObjectPython", info.Holder(), info.GetIsolate());
155251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (!BindingSecurity::shouldAllowAccessToNode(imp->checkSecurityForNodeReadonlyDocumentAttribute(), exceptionState)) {
1553bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        v8SetReturnValueNull(info);
155451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        exceptionState.throwIfNeeded();
1555bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        return;
1556bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    }
1557bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->checkSecurityForNodeReadonlyDocumentAttribute(), imp);
1558bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1559bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
156019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void checkSecurityForNodeReadonlyDocumentAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1561bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1562bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
156319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::checkSecurityForNodeReadonlyDocumentAttributeAttributeGetter(info);
1564bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1565bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1566bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
156751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
156819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void conditionalLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1569bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1570bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1571bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->conditionalLongAttribute());
1572bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
157351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
1574bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
157551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
157619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void conditionalLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1577bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1578bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
157919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::conditionalLongAttributeAttributeGetter(info);
1580bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1581bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
158251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
1583bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
158451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
158519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void conditionalLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1586bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1587bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1588bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1589bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setConditionalLongAttribute(cppValue);
1590bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
159151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
1592bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
159351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
159419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void conditionalLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1595bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1596bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
159719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::conditionalLongAttributeAttributeSetter(jsValue, info);
1598bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1599bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
160051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
1601bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
160251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
160319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void conditionalAndLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1604bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1605bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1606bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->conditionalAndLongAttribute());
1607bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
160851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
1609bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
161051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
161119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void conditionalAndLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1612bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1613bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
161419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::conditionalAndLongAttributeAttributeGetter(info);
1615bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1616bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
161751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
1618bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
161951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
162019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void conditionalAndLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1621bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1622bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1623bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1624bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setConditionalAndLongAttribute(cppValue);
1625bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
162651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
1627bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
162851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
162919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void conditionalAndLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1630bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1631bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
163219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::conditionalAndLongAttributeAttributeSetter(jsValue, info);
1633bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1634bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
163551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
1636bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
163751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) || ENABLE(CONDITION_2)
163819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void conditionalOrLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1639bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1640bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1641bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->conditionalOrLongAttribute());
1642bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
164351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) || ENABLE(CONDITION_2)
1644bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
164551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) || ENABLE(CONDITION_2)
164619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void conditionalOrLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1647bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1648bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
164919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::conditionalOrLongAttributeAttributeGetter(info);
1650bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1651bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
165251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) || ENABLE(CONDITION_2)
1653bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
165451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) || ENABLE(CONDITION_2)
165519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void conditionalOrLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1656bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1657bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1658bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1659bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setConditionalOrLongAttribute(cppValue);
1660bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
166151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) || ENABLE(CONDITION_2)
1662bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
166351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) || ENABLE(CONDITION_2)
166419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void conditionalOrLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1665bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1666bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
166719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::conditionalOrLongAttributeAttributeSetter(jsValue, info);
1668bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1669bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
167051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) || ENABLE(CONDITION_2)
1671bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
167251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void customObjectAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1673bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1674bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
167551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TestObjectPython::customObjectAttributeAttributeGetterCustom(info);
1676bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1677bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1678bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
167951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void customObjectAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1680bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1681bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
168251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TestObjectPython::customObjectAttributeAttributeSetterCustom(jsValue, info);
1683bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1684bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1685bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
168619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customGetterLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1687bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1688bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
168919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TestObjectPython::customGetterLongAttributeAttributeGetterCustom(info);
1690bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1691bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1692bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
169319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customGetterLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1694bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1695bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1696bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1697bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setCustomGetterLongAttribute(cppValue);
1698bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1699bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
170019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customGetterLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1701bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1702bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
170319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::customGetterLongAttributeAttributeSetter(jsValue, info);
1704bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1705bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1706bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
170751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void customGetterReadonlyObjectAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
170851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
170951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
171051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TestObjectPython::customGetterReadonlyObjectAttributeAttributeGetterCustom(info);
171151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
171251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
171351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
171419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customSetterLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1715bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1716bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1717bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->customSetterLongAttribute());
1718bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1719bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
172019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customSetterLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1721bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1722bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
172319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::customSetterLongAttributeAttributeGetter(info);
1724bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1725bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1726bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
172719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customSetterLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1728bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1729bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
173019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TestObjectPython::customSetterLongAttributeAttributeSetterCustom(jsValue, info);
1731bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1732bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1733bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
173451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
173519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1736bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1737bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
173819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TestObjectPython::customLongAttributeAttributeGetterCustom(info);
1739bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1740bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
174151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
1742bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
174351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
174419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1745bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1746bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
174719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TestObjectPython::customLongAttributeAttributeSetterCustom(jsValue, info);
1748bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1749bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
175051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
1751bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
175219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customElementsCallbacksReadonlyLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1753bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1754bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1755bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->customElementsCallbacksReadonlyLongAttribute());
1756bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1757bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
175819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customElementsCallbacksReadonlyLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1759bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1760bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
176119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::customElementsCallbacksReadonlyLongAttributeAttributeGetter(info);
1762bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1763bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1764bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
176519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void deprecatedLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1766bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1767bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1768bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->deprecatedLongAttribute());
1769bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1770bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
177119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void deprecatedLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1772bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1773bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
1774bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    UseCounter::countDeprecation(activeExecutionContext(), UseCounter::LongAttribute);
177519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::deprecatedLongAttributeAttributeGetter(info);
1776bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1777bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1778bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
177919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void deprecatedLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1780bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1781bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1782bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1783bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setDeprecatedLongAttribute(cppValue);
1784bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1785bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
178619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void deprecatedLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1787bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1788bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
1789bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    UseCounter::countDeprecation(activeExecutionContext(), UseCounter::LongAttribute);
179019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::deprecatedLongAttributeAttributeSetter(jsValue, info);
1791bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1792bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1793bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
179451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void enforceRangeLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1795bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1796bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
179751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    v8SetReturnValueInt(info, imp->enforceRangeLongAttribute());
1798bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1799bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
180051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void enforceRangeLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1801bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1802bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
180351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::enforceRangeLongAttributeAttributeGetter(info);
1804bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1805bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1806bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
180751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void enforceRangeLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1808bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1809bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
181051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_WITH_TYPECHECK_VOID(int, cppValue, toInt32(jsValue, EnforceRange, ok), info.GetIsolate());
181151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->setEnforceRangeLongAttribute(cppValue);
1812bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1813bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
181451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void enforceRangeLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1815bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1816bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
181751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::enforceRangeLongAttributeAttributeSetter(jsValue, info);
1818bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1819bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1820bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
182151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void exposeJSAccessorsLongAttributeAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
1822bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1823bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
182451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    v8SetReturnValueInt(info, imp->exposeJSAccessorsLongAttribute());
1825bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1826bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
182751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void exposeJSAccessorsLongAttributeAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
1828bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1829bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
183051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::exposeJSAccessorsLongAttributeAttributeGetter(info);
1831bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1832bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1833bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
183451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void exposeJSAccessorsLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::FunctionCallbackInfo<v8::Value>& info)
1835bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1836bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1837bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
183851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->setExposeJSAccessorsLongAttribute(cppValue);
1839bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1840bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
184151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void exposeJSAccessorsLongAttributeAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
1842bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
184351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    v8::Local<v8::Value> jsValue = info[0];
1844bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
184551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::exposeJSAccessorsLongAttributeAttributeSetter(jsValue, info);
1846bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1847bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1848bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
184919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void getterRaisesExceptionLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1850bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1851bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1852a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    ExceptionState exceptionState(ExceptionState::GetterContext, "getterRaisesExceptionLongAttribute", "TestObjectPython", info.Holder(), info.GetIsolate());
185351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    int jsValue = imp->getterRaisesExceptionLongAttribute(exceptionState);
185451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(exceptionState.throwIfNeeded()))
1855bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        return;
1856bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, jsValue);
1857bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1858bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
185919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void getterRaisesExceptionLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1860bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1861bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
186219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::getterRaisesExceptionLongAttributeAttributeGetter(info);
1863bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1864bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1865bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
186619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void getterRaisesExceptionLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1867bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1868bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1869bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1870bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setGetterRaisesExceptionLongAttribute(cppValue);
1871bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1872bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
187319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void getterRaisesExceptionLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1874bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1875bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
187619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::getterRaisesExceptionLongAttributeAttributeSetter(jsValue, info);
1877bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1878bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1879bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
188019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void implementedAsLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1881bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1882bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1883bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->implementedAsName());
1884bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1885bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
188619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void implementedAsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1887bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1888bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
188919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::implementedAsLongAttributeAttributeGetter(info);
1890bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1891bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1892bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
189319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void implementedAsLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1894bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1895bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1896bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1897bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setImplementedAsName(cppValue);
1898bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1899bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
190019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void implementedAsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1901bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1902bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
190319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::implementedAsLongAttributeAttributeSetter(jsValue, info);
1904bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1905bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1906bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
190719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customImplementedAsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1908bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1909bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
191019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TestObjectPython::customImplementedAsLongAttributeAttributeGetterCustom(info);
1911bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1912bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1913bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
191419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customImplementedAsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1915bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1916bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
191719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TestObjectPython::customImplementedAsLongAttributeAttributeSetterCustom(jsValue, info);
1918bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1919bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1920bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
192119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customGetterImplementedAsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1922bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1923bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
192419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TestObjectPython::customGetterImplementedAsLongAttributeAttributeGetterCustom(info);
1925bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1926bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1927bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
192819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customGetterImplementedAsLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1929bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1930bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1931bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1932bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setImplementedAsNameWithCustomGetter(cppValue);
1933bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1934bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
193519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customGetterImplementedAsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1936bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1937bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
193819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::customGetterImplementedAsLongAttributeAttributeSetter(jsValue, info);
1939bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1940bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1941bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
194219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customSetterImplementedAsLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1943bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1944bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1945bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->implementedAsNameWithCustomGetter());
1946bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1947bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
194819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customSetterImplementedAsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1949bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1950bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
195119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::customSetterImplementedAsLongAttributeAttributeGetter(info);
1952bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1953bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1954bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
195519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void customSetterImplementedAsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1956bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1957bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
195819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TestObjectPython::customSetterImplementedAsLongAttributeAttributeSetterCustom(jsValue, info);
1959bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1960bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1961bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
196219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void measureAsLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1963bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1964bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1965bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->measureAsLongAttribute());
1966bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1967bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
196819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void measureAsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1969bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1970bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
1971bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    UseCounter::count(activeDOMWindow(), UseCounter::TestFeature);
197219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::measureAsLongAttributeAttributeGetter(info);
1973bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1974bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1975bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
197619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void measureAsLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1977bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1978bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1979bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
1980bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setMeasureAsLongAttribute(cppValue);
1981bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1982bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
198319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void measureAsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
1984bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1985bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
1986bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    UseCounter::count(activeDOMWindow(), UseCounter::TestFeature);
198719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::measureAsLongAttributeAttributeSetter(jsValue, info);
1988bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
1989bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1990bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
199119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void notEnumerableLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
1992bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1993bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
1994bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->notEnumerableLongAttribute());
1995bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
1996bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
199719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void notEnumerableLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
1998bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
1999bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
200019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::notEnumerableLongAttributeAttributeGetter(info);
2001bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
2002bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
2003bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
200419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void notEnumerableLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
2005bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
2006bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2007bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2008bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setNotEnumerableLongAttribute(cppValue);
2009bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
2010bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
201119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void notEnumerableLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
2012bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
2013bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
201419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::notEnumerableLongAttributeAttributeSetter(jsValue, info);
2015bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
2016bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
2017bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
201819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perContextEnabledLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
201906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
202006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2021bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->perContextEnabledLongAttribute());
202206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
202306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
202419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perContextEnabledLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
202506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
202606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
202719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::perContextEnabledLongAttributeAttributeGetter(info);
202806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
202906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
203006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
203119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perContextEnabledLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
203206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
203306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2034bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2035bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setPerContextEnabledLongAttribute(cppValue);
203606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
203706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
203819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perContextEnabledLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
203906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
2040bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
204119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::perContextEnabledLongAttributeAttributeSetter(jsValue, info);
204206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
204306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
204406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
204519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perWorldBindingsLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
204606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
204706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2048bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->perWorldBindingsLongAttribute());
204906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
205006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
205119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perWorldBindingsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
205206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
205306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
205419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::perWorldBindingsLongAttributeAttributeGetter(info);
205506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
205606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
205706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
205819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perWorldBindingsLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
205906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
206006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2061f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2062f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->setPerWorldBindingsLongAttribute(cppValue);
206306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
206406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
206519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perWorldBindingsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
206606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
2067f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
206819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::perWorldBindingsLongAttributeAttributeSetter(jsValue, info);
206906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
207006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
207106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
207219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perWorldBindingsLongAttributeAttributeGetterForMainWorld(const v8::PropertyCallbackInfo<v8::Value>& info)
207306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
207406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2075f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->perWorldBindingsLongAttribute());
207606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
207706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
207819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perWorldBindingsLongAttributeAttributeGetterCallbackForMainWorld(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
207906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
2080f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
208119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::perWorldBindingsLongAttributeAttributeGetterForMainWorld(info);
208206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
208306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
208406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
208519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perWorldBindingsLongAttributeAttributeSetterForMainWorld(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
208606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
208706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2088bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2089bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setPerWorldBindingsLongAttribute(cppValue);
209006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
209106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
209219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perWorldBindingsLongAttributeAttributeSetterCallbackForMainWorld(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
209306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
2094bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
209519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::perWorldBindingsLongAttributeAttributeSetterForMainWorld(jsValue, info);
209606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
209706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
209806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
209919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perWorldBindingsReadonlyLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
210006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
210106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2102bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->perWorldBindingsReadonlyLongAttribute());
210306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
210406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
210519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perWorldBindingsReadonlyLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
210606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
210706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
210819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::perWorldBindingsReadonlyLongAttributeAttributeGetter(info);
210906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
211006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
211106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
211219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perWorldBindingsReadonlyLongAttributeAttributeGetterForMainWorld(const v8::PropertyCallbackInfo<v8::Value>& info)
211306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
211406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2115bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->perWorldBindingsReadonlyLongAttribute());
211606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
211706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
211819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void perWorldBindingsReadonlyLongAttributeAttributeGetterCallbackForMainWorld(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
211906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
212006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
212119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::perWorldBindingsReadonlyLongAttributeAttributeGetterForMainWorld(info);
212206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
212306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
212406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
212519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessPerWorldBindingsLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
212606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
212706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2128bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->activityLoggingAccessPerWorldBindingsLongAttribute());
212906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
213006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
213119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessPerWorldBindingsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
213206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
213306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
2134bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
2135bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (contextData && contextData->activityLogger())
2136bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingAccessPerWorldBindingsLongAttribute", 0, 0, "Getter");
213719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingAccessPerWorldBindingsLongAttributeAttributeGetter(info);
213806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
213906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
214006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
214119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessPerWorldBindingsLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
214206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
214306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2144bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2145bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setActivityLoggingAccessPerWorldBindingsLongAttribute(cppValue);
214606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
214706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
214819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessPerWorldBindingsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
214906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
2150bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2151bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
2152bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (contextData && contextData->activityLogger()) {
2153bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        v8::Handle<v8::Value> loggerArg[] = { jsValue };
2154bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingAccessPerWorldBindingsLongAttribute", 1, &loggerArg[0], "Setter");
2155bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    }
215619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingAccessPerWorldBindingsLongAttributeAttributeSetter(jsValue, info);
215706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
215806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
215906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
216019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessPerWorldBindingsLongAttributeAttributeGetterForMainWorld(const v8::PropertyCallbackInfo<v8::Value>& info)
2161f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
2162f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2163f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->activityLoggingAccessPerWorldBindingsLongAttribute());
2164f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
2165f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
216619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessPerWorldBindingsLongAttributeAttributeGetterCallbackForMainWorld(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
2167f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
2168f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
2169f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
2170f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    if (contextData && contextData->activityLogger())
2171f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingAccessPerWorldBindingsLongAttribute", 0, 0, "Getter");
217219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingAccessPerWorldBindingsLongAttributeAttributeGetterForMainWorld(info);
2173f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
2174f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
2175f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
217619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessPerWorldBindingsLongAttributeAttributeSetterForMainWorld(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
217706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
217806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2179bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2180bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setActivityLoggingAccessPerWorldBindingsLongAttribute(cppValue);
218106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
218206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
218319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessPerWorldBindingsLongAttributeAttributeSetterCallbackForMainWorld(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
218406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
2185bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2186bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
2187bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (contextData && contextData->activityLogger()) {
2188bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        v8::Handle<v8::Value> loggerArg[] = { jsValue };
2189bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingAccessPerWorldBindingsLongAttribute", 1, &loggerArg[0], "Setter");
2190bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    }
219119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingAccessPerWorldBindingsLongAttributeAttributeSetterForMainWorld(jsValue, info);
219206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
219306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
219406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
219519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
21961e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
21971e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2198bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttribute());
21991e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
22001e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
220119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
22021e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
22031e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
2204bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
2205bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (contextData && contextData->activityLogger())
2206bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttribute", 0, 0, "Getter");
220719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetter(info);
22081e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
22091e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
22101e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
221119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
22121e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
22131e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2214bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2215bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setActivityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttribute(cppValue);
22161e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
22171e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
221819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
22191e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2220bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2221bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
2222bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (contextData && contextData->activityLogger()) {
2223bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        v8::Handle<v8::Value> loggerArg[] = { jsValue };
2224bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttribute", 1, &loggerArg[0], "Setter");
2225bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    }
222619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetter(jsValue, info);
22271e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
22281e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
22291e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
223019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetterForMainWorld(const v8::PropertyCallbackInfo<v8::Value>& info)
2231f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
2232f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2233f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttribute());
2234f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
2235f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
223619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetterCallbackForMainWorld(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
2237f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
2238f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
223919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetterForMainWorld(info);
2240f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
2241f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
2242f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
224319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetterForMainWorld(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
22441e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
22451e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2246bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2247bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setActivityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttribute(cppValue);
22481e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
22491e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
225019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetterCallbackForMainWorld(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
22511e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2252bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
225319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetterForMainWorld(jsValue, info);
22541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
22551e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
22561e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
225719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterPerWorldBindingsLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
22581e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
22591e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2260bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->activityLoggingGetterPerWorldBindingsLongAttribute());
22611e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
22621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
226319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterPerWorldBindingsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
22641e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
22651e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
2266bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
2267bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (contextData && contextData->activityLogger())
2268bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingGetterPerWorldBindingsLongAttribute", 0, 0, "Getter");
226919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingGetterPerWorldBindingsLongAttributeAttributeGetter(info);
22701e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
22711e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
22721e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
227319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterPerWorldBindingsLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
22741e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
22751e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2276f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2277f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->setActivityLoggingGetterPerWorldBindingsLongAttribute(cppValue);
22781e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
22791e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
228019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterPerWorldBindingsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
22811e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2282f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
228319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingGetterPerWorldBindingsLongAttributeAttributeSetter(jsValue, info);
22841e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
22851e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
22861e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
228719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterPerWorldBindingsLongAttributeAttributeGetterForMainWorld(const v8::PropertyCallbackInfo<v8::Value>& info)
22881e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
22891e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2290f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->activityLoggingGetterPerWorldBindingsLongAttribute());
22911e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
22921e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
229319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterPerWorldBindingsLongAttributeAttributeGetterCallbackForMainWorld(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
22941e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2295f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
2296f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
2297f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    if (contextData && contextData->activityLogger())
2298f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingGetterPerWorldBindingsLongAttribute", 0, 0, "Getter");
229919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingGetterPerWorldBindingsLongAttributeAttributeGetterForMainWorld(info);
23001e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
23011e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23021e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
230319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterPerWorldBindingsLongAttributeAttributeSetterForMainWorld(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
23041e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
23051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2306bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2307bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setActivityLoggingGetterPerWorldBindingsLongAttribute(cppValue);
23081e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23091e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
231019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterPerWorldBindingsLongAttributeAttributeSetterCallbackForMainWorld(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
23111e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2312bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
231319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingGetterPerWorldBindingsLongAttributeAttributeSetterForMainWorld(jsValue, info);
23141e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
23151e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23161e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
231719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
23181e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
23191e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2320bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttribute());
23211e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23221e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
232319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
23241e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
23251e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
2326bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
2327bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (contextData && contextData->activityLogger())
2328bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttribute", 0, 0, "Getter");
232919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetter(info);
23301e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
23311e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23321e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
233319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
23341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
23351e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2336f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2337f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->setActivityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttribute(cppValue);
23381e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23391e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
234019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
23411e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2342f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
234319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetter(jsValue, info);
23441e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
23451e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23461e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
234719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetterForMainWorld(const v8::PropertyCallbackInfo<v8::Value>& info)
23481e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
23491e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2350f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttribute());
23511e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23521e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
235319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetterCallbackForMainWorld(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
23541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2355f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
235619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetterForMainWorld(info);
23571e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
23581e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23591e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
236019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetterForMainWorld(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
23611e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
23621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2363bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2364bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setActivityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttribute(cppValue);
23651e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23661e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
236719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetterCallbackForMainWorld(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
23681e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2369bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
237019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetterForMainWorld(jsValue, info);
23711e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
23721e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23731e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
237419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void raisesExceptionLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
23751e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
23761e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2377a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    ExceptionState exceptionState(ExceptionState::GetterContext, "raisesExceptionLongAttribute", "TestObjectPython", info.Holder(), info.GetIsolate());
237851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    int jsValue = imp->raisesExceptionLongAttribute(exceptionState);
237951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(exceptionState.throwIfNeeded()))
23801e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)        return;
2381bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, jsValue);
23821e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23831e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
238419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void raisesExceptionLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
23851e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
23861e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
238719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::raisesExceptionLongAttributeAttributeGetter(info);
23881e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
23891e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23901e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
239119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void raisesExceptionLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
23921e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2393a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    ExceptionState exceptionState(ExceptionState::SetterContext, "raisesExceptionLongAttribute", "TestObjectPython", info.Holder(), info.GetIsolate());
23941e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2395bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
239651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->setRaisesExceptionLongAttribute(cppValue, exceptionState);
239751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    exceptionState.throwIfNeeded();
23981e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
23991e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
240019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void raisesExceptionLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
24011e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2402bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
240319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::raisesExceptionLongAttributeAttributeSetter(jsValue, info);
24041e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
24051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24061e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
240719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectTestInterfaceAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
24081e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
24091e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2410bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->fastGetAttribute(HTMLNames::reflecttestinterfaceattributeAttr), imp);
24111e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24121e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
241319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectTestInterfaceAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
24141e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
24151e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
241619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectTestInterfaceAttributeAttributeGetter(info);
24171e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
24181e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24191e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
242019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectTestInterfaceAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
24211e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
24221e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
242351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterface*, cppValue, V8TestInterface::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterface::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
2424bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
2425bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setAttribute(HTMLNames::reflecttestinterfaceattributeAttr, WTF::getPtr(cppValue));
24261e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24271e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
242819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectTestInterfaceAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
24291e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2430bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2431bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
243219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectTestInterfaceAttributeAttributeSetter(jsValue, info);
24331e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
24341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24351e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
243619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectReflectedNameAttributeTestAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
24371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
24381e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2439bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->fastGetAttribute(HTMLNames::reflectedNameAttributeAttr), imp);
24401e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24411e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
244219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectReflectedNameAttributeTestAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
24431e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
24441e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
244519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectReflectedNameAttributeTestAttributeAttributeGetter(info);
24461e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
24471e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24481e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
244919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectReflectedNameAttributeTestAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
24501e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
24511e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
245251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterface*, cppValue, V8TestInterface::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterface::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
2453bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
2454bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setAttribute(HTMLNames::reflectedNameAttributeAttr, WTF::getPtr(cppValue));
24551e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24561e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
245719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectReflectedNameAttributeTestAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
24581e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2459bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2460bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
246119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectReflectedNameAttributeTestAttributeAttributeSetter(jsValue, info);
24621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
24631e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24641e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
246519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectBooleanAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
24661e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
24671e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2468bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueBool(info, imp->fastHasAttribute(HTMLNames::reflectbooleanattributeAttr));
24691e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24701e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
247119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectBooleanAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
24721e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
24731e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
247419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectBooleanAttributeAttributeGetter(info);
24751e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
24761e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24771e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
247819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectBooleanAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
24791e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
24801e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2481bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(bool, cppValue, jsValue->BooleanValue());
2482bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
2483bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setBooleanAttribute(HTMLNames::reflectbooleanattributeAttr, cppValue);
24841e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24851e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
248619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectBooleanAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
24871e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2488bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2489bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
249019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectBooleanAttributeAttributeSetter(jsValue, info);
24911e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
24921e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24931e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
249419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
24951e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
24961e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2497bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->getIntegralAttribute(HTMLNames::reflectlongattributeAttr));
24981e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
24991e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
250019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
25011e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
25021e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
250319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectLongAttributeAttributeGetter(info);
25041e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
25051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25061e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
250719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
25081e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
25091e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2510bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2511bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
2512bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setIntegralAttribute(HTMLNames::reflectlongattributeAttr, cppValue);
25131e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25141e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
251519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
25161e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2517bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2518bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
251919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectLongAttributeAttributeSetter(jsValue, info);
25201e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
25211e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25221e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
252319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectUnsignedShortAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
25241e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
25251e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2526bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueUnsigned(info, std::max(0, imp->fastGetAttribute(HTMLNames::reflectunsignedshortattributeAttr)));
25271e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25281e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
252919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectUnsignedShortAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
25301e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
25311e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
253219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectUnsignedShortAttributeAttributeGetter(info);
25331e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
25341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25351e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
253619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectUnsignedShortAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
25371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
25381e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
253919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(unsigned, cppValue, toUInt16(jsValue));
2540bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
2541bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setAttribute(HTMLNames::reflectunsignedshortattributeAttr, cppValue);
25421e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25431e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
254419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectUnsignedShortAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
25451e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2546bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2547bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
254819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectUnsignedShortAttributeAttributeSetter(jsValue, info);
25491e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
25501e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25511e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
255219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectUnsignedLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
25531e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
25541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2555bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueUnsigned(info, std::max(0, imp->getIntegralAttribute(HTMLNames::reflectunsignedlongattributeAttr)));
25561e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25571e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
255819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectUnsignedLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
25591e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
25601e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
256119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectUnsignedLongAttributeAttributeGetter(info);
25621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
25631e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25641e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
256519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectUnsignedLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
25661e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
25671e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2568bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(unsigned, cppValue, toUInt32(jsValue));
2569bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
2570bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setUnsignedIntegralAttribute(HTMLNames::reflectunsignedlongattributeAttr, cppValue);
25711e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25721e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
257319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectUnsignedLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
25741e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2575bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2576bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
257719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectUnsignedLongAttributeAttributeSetter(jsValue, info);
25781e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
25791e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25801e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
258119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void idAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
25821e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2583bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2584bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->getIdAttribute(), info.GetIsolate());
25851e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25861e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
258719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void idAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
25881e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
25891e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
259019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::idAttributeGetter(info);
25911e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
25921e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
25931e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
259419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void idAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
25951e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2596bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2597bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
2598bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
2599bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setAttribute(HTMLNames::idAttr, cppValue);
26001e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26011e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
260219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void idAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
26031e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2604bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2605bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
260619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::idAttributeSetter(jsValue, info);
26071e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
26081e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26091e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
261019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nameAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
26111e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
26121e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2613bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->getNameAttribute(), info.GetIsolate());
26141e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26151e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
261619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nameAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
26171e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
26181e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
261919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::nameAttributeGetter(info);
26201e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
26211e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26221e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
262319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nameAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
26241e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
26251e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2626bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
2627bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
2628bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setAttribute(HTMLNames::nameAttr, cppValue);
26291e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26301e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
263119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nameAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
26321e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2633bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2634bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
263519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::nameAttributeSetter(jsValue, info);
26361e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
26371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26381e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
263919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void classAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
26401e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
26411e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2642bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->getClassAttribute(), info.GetIsolate());
26431e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26441e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
264519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void classAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
26461e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
26471e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
264819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::classAttributeGetter(info);
26491e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
26501e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26511e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
265219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void classAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
26531e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
26541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2655bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
2656bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
2657bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setAttribute(HTMLNames::classAttr, cppValue);
26581e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26591e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
266019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void classAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
26611e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2662bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2663bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
266419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::classAttributeSetter(jsValue, info);
26651e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
26661e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26671e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
266819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectedIdAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
26691e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
26701e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2671bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->getIdAttribute(), info.GetIsolate());
26721e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26731e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
267419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectedIdAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
26751e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
26761e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
267719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectedIdAttributeGetter(info);
26781e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
26791e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26801e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
268119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectedIdAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
26821e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
26831e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2684bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
2685bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
2686bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setAttribute(HTMLNames::idAttr, cppValue);
26871e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26881e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
268919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectedIdAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
26901e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2691bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2692bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
269319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectedIdAttributeSetter(jsValue, info);
26941e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
26951e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
26961e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
269719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectedNameAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
26981e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
26991e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2700bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->getNameAttribute(), info.GetIsolate());
27011e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
27021e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
270319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectedNameAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
27041e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
27051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
270619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectedNameAttributeGetter(info);
27071e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
27081e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
27091e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
271019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectedNameAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
27111e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
27121e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2713bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
2714bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
2715bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setAttribute(HTMLNames::nameAttr, cppValue);
27161e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
27171e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
271819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectedNameAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
27191e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2720bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2721bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
272219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectedNameAttributeSetter(jsValue, info);
27231e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
27241e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
27251e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
272619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectedClassAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
27271e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
27281e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2729bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->getClassAttribute(), info.GetIsolate());
27301e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
27311e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
273219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectedClassAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
27331e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
27341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
273519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectedClassAttributeGetter(info);
27361e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
27371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
27381e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
273919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectedClassAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
27401e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
27411e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2742bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
2743bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
2744bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setAttribute(HTMLNames::classAttr, cppValue);
27451e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
27461e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
274719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void reflectedClassAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
27481e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2749bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
2750bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
275119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::reflectedClassAttributeSetter(jsValue, info);
27521e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
27531e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
27541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
275519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void replaceableReadonlyLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
2756bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
2757bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2758f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->replaceableReadonlyLongAttribute());
2759bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
2760bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
276119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void replaceableReadonlyLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
27621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
27631e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
276419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::replaceableReadonlyLongAttributeAttributeGetter(info);
27651e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
27661e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
27671e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
276819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void runtimeEnabledLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
2769bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
2770bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2771bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->runtimeEnabledLongAttribute());
2772bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
2773bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
277419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void runtimeEnabledLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
27751e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
27761e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
277719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::runtimeEnabledLongAttributeAttributeGetter(info);
2778bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
2779bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
2780bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
278119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void runtimeEnabledLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
2782bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
2783bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2784bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
2785bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setRuntimeEnabledLongAttribute(cppValue);
2786bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
2787bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
278819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void runtimeEnabledLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
2789bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
2790bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
279119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::runtimeEnabledLongAttributeAttributeSetter(jsValue, info);
27921e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
27931e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
27941e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
279551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
279651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void conditionalRuntimeEnabledLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
2797bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
2798bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
279951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    v8SetReturnValueInt(info, imp->conditionalRuntimeEnabledLongAttribute());
2800bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
280151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
2802bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
280351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
280451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void conditionalRuntimeEnabledLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
28051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
28061e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
280751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::conditionalRuntimeEnabledLongAttributeAttributeGetter(info);
28081e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
28091e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
281051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
28111e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
281251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
281351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void conditionalRuntimeEnabledLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
28141e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2815bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2816bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
281751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->setConditionalRuntimeEnabledLongAttribute(cppValue);
2818bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
281951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
2820bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
282151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
282251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void conditionalRuntimeEnabledLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
2823bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
2824bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
282551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::conditionalRuntimeEnabledLongAttributeAttributeSetter(jsValue, info);
28261e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
28271e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
282851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
28291e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
283019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void setterCallWithActiveWindowAndFirstWindowStringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
28311e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
28321e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2833bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->setterCallWithActiveWindowAndFirstWindowStringAttribute(), info.GetIsolate());
28341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
28351e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
283619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void setterCallWithActiveWindowAndFirstWindowStringAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
28371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
28381e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
283919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::setterCallWithActiveWindowAndFirstWindowStringAttributeAttributeGetter(info);
28401e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
28411e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
28421e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
284319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void setterCallWithActiveWindowAndFirstWindowStringAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
28441e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
28451e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2846bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
2847bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setSetterCallWithActiveWindowAndFirstWindowStringAttribute(activeDOMWindow(), firstDOMWindow(), cppValue);
28481e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
28491e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
285019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void setterCallWithActiveWindowAndFirstWindowStringAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
28511e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2852bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
285319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::setterCallWithActiveWindowAndFirstWindowStringAttributeAttributeSetter(jsValue, info);
28541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
28551e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
28561e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
285719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void setterRaisesExceptionLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
28581e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
28591e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2860bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->setterRaisesExceptionLongAttribute());
28611e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
28621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
286319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void setterRaisesExceptionLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
28641e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
28651e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
286619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::setterRaisesExceptionLongAttributeAttributeGetter(info);
28671e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
28681e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
28691e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
287019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void setterRaisesExceptionLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
28711e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2872a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    ExceptionState exceptionState(ExceptionState::SetterContext, "setterRaisesExceptionLongAttribute", "TestObjectPython", info.Holder(), info.GetIsolate());
28731e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2874bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
287551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->setSetterRaisesExceptionLongAttribute(cppValue, exceptionState);
287651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    exceptionState.throwIfNeeded();
28771e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
28781e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
287919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void setterRaisesExceptionLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
28801e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2881bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
288219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::setterRaisesExceptionLongAttributeAttributeSetter(jsValue, info);
28831e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
28841e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
28851e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
288619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void strictTypeCheckingFloatAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
28871e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
28881e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2889bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValue(info, imp->strictTypeCheckingFloatAttribute());
28901e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
28911e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
289219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void strictTypeCheckingFloatAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
28931e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
28941e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
289519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::strictTypeCheckingFloatAttributeAttributeGetter(info);
28961e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
28971e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
28981e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
289919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void strictTypeCheckingFloatAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
29001e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
29011e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2902bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(float, cppValue, static_cast<float>(jsValue->NumberValue()));
2903bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setStrictTypeCheckingFloatAttribute(cppValue);
29041e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
29051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
290619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void strictTypeCheckingFloatAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
29071e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2908bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
290919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::strictTypeCheckingFloatAttributeAttributeSetter(jsValue, info);
29101e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
29111e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
29121e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
291319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void strictTypeCheckingTestInterfaceAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
29141e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
29151e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2916bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueFast(info, imp->strictTypeCheckingTestInterfaceAttribute(), imp);
29171e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
29181e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
291919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void strictTypeCheckingTestInterfaceAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
29201e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
29211e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
292219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::strictTypeCheckingTestInterfaceAttributeAttributeGetter(info);
29231e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
29241e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
29251e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
292619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void strictTypeCheckingTestInterfaceAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
29271e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2928a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    ExceptionState exceptionState(ExceptionState::SetterContext, "strictTypeCheckingTestInterfaceAttribute", "TestObjectPython", info.Holder(), info.GetIsolate());
292951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (!isUndefinedOrNull(jsValue) && !V8TestInterface::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate()))) {
2930a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwTypeError("The provided value is not of type 'TestInterface'.");
2931a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwIfNeeded();
2932bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        return;
2933bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    }
29341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
293551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterface*, cppValue, V8TestInterface::hasInstance(jsValue, info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterface::toNative(v8::Handle<v8::Object>::Cast(jsValue)) : 0);
2936bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setStrictTypeCheckingTestInterfaceAttribute(WTF::getPtr(cppValue));
29371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
29381e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
293919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void strictTypeCheckingTestInterfaceAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
29401e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2941bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
294219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::strictTypeCheckingTestInterfaceAttributeAttributeSetter(jsValue, info);
29431e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
29441e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
29451e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
294619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void treatNullAsNullStringStringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
2947bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
2948bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2949bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->treatNullAsNullStringStringAttribute(), info.GetIsolate());
2950bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
2951bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
295219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void treatNullAsNullStringStringAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
29531e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
29541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
295519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::treatNullAsNullStringStringAttributeAttributeGetter(info);
29561e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
29571e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
29581e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
295919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void treatNullAsNullStringStringAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
29601e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2961bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2962bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithNullCheck>, cppValue, jsValue);
2963bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setTreatNullAsNullStringStringAttribute(cppValue);
2964bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
2965bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
296619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void treatNullAsNullStringStringAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
2967bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
2968bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
296919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::treatNullAsNullStringStringAttributeAttributeSetter(jsValue, info);
29701e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
29711e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
29721e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
297319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void treatReturnedNullStringAsNullStringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
29741e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
29751e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2976bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueStringOrNull(info, imp->treatReturnedNullStringAsNullStringAttribute(), info.GetIsolate());
29771e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
29781e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
297919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void treatReturnedNullStringAsNullStringAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
29801e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
29811e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
298219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::treatReturnedNullStringAsNullStringAttributeAttributeGetter(info);
29831e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
29841e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
29851e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
298619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void treatReturnedNullStringAsNullStringAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
29871e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
29881e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
2989bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
2990bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setTreatReturnedNullStringAsNullStringAttribute(cppValue);
29911e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
29921e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
299319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void treatReturnedNullStringAsNullStringAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
29941e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
2995bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
299619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::treatReturnedNullStringAsNullStringAttributeAttributeSetter(jsValue, info);
29971e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
29981e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
29991e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
300019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void treatReturnedNullStringAsUndefinedStringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
30011e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
30021e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
3003bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueStringOrUndefined(info, imp->treatReturnedNullStringAsUndefinedStringAttribute(), info.GetIsolate());
30041e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
30051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
300619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void treatReturnedNullStringAsUndefinedStringAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
30071e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
30081e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
300919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::treatReturnedNullStringAsUndefinedStringAttributeAttributeGetter(info);
30101e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
30111e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
30121e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
301319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void treatReturnedNullStringAsUndefinedStringAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
30141e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
30151e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
3016bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
3017bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setTreatReturnedNullStringAsUndefinedStringAttribute(cppValue);
3018bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
3019bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
302019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void treatReturnedNullStringAsUndefinedStringAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
3021bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
3022bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
302319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::treatReturnedNullStringAsUndefinedStringAttributeAttributeSetter(jsValue, info);
3024bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3025bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
3026bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
302719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void urlStringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
3028bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
3029bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
3030bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->getURLAttribute(HTMLNames::urlstringattributeAttr), info.GetIsolate());
30311e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
30321e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
303319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void urlStringAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
30341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
30351e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
303619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::urlStringAttributeAttributeGetter(info);
3037bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3038bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
3039bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
304019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void urlStringAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
3041bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
3042bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
3043bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
3044bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
3045bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setAttribute(HTMLNames::urlstringattributeAttr, cppValue);
3046bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
3047bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
304819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void urlStringAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
3049bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
3050bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
3051bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
305219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::urlStringAttributeAttributeSetter(jsValue, info);
30531e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
30541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
30551e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
305619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void urlStringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
30571e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
30581e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
3059bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueString(info, imp->getURLAttribute(HTMLNames::ReflectUrlAttributeAttr), info.GetIsolate());
30601e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
30611e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
306219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void urlStringAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
30631e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
30641e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
306519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::urlStringAttributeAttributeGetter(info);
30661e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
30671e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
30681e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
306919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void urlStringAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
30701e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
30711e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
3072bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue);
3073bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
3074bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setAttribute(HTMLNames::ReflectUrlAttributeAttr, cppValue);
30751e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
30761e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
307719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void urlStringAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
3078bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
3079bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
3080bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
308119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::urlStringAttributeAttributeSetter(jsValue, info);
3082bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3083bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
3084bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
308519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unforgeableLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
3086bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
3087a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Object> holder = info.This()->FindInstanceInPrototypeChain(V8TestObjectPython::domTemplate(info.GetIsolate(), worldType(info.GetIsolate())));
3088bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (holder.IsEmpty())
3089bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        return;
3090bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(holder);
3091bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    v8SetReturnValueInt(info, imp->unforgeableLongAttribute());
3092bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
3093bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
309419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unforgeableLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
30951e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles){
30961e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
309719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::unforgeableLongAttributeAttributeGetter(info);
30981e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
30991e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}
3100bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
310119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unforgeableLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
3102bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
3103bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
3104bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue));
3105bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    imp->setUnforgeableLongAttribute(cppValue);
3106bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
3107bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
310819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unforgeableLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
3109bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
3110bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
311119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::unforgeableLongAttributeAttributeSetter(jsValue, info);
3112bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3113bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
3114bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
311519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void TestObjectPythonConstructorGetter(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
3116f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3117f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8::Handle<v8::Value> data = info.Data();
3118f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    ASSERT(data->IsExternal());
3119f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    V8PerContextData* perContextData = V8PerContextData::from(info.Holder()->CreationContext());
3120f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    if (!perContextData)
3121f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3122f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8SetReturnValue(info, perContextData->constructorForType(WrapperTypeInfo::unwrap(data)));
3123f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3124f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
3125bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)static void TestObjectPythonReplaceableAttributeSetter(v8::Local<v8::String> name, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
3126bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
3127bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    info.This()->ForceSet(name, jsValue);
3128bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
3129bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
3130bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)static void TestObjectPythonReplaceableAttributeSetterCallback(v8::Local<v8::String> name, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
3131bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
3132bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    TestObjectPythonV8Internal::TestObjectPythonReplaceableAttributeSetter(name, jsValue, info);
3133bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
31341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
313519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3136f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
313719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
3138f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethod();
3139f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
314006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
314119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3142f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3143f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
314419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodMethod(info);
3145f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3146f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
314706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
314851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void staticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
314951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
315051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython::staticVoidMethod();
315151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
315251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
315351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void staticVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
315451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
315551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
315651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::staticVoidMethodMethod(info);
315751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
315851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
315951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
316019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void dateMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3161f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
316219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
316319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, v8DateOrNull(imp->dateMethod(), info.GetIsolate()));
3164f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3165f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
316619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void dateMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3167f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3168f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
316919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::dateMethodMethod(info);
3170f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3171f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3172f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
317319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3174f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
317519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
317619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValueString(info, imp->stringMethod(), info.GetIsolate());
3177f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3178f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
317919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3180f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3181f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
318219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::stringMethodMethod(info);
3183f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3184f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3185f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
318619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void readonlyDOMTimeStampMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3187f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
318819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
318919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, static_cast<double>(imp->readonlyDOMTimeStampMethod()));
3190f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3191f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
319219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void readonlyDOMTimeStampMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3193f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3194f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
319519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::readonlyDOMTimeStampMethodMethod(info);
3196f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3197f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3198f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
319919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void booleanMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3200f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
320119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
320219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValueBool(info, imp->booleanMethod());
3203f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3204f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
320519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void booleanMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3206f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3207f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
320819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::booleanMethodMethod(info);
3209f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3210f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3211f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
321219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void byteMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3213f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
321419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
321519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValueInt(info, imp->byteMethod());
3216f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3217f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
321819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void byteMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3219f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3220f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
322119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::byteMethodMethod(info);
3222f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3223f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3224f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
322519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void doubleMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3226f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
322719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
322819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->doubleMethod());
3229f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3230f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
323119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void doubleMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3232f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3233f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
323419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::doubleMethodMethod(info);
3235f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3236f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3237f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
323819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void floatMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3239f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
324019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
324119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->floatMethod());
3242f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3243f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
324419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void floatMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3245f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3246f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
324719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::floatMethodMethod(info);
3248f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3249f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3250f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
325119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3252f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
325319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
325419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValueInt(info, imp->longMethod());
3255f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3256f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
325719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3258f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3259f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
326019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::longMethodMethod(info);
3261f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3262f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3263f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
326419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longLongMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3265f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
326619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
326719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, static_cast<double>(imp->longLongMethod()));
3268f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3269f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
327019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longLongMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3271f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3272f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
327319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::longLongMethodMethod(info);
3274f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3275f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3276f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
327719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void octetMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3278f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
327919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
328019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValueUnsigned(info, imp->octetMethod());
3281f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3282f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
328319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void octetMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3284f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3285f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
328619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::octetMethodMethod(info);
3287f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3288f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3289f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
329019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void shortMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3291f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
329219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
329319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValueInt(info, imp->shortMethod());
3294f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3295f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
329619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void shortMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3297f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3298f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
329919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::shortMethodMethod(info);
3300f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3301f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3302f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
330319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedLongMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3304f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
330519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
330619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValueUnsigned(info, imp->unsignedLongMethod());
3307f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3308f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
330919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedLongMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3310f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3311f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
331219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::unsignedLongMethodMethod(info);
3313f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3314f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3315f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
331619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedLongLongMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3317f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
331819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
331919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, static_cast<double>(imp->unsignedLongLongMethod()));
3320f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3321f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
332219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedLongLongMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3323f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3324f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
332519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::unsignedLongLongMethodMethod(info);
3326f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3327f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3328f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
332919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedShortMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3330f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
333119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
333219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValueUnsigned(info, imp->unsignedShortMethod());
3333f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3334f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
333519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void unsignedShortMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3336f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3337f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
333819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::unsignedShortMethodMethod(info);
3339f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3340f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3341f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
334219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodDateArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3343f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
334419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
334519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodDateArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3346f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3347f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
334819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
334919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(double, dateArg, toWebCoreDate(info[0]));
3350f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodDateArg(dateArg);
3351f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3352f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
335319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodDateArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3354f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3355f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
335619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodDateArgMethod(info);
3357f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3358f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3359f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
336019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodStringArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3361f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
336219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
336319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodStringArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3364f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3365f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
336619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
336719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, stringArg, info[0]);
3368f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodStringArg(stringArg);
3369f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3370f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
337119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodStringArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3372f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3373f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
337419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodStringArgMethod(info);
3375f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3376f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3377f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
337819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodBooleanArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3379f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
338019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
338119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodBooleanArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3382f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3383f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
338419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
338519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(bool, booleanArg, info[0]->BooleanValue());
3386f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodBooleanArg(booleanArg);
3387f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3388f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
338919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodBooleanArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3390f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3391f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
339219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodBooleanArgMethod(info);
3393f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3394f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3395f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
339619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodByteArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3397f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
339819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
339919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodByteArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3400f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3401f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
340219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
340319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, byteArg, toInt8(info[0]));
3404f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodByteArg(byteArg);
3405f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3406f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
340719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodByteArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3408f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3409f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
341019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodByteArgMethod(info);
3411f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3412f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3413f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
341419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodDoubleArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3415f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
341619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
341719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodDoubleArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3418f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3419f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
342019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
342119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(double, doubleArg, static_cast<double>(info[0]->NumberValue()));
3422f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodDoubleArg(doubleArg);
3423f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3424f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
342519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodDoubleArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3426f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3427f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
342819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodDoubleArgMethod(info);
3429f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3430f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3431f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
343219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodFloatArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3433f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
343419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
343519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodFloatArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3436f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3437f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
343819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
343919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(float, floatArg, static_cast<float>(info[0]->NumberValue()));
3440f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodFloatArg(floatArg);
3441f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3442f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
344319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodFloatArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3444f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3445f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
344619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodFloatArgMethod(info);
3447f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3448f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3449f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
345019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3451f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
345219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
345319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodLongArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3454f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3455f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
345619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
345719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
3458f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodLongArg(longArg);
3459f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3460f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
346119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3462f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3463f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
346419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodLongArgMethod(info);
3465f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3466f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3467f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
346819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodLongLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3469f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
347019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
347119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodLongLongArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3472f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3473f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
347419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
347519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(long long, longLongArg, toInt64(info[0]));
3476f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodLongLongArg(longLongArg);
3477f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3478f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
347919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodLongLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3480f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3481f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
348219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodLongLongArgMethod(info);
3483f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3484f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3485f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
348619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodOctetArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3487f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
348819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
348919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodOctetArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3490f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3491f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
349219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
349319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(unsigned, octetArg, toUInt8(info[0]));
3494f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodOctetArg(octetArg);
3495f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3496f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
349719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodOctetArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3498f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3499f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
350019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodOctetArgMethod(info);
3501f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3502f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3503f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
350419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodShortArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3505f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
350619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
350719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodShortArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3508f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3509f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
351019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
351119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, shortArg, toInt16(info[0]));
3512f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodShortArg(shortArg);
3513f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3514f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
351519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodShortArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3516f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3517f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
351819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodShortArgMethod(info);
3519f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3520f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3521f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
352219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodUnsignedLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3523f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
352419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
352519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodUnsignedLongArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3526f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3527f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
352819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
352919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(unsigned, unsignedLongArg, toUInt32(info[0]));
3530f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodUnsignedLongArg(unsignedLongArg);
3531f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3532f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
353319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodUnsignedLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3534f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3535f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
353619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodUnsignedLongArgMethod(info);
3537f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3538f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3539f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
354019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodUnsignedLongLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3541f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
354219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
354319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodUnsignedLongLongArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3544f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3545f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
354619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
354719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(unsigned long long, unsignedLongLongArg, toUInt64(info[0]));
3548f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodUnsignedLongLongArg(unsignedLongLongArg);
3549f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3550f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
355119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodUnsignedLongLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3552f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3553f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
355419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodUnsignedLongLongArgMethod(info);
3555f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3556f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3557f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
355819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodUnsignedShortArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3559f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
356019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
356119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodUnsignedShortArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3562f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3563f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
356419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
356519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(unsigned, unsignedShortArg, toUInt16(info[0]));
3566f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodUnsignedShortArg(unsignedShortArg);
3567f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3568f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
356919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodUnsignedShortArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3570f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3571f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
357219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodUnsignedShortArgMethod(info);
3573f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3574f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3575f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
357619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3577f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
357819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
357919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->testInterfaceEmptyMethod());
3580f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3581f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
358219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3583f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3584f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
358519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::testInterfaceEmptyMethodMethod(info);
3586f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3587f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3588f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
358919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3590f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
359119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
359219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodTestInterfaceEmptyArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3593f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3594f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
359519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
359651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
3597f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodTestInterfaceEmptyArg(testInterfaceEmptyArg);
3598f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3599f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
360019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodTestInterfaceEmptyArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3601f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3602f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
360319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodTestInterfaceEmptyArgMethod(info);
3604f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3605f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3606f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
360719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodLongArgTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3608f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
360919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 2)) {
361019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodLongArgTestInterfaceEmptyArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(2, info.Length())), info.GetIsolate());
3611f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3612f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
361319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
361419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
361551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceEmpty::hasInstance(info[1], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[1])) : 0);
3616f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodLongArgTestInterfaceEmptyArg(longArg, testInterfaceEmptyArg);
3617f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3618f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
361919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodLongArgTestInterfaceEmptyArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
362019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
362119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
362219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodLongArgTestInterfaceEmptyArgMethod(info);
362319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
362419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
362519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
362619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void compareHowMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
362719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
362819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
362919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->compareHowMethod());
363019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
363119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
363219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void compareHowMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
363319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
363419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
363519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::compareHowMethodMethod(info);
363619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
363719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
363819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
363919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void anyMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3640f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
364119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
364219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->anyMethod().v8Value());
364319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
364419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
364519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void anyMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
364619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
364719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
364819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::anyMethodMethod(info);
364919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
365019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
365119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
365219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodMediaQueryListListenerArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
365319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
365419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
365519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodMediaQueryListListenerArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
365619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
365719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
365819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
365919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(RefPtr<MediaQueryListListener>, mediaQueryListListenerArg, MediaQueryListListener::create(ScriptValue(info[0], info.GetIsolate())));
366019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    imp->voidMethodMediaQueryListListenerArg(mediaQueryListListenerArg);
366119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
366219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
366319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodMediaQueryListListenerArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
366419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
366519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
366619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodMediaQueryListListenerArgMethod(info);
366719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
366819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
366919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
367019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodCompareHowArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
367119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
367219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
367319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodCompareHowArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
367419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
367519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
367619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
367719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Range::CompareHow, compareHowArg, static_cast<Range::CompareHow>(info[0]->Int32Value()));
367819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    imp->voidMethodCompareHowArg(compareHowArg);
367919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
368019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
368119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodCompareHowArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
368219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
368319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
368419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodCompareHowArgMethod(info);
368519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
368619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
368719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
368819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodAnyArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
368919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
369019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
369119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodAnyArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
369219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
369319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
369419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
369519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(ScriptValue, anyArg, ScriptValue(info[0], info.GetIsolate()));
369619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    imp->voidMethodAnyArg(anyArg);
369719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
369819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
369919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodAnyArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
370019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
370119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
370219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodAnyArgMethod(info);
370319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
370419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
370519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
370619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodAttrArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
370719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
370819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
370919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodAttrArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3710f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3711f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
371219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
371351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(Attr*, attrArg, V8Attr::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8Attr::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
3714f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodAttrArg(attrArg);
3715f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3716f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
371719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodAttrArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3718f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3719f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
372019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodAttrArgMethod(info);
3721f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3722f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3723f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
372419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodDocumentArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3725f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
372619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
372719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodDocumentArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3728f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3729f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
373019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
373151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(Document*, documentArg, V8Document::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8Document::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
3732f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodDocumentArg(documentArg);
3733f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3734f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
373519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodDocumentArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3736f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3737f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
373819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodDocumentArgMethod(info);
3739f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3740f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3741f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
374219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodDocumentTypeArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3743f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
374419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
374519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodDocumentTypeArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3746f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3747f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
374819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
374951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(DocumentType*, documentTypeArg, V8DocumentType::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8DocumentType::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
3750f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodDocumentTypeArg(documentTypeArg);
3751f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3752f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
375319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodDocumentTypeArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3754f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3755f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
375619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodDocumentTypeArgMethod(info);
3757f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3758f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3759f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
376019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodElementArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3761f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
376219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
376319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodElementArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3764f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3765f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
376619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
376751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(Element*, elementArg, V8Element::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8Element::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
3768f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodElementArg(elementArg);
3769f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3770f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
377119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodElementArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3772f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3773f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
377419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodElementArgMethod(info);
3775f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3776f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3777f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
377819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodNodeArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3779f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
378019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
378119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodNodeArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3782f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3783f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
378419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
378551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(Node*, nodeArg, V8Node::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8Node::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
3786f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodNodeArg(nodeArg);
3787f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3788f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
378919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodNodeArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3790f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3791f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
379219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodNodeArgMethod(info);
3793f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3794f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3795f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
379619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void arrayBufferMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3797f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
379819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
379919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->arrayBufferMethod());
3800f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3801f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
380219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void arrayBufferMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3803f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3804f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
380519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::arrayBufferMethodMethod(info);
3806f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3807f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3808f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
380919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void arrayBufferViewMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3810f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
381119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
381219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->arrayBufferViewMethod());
3813f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3814f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
381519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void arrayBufferViewMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3816f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3817f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
381819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::arrayBufferViewMethodMethod(info);
3819f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3820f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3821f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
382219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void float32ArrayMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3823f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
382419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
382519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->float32ArrayMethod());
3826f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3827f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
382819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void float32ArrayMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3829f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3830f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
383119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::float32ArrayMethodMethod(info);
3832f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3833f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3834f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
383519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void int32ArrayMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3836f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
383719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
383819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->int32ArrayMethod());
3839f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3840f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
384119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void int32ArrayMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3842f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3843f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
384419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::int32ArrayMethodMethod(info);
3845f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3846f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3847f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
384819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void uint8ArrayMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3849f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
385019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
385119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->uint8ArrayMethod());
3852f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3853f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
385419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void uint8ArrayMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3855f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3856f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
385719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::uint8ArrayMethodMethod(info);
3858f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3859f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3860f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
386119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodArrayBufferArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3862f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
386319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
386419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodArrayBufferArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3865f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3866f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
386719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
386819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(ArrayBuffer*, arrayBufferArg, info[0]->IsArrayBuffer() ? V8ArrayBuffer::toNative(v8::Handle<v8::ArrayBuffer>::Cast(info[0])) : 0);
3869f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodArrayBufferArg(arrayBufferArg);
3870f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3871f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
387219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodArrayBufferArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3873f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3874f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
387519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodArrayBufferArgMethod(info);
3876f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3877f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3878f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
387919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodArrayBufferViewArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3880f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
388119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
388219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodArrayBufferViewArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3883f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3884f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
388519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
388619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(ArrayBufferView*, arrayBufferViewArg, info[0]->IsArrayBufferView() ? V8ArrayBufferView::toNative(v8::Handle<v8::ArrayBufferView>::Cast(info[0])) : 0);
3887f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodArrayBufferViewArg(arrayBufferViewArg);
3888f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3889f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
389019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodArrayBufferViewArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3891f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3892f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
389319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodArrayBufferViewArgMethod(info);
3894f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3895f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3896f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
389719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodFloat32ArrayArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3898f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
389919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
390019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodFloat32ArrayArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3901f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3902f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
390319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
390419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Float32Array*, float32ArrayArg, info[0]->IsFloat32Array() ? V8Float32Array::toNative(v8::Handle<v8::Float32Array>::Cast(info[0])) : 0);
3905f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodFloat32ArrayArg(float32ArrayArg);
3906f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3907f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
390819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodFloat32ArrayArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3909f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3910f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
391119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodFloat32ArrayArgMethod(info);
3912f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3913f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3914f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
391519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodInt32ArrayArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3916f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
391719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
391819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodInt32ArrayArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3919f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3920f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
392119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
392219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Int32Array*, int32ArrayArg, info[0]->IsInt32Array() ? V8Int32Array::toNative(v8::Handle<v8::Int32Array>::Cast(info[0])) : 0);
3923f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodInt32ArrayArg(int32ArrayArg);
3924f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3925f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
392619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodInt32ArrayArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3927f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3928f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
392919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodInt32ArrayArgMethod(info);
3930f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3931f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3932f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
393319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodUint8ArrayArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3934f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
393519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
393619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodUint8ArrayArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3937f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3938f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
393919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
394019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Uint8Array*, uint8ArrayArg, info[0]->IsUint8Array() ? V8Uint8Array::toNative(v8::Handle<v8::Uint8Array>::Cast(info[0])) : 0);
3941f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodUint8ArrayArg(uint8ArrayArg);
3942f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3943f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
394419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodUint8ArrayArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3945f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3946f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
394719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodUint8ArrayArgMethod(info);
3948f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3949f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3950f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
395119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longArrayMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3952f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
395319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
395419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, v8Array(imp->longArrayMethod(), info.GetIsolate()));
3955f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3956f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
395719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longArrayMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3958f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3959f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
396019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::longArrayMethodMethod(info);
3961f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3962f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3963f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
396419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringArrayMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3965f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
396619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
396719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, v8Array(imp->stringArrayMethod(), info.GetIsolate()));
3968f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3969f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
397019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringArrayMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3971f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3972f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
397319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::stringArrayMethodMethod(info);
3974f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3975f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3976f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
397719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyArrayMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3978f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
397919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
398019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, v8Array(imp->testInterfaceEmptyArrayMethod(), info.GetIsolate()));
3981f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3982f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
398319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyArrayMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
3984f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
3985f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
398619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::testInterfaceEmptyArrayMethodMethod(info);
3987f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
3988f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
3989f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
399019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodArrayLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3991f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
399219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
399319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodArrayLongArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
3994f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
3995f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
399619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
399719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Vector<int>, arrayLongArg, toNativeArray<int>(info[0], 1, info.GetIsolate()));
3998f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodArrayLongArg(arrayLongArg);
3999f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4000f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
400119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodArrayLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4002f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4003f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
400419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodArrayLongArgMethod(info);
4005f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4006f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4007f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
400819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodArrayStringArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4009f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
401019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
401119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodArrayStringArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4012f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4013f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
401419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
401519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Vector<String>, arrayStringArg, toNativeArray<String>(info[0], 1, info.GetIsolate()));
4016f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodArrayStringArg(arrayStringArg);
4017f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4018f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
401919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodArrayStringArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4020f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4021f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
402219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodArrayStringArgMethod(info);
4023f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4024f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4025f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
402619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodArrayTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4027f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
402819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
402919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodArrayTestInterfaceEmptyArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4030f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4031f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
403219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
403319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Vector<RefPtr<TestInterfaceEmpty> >, arrayTestInterfaceEmptyArg, (toRefPtrNativeArray<TestInterfaceEmpty, V8TestInterfaceEmpty>(info[0], 1, info.GetIsolate())));
4034f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodArrayTestInterfaceEmptyArg(arrayTestInterfaceEmptyArg);
4035f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4036f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
403719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodArrayTestInterfaceEmptyArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4038f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4039f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
404019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodArrayTestInterfaceEmptyArgMethod(info);
4041f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4042f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4043f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
404419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void sequenceLongMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4045f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
404619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
404719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, v8Array(imp->sequenceLongMethod(), info.GetIsolate()));
4048f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4049f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
405019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void sequenceLongMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4051f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4052f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
405319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::sequenceLongMethodMethod(info);
4054f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4055f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4056f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
405719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void sequenceStringMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4058f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
405919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
406019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, v8Array(imp->sequenceStringMethod(), info.GetIsolate()));
4061f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4062f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
406319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void sequenceStringMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4064f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4065f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
406619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::sequenceStringMethodMethod(info);
4067f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4068f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4069f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
407019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void sequenceTestInterfaceEmptyMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4071f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
407219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
407319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, v8Array(imp->sequenceTestInterfaceEmptyMethod(), info.GetIsolate()));
4074f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4075f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
407619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void sequenceTestInterfaceEmptyMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4077f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4078f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
407919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::sequenceTestInterfaceEmptyMethodMethod(info);
4080f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4081f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4082f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
408319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodSequenceLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4084f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
408519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
408619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodSequenceLongArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4087f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4088f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
408919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
409019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Vector<int>, sequenceLongArg, toNativeArray<int>(info[0], 1, info.GetIsolate()));
4091f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodSequenceLongArg(sequenceLongArg);
4092f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4093f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
409419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodSequenceLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4095f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4096f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
409719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodSequenceLongArgMethod(info);
4098f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4099f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4100f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
410119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodSequenceStringArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4102f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
410319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
410419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodSequenceStringArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4105f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4106f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
410719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
410819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Vector<String>, sequenceStringArg, toNativeArray<String>(info[0], 1, info.GetIsolate()));
4109f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodSequenceStringArg(sequenceStringArg);
4110f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4111f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
411219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodSequenceStringArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4113f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4114f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
411519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodSequenceStringArgMethod(info);
4116f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4117f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4118f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
411919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodSequenceTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4120f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
412119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
412219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodSequenceTestInterfaceEmptyArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4123f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4124f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
412519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
412619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Vector<RefPtr<TestInterfaceEmpty> >, sequenceTestInterfaceEmptyArg, (toRefPtrNativeArray<TestInterfaceEmpty, V8TestInterfaceEmpty>(info[0], 1, info.GetIsolate())));
4127f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodSequenceTestInterfaceEmptyArg(sequenceTestInterfaceEmptyArg);
4128f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4129f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
413019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodSequenceTestInterfaceEmptyArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4131f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4132f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
413319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodSequenceTestInterfaceEmptyArgMethod(info);
4134f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4135f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4136f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
413719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodNullableStringArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4138f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
413919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
414019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodNullableStringArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
414119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
414219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
414319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
414451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, nullableTestInterfaceEmptyArg, V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
414519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    imp->voidMethodNullableStringArg(nullableTestInterfaceEmptyArg);
4146f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4147f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
414819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodNullableStringArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4149f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4150f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
415119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodNullableStringArgMethod(info);
4152f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4153f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4154f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
415519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testEnumMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4156f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
415719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
415819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValueString(info, imp->testEnumMethod(), info.GetIsolate());
415919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
416019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
416119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testEnumMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
416219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
416319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
416419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::testEnumMethodMethod(info);
416519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
416619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
416719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
416819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodTestEnumArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
416919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
417019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
417119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodTestEnumArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4172f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4173f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
417419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
417519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, testEnumTypeArg, info[0]);
4176f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    String string = testEnumTypeArg;
4177f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    if (!(string == "" || string == "EnumValue1" || string == "EnumValue2" || string == "EnumValue3")) {
417819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodTestEnumArg", "TestObjectPython", "parameter 1 ('" + string + "') is not a valid enum value."), info.GetIsolate());
4179f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4180f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
4181f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodTestEnumArg(testEnumTypeArg);
4182f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4183f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
418419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodTestEnumArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
418519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
418619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
418719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodTestEnumArgMethod(info);
418819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
418919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
419019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
419119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void dictionaryMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
419219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
419319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
419419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->dictionaryMethod());
419519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
419619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
419719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void dictionaryMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4198f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4199f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
420019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::dictionaryMethodMethod(info);
4201f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4202f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4203f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
420419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nodeFilterMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4205f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
420619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
420719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->nodeFilterMethod());
4208f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4209f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
421019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void nodeFilterMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4211f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4212f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
421319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::nodeFilterMethodMethod(info);
4214f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4215f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4216f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
421719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void promiseMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4218f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
421919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
422019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->promiseMethod().v8Value());
4221f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4222f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
422319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void promiseMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4224f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4225f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
422619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::promiseMethodMethod(info);
4227f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4228f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4229f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
423019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void serializedScriptValueMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4231f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
423219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
423319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->serializedScriptValueMethod() ? imp->serializedScriptValueMethod()->deserialize() : v8::Handle<v8::Value>(v8::Null(info.GetIsolate())));
4234f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4235f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
423619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void serializedScriptValueMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4237f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4238f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
423919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::serializedScriptValueMethodMethod(info);
4240f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4241f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4242f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
424319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void xPathNSResolverMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4244f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
424519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
424619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->xPathNSResolverMethod());
4247f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4248f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
424919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void xPathNSResolverMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4250f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4251f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
425219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::xPathNSResolverMethodMethod(info);
4253f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4254f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4255f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
425619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodDictionaryArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4257f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
425819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
425919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodDictionaryArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
426019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
426119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
426219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
426319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Dictionary, dictionaryArg, Dictionary(info[0], info.GetIsolate()));
426419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (!dictionaryArg.isUndefinedOrNull() && !dictionaryArg.isObject()) {
426519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodDictionaryArg", "TestObjectPython", "parameter 1 ('dictionaryArg') is not an object."), info.GetIsolate());
4266f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4267f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
426819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    imp->voidMethodDictionaryArg(dictionaryArg);
4269f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4270f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
427119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodDictionaryArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4272f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4273f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
427419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodDictionaryArgMethod(info);
4275f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4276f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4277f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
427819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodNodeFilterArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4279f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
428019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
428119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodNodeFilterArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4282f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4283f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
428419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
428519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(RefPtr<NodeFilter>, nodeFilterArg, toNodeFilter(info[0], info.GetIsolate()));
428651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodNodeFilterArg(nodeFilterArg.release());
4287f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4288f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
428919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodNodeFilterArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4290f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4291f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
429219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodNodeFilterArgMethod(info);
4293f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4294f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4295f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
429619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodPromiseArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4297f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
429819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
429919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodPromiseArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4300f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4301f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
430219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
430319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(ScriptPromise, promiseArg, ScriptPromise(info[0]));
430419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (!promiseArg.isUndefinedOrNull() && !promiseArg.isObject()) {
430519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodPromiseArg", "TestObjectPython", "parameter 1 ('promiseArg') is not an object."), info.GetIsolate());
430619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
430719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
430819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    imp->voidMethodPromiseArg(promiseArg);
430919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
431019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
431119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodPromiseArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
431219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
431319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
431419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodPromiseArgMethod(info);
431519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
431619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
431719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
431819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodSerializedScriptValueArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
431919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
432019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
432119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodSerializedScriptValueArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
432219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
432319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
432419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
4325f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    bool serializedScriptValueArgDidThrow = false;
432619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    RefPtr<SerializedScriptValue> serializedScriptValueArg = SerializedScriptValue::create(info[0], 0, 0, serializedScriptValueArgDidThrow, info.GetIsolate());
4327f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    if (serializedScriptValueArgDidThrow)
4328f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4329f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodSerializedScriptValueArg(serializedScriptValueArg);
4330f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4331f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
433219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodSerializedScriptValueArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4333f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4334f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
433519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodSerializedScriptValueArgMethod(info);
4336f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4337f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4338f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
433919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodXPathNSResolverArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4340f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
434119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
434219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodXPathNSResolverArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4343f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4344f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
434519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
434619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(RefPtr<XPathNSResolver>, xPathNSResolverArg, toXPathNSResolver(info[0], info.GetIsolate()));
434751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodXPathNSResolverArg(xPathNSResolverArg.release());
4348f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4349f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
435019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodXPathNSResolverArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4351f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4352f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
435319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodXPathNSResolverArgMethod(info);
4354f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4355f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4356f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
435751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodSequenceDictionaryArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
435851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
435951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
436051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodSequenceDictionaryArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
436151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
436251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
436351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
436451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(Vector<Dictionary>, sequenceDictionaryArg, toNativeArray<Dictionary>(info[0], 1, info.GetIsolate()));
436551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodSequenceDictionaryArg(sequenceDictionaryArg);
436651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
436751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
436851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodSequenceDictionaryArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
436951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
437051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
437151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodSequenceDictionaryArgMethod(info);
437251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
437351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
437451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
437519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodStringArgLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4376f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
437719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 2)) {
437819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodStringArgLongArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(2, info.Length())), info.GetIsolate());
4379f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4380f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
438119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
438219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, stringArg, info[0]);
438319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[1]));
4384f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodStringArgLongArg(stringArg, longArg);
4385f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4386f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
438719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodStringArgLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4388f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4389f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
439019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodStringArgLongArgMethod(info);
4391f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4392f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4393f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
439419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodOptionalStringArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4395f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
439619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
439719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 0)) {
4398f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        imp->voidMethodOptionalStringArg();
4399f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4400f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
440119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, optionalStringArg, info[0]);
440219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    imp->voidMethodOptionalStringArg(optionalStringArg);
4403f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4404f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
440519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodOptionalStringArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4406f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4407f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
440819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodOptionalStringArgMethod(info);
4409f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4410f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4411f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
441219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodOptionalTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4413f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
441419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
441519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 0)) {
4416f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        imp->voidMethodOptionalTestInterfaceEmptyArg();
4417f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4418f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
441951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, optionalTestInterfaceEmptyArg, V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
442019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    imp->voidMethodOptionalTestInterfaceEmptyArg(optionalTestInterfaceEmptyArg);
4421f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4422f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
442319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodOptionalTestInterfaceEmptyArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4424f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4425f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
442619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodOptionalTestInterfaceEmptyArgMethod(info);
4427f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4428f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4429f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
443019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodOptionalLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4431f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
443219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
443319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 0)) {
4434f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        imp->voidMethodOptionalLongArg();
4435f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4436f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
443719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, optionalLongArg, toInt32(info[0]));
4438f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodOptionalLongArg(optionalLongArg);
4439f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4440f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
444119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodOptionalLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
444219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
444319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
444419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodOptionalLongArgMethod(info);
444519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
444619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
444719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
444819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringMethodOptionalLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
444919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
445019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
445119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 0)) {
445219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        v8SetReturnValueString(info, imp->stringMethodOptionalLongArg(), info.GetIsolate());
445319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
445419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
445519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, optionalLongArg, toInt32(info[0]));
445619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValueString(info, imp->stringMethodOptionalLongArg(optionalLongArg), info.GetIsolate());
445719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
445819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
445919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void stringMethodOptionalLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4460f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4461f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
446219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::stringMethodOptionalLongArgMethod(info);
4463f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4464f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4465f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
446619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyMethodOptionalLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4467f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
446819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
446919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 0)) {
447019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        v8SetReturnValue(info, imp->testInterfaceEmptyMethodOptionalLongArg());
4471f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4472f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
447319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, optionalLongArg, toInt32(info[0]));
447419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValue(info, imp->testInterfaceEmptyMethodOptionalLongArg(optionalLongArg));
4475f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4476f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
447719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void testInterfaceEmptyMethodOptionalLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4478f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4479f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
448019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::testInterfaceEmptyMethodOptionalLongArgMethod(info);
4481f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4482f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4483f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
448419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longMethodOptionalLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4485f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
448619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
448719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 0)) {
448819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        v8SetReturnValueInt(info, imp->longMethodOptionalLongArg());
4489f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4490f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
449119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, optionalLongArg, toInt32(info[0]));
449219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    v8SetReturnValueInt(info, imp->longMethodOptionalLongArg(optionalLongArg));
4493f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4494f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
449519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void longMethodOptionalLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4496f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4497f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
449819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::longMethodOptionalLongArgMethod(info);
4499f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4500f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4501f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
450219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodLongArgOptionalLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4503f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
450419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
450519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodLongArgOptionalLongArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4506f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4507f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
450819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
450919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
451019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 1)) {
4511f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        imp->voidMethodLongArgOptionalLongArg(longArg);
4512f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4513f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
451419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, optionalLongArg, toInt32(info[1]));
4515f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodLongArgOptionalLongArg(longArg, optionalLongArg);
4516f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4517f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
451819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodLongArgOptionalLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4519f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4520f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
452119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodLongArgOptionalLongArgMethod(info);
4522f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4523f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4524f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
452519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodLongArgOptionalLongArgOptionalLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4526f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
452719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
452819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodLongArgOptionalLongArgOptionalLongArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4529f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4530f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
453119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
453219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
453319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 1)) {
4534f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        imp->voidMethodLongArgOptionalLongArgOptionalLongArg(longArg);
4535f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4536f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
453719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, optionalLongArg1, toInt32(info[1]));
453819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 2)) {
4539f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        imp->voidMethodLongArgOptionalLongArgOptionalLongArg(longArg, optionalLongArg1);
4540f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4541f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
454219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, optionalLongArg2, toInt32(info[2]));
4543f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodLongArgOptionalLongArgOptionalLongArg(longArg, optionalLongArg1, optionalLongArg2);
4544f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4545f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
454619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodLongArgOptionalLongArgOptionalLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4547f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4548f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
454919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodLongArgOptionalLongArgOptionalLongArgMethod(info);
4550f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4551f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4552f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
455319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodLongArgOptionalTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4554f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
455519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
455619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodLongArgOptionalTestInterfaceEmptyArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4557f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4558f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
455919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
456019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
456119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 1)) {
4562f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        imp->voidMethodLongArgOptionalTestInterfaceEmptyArg(longArg);
4563f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4564f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
456551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, optionalTestInterfaceEmpty, V8TestInterfaceEmpty::hasInstance(info[1], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[1])) : 0);
4566f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodLongArgOptionalTestInterfaceEmptyArg(longArg, optionalTestInterfaceEmpty);
4567f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4568f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
456919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodLongArgOptionalTestInterfaceEmptyArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4570f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4571f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
457219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodLongArgOptionalTestInterfaceEmptyArgMethod(info);
4573f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4574f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4575f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
457619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodTestInterfaceEmptyArgOptionalLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4577f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
457819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
457919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodTestInterfaceEmptyArgOptionalLongArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4580f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4581f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
458219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
458351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, optionalTestInterfaceEmpty, V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
458419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 1)) {
4585f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        imp->voidMethodTestInterfaceEmptyArgOptionalLongArg(optionalTestInterfaceEmpty);
4586f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4587f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
458819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[1]));
4589f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodTestInterfaceEmptyArgOptionalLongArg(optionalTestInterfaceEmpty, longArg);
4590f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4591f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
459219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodTestInterfaceEmptyArgOptionalLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4593f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4594f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
459519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodTestInterfaceEmptyArgOptionalLongArgMethod(info);
4596f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4597f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4598f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
459951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodOptionalDictionaryArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
460051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
460151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
460251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(Dictionary, optionalDictionaryArg, Dictionary(info[0], info.GetIsolate()));
460351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (!optionalDictionaryArg.isUndefinedOrNull() && !optionalDictionaryArg.isObject()) {
460451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodOptionalDictionaryArg", "TestObjectPython", "parameter 1 ('optionalDictionaryArg') is not an object."), info.GetIsolate());
460551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
460651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
460751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodOptionalDictionaryArg(optionalDictionaryArg);
460851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
460951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
461051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodOptionalDictionaryArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
461151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
461251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
461351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodOptionalDictionaryArgMethod(info);
461451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
461551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
461651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
461719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodVariadicStringArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4618f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
461919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
462019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Vector<String>, variadicStringArgs, toNativeArguments<String>(info, 0));
4621f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodVariadicStringArg(variadicStringArgs);
4622f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4623f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
462419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodVariadicStringArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4625f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4626f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
462719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodVariadicStringArgMethod(info);
4628f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4629f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4630f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
463119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodStringArgVariadicStringArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4632f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
463319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
463419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodStringArgVariadicStringArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4635f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4636f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
463719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
463819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, stringArg, info[0]);
463919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    V8TRYCATCH_VOID(Vector<String>, variadicStringArgs, toNativeArguments<String>(info, 1));
4640f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodStringArgVariadicStringArg(stringArg, variadicStringArgs);
4641f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4642f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
464319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodStringArgVariadicStringArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4644f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4645f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
464619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodStringArgVariadicStringArgMethod(info);
4647f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4648f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4649f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
465019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodVariadicTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4651f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
465219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
4653f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    Vector<RefPtr<TestInterfaceEmpty> > variadicTestInterfaceEmptyArgs;
465419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    for (int i = 0; i < info.Length(); ++i) {
465551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (!V8TestInterfaceEmpty::hasInstance(info[i], info.GetIsolate(), worldType(info.GetIsolate()))) {
465619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)            throwTypeError(ExceptionMessages::failedToExecute("voidMethodVariadicTestInterfaceEmptyArg", "TestObjectPython", "parameter 1 is not of type 'TestInterfaceEmpty'."), info.GetIsolate());
4657f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)            return;
4658f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        }
465919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        variadicTestInterfaceEmptyArgs.append(V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[i])));
4660f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
4661f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodVariadicTestInterfaceEmptyArg(variadicTestInterfaceEmptyArgs);
4662f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4663f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
466419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodVariadicTestInterfaceEmptyArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
4665f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
4666f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
466719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodVariadicTestInterfaceEmptyArgMethod(info);
4668f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
4669f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4670f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
467119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
4672f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
467319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
467419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
4675f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        return;
4676f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
467719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
467851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
4679f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    Vector<RefPtr<TestInterfaceEmpty> > variadicTestInterfaceEmptyArgs;
468019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    for (int i = 1; i < info.Length(); ++i) {
468151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (!V8TestInterfaceEmpty::hasInstance(info[i], info.GetIsolate(), worldType(info.GetIsolate()))) {
468219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)            throwTypeError(ExceptionMessages::failedToExecute("voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArg", "TestObjectPython", "parameter 2 is not of type 'TestInterfaceEmpty'."), info.GetIsolate());
4683f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)            return;
4684f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        }
468519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        variadicTestInterfaceEmptyArgs.append(V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[i])));
4686f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    }
4687f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    imp->voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArg(testInterfaceEmptyArg, variadicTestInterfaceEmptyArgs);
4688f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
4689f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
469019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
469119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
469219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
469319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgMethod(info);
469419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
469519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
469619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
469751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodA1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
469819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
469919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
470051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodA", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
470119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
470219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
470319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
470451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
470551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodA(longArg);
470619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
470719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
470851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodA2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
470919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
471051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 2)) {
471151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodA", "TestObjectPython", ExceptionMessages::notEnoughArguments(2, info.Length())), info.GetIsolate());
471251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
471351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
471451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
471551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg1, toInt32(info[0]));
471651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg2, toInt32(info[1]));
471751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodA(longArg1, longArg2);
471819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
471919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
472051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodAMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
472119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
472251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1))) {
472351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodA1Method(info);
472451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
472551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
472651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 2))) {
472751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodA2Method(info);
472851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
472951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
4730e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles)    ExceptionState exceptionState(ExceptionState::ExecutionContext, "overloadedMethodA", "TestObjectPython", info.Holder(), info.GetIsolate());
473119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
4732a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length()));
4733a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwIfNeeded();
473419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
473519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
4736a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwTypeError("No function was found that matched the signature provided.");
4737a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwIfNeeded();
473819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
473919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
474051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodAMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
474119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
474219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
474351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::overloadedMethodAMethod(info);
474419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
474519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
474619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
474751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodB1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
474819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
474951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
475051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodB", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
475151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
475251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
475319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
475451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
475551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodB(longArg);
475619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
475719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
475851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodB2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
475919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
476051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
476151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodB", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
476251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
476351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
476451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
476551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg1, toInt32(info[0]));
476651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 1)) {
476751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        imp->overloadedMethodB(longArg1);
476851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
476951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
477051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg2, toInt32(info[1]));
477151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodB(longArg1, longArg2);
477219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
477319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
477451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodBMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
477519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
477651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1))) {
477751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodB1Method(info);
477851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
477951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
478051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1)) || ((info.Length() == 2))) {
478151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodB2Method(info);
478251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
478351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
4784e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles)    ExceptionState exceptionState(ExceptionState::ExecutionContext, "overloadedMethodB", "TestObjectPython", info.Holder(), info.GetIsolate());
478551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
4786a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length()));
4787a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwIfNeeded();
478851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
478951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
4790a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwTypeError("No function was found that matched the signature provided.");
4791a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwIfNeeded();
479219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
479319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
479451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodBMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
479519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
479619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
479751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::overloadedMethodBMethod(info);
479819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
479919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
480019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
480151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodC1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
480219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
480351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
480451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodC", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
480551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
480651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
480719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
480851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
480951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodC(longArg);
481019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
481119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
481251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodC2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
481319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
481451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
481551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodC", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
481651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
481751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
481851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
481951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
482051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(Vector<int>, longArgs, toNativeArguments<int>(info, 1));
482151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodC(longArg, longArgs);
482219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
482319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
482451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodCMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
482519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
482651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1))) {
482751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodC1Method(info);
482851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
482951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
483051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if () {
483151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodC2Method(info);
483251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
483351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
4834e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles)    ExceptionState exceptionState(ExceptionState::ExecutionContext, "overloadedMethodC", "TestObjectPython", info.Holder(), info.GetIsolate());
483551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
4836a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length()));
4837a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwIfNeeded();
483851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
483951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
4840a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwTypeError("No function was found that matched the signature provided.");
4841a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwIfNeeded();
484251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
484351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
484451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodCMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
484551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
484651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
484751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::overloadedMethodCMethod(info);
484851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
484951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
485051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
485151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodD1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
485251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
485351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
485451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodD", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
485551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
485651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
485751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
485851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
485951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodD(longArg);
486051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
486151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
486251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodD2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
486351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
486451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
486551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodD", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
486651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
486751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
486851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
486951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
487051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodD(testInterfaceEmptyArg);
487151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
487251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
487351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodDMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
487451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
487551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1))) {
487651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodD1Method(info);
487751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
487851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
487951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1) && (V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate()))))) {
488051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodD2Method(info);
488151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
488251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
4883e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles)    ExceptionState exceptionState(ExceptionState::ExecutionContext, "overloadedMethodD", "TestObjectPython", info.Holder(), info.GetIsolate());
488451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
4885a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length()));
4886a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwIfNeeded();
488751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
488851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
4889a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwTypeError("No function was found that matched the signature provided.");
4890a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwIfNeeded();
489151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
489251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
489351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodDMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
489451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
489551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
489651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::overloadedMethodDMethod(info);
489751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
489851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
489951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
490051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodE1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
490151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
490251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
490351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodE", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
490451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
490551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
490651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
490751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
490851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodE(longArg);
490951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
491051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
491151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodE2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
491251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
491351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
491451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodE", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
491551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
491651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
491751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
491851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(Vector<int>, longArrayArg, toNativeArray<int>(info[0], 1, info.GetIsolate()));
491951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodE(longArrayArg);
492051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
492151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
492251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodEMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
492351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
492451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1))) {
492551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodE1Method(info);
492651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
492751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
492851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1) && (info[0]->IsArray()))) {
492951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodE2Method(info);
493051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
493151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
4932e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles)    ExceptionState exceptionState(ExceptionState::ExecutionContext, "overloadedMethodE", "TestObjectPython", info.Holder(), info.GetIsolate());
493351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
4934a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length()));
4935a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwIfNeeded();
493651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
493751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
4938a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwTypeError("No function was found that matched the signature provided.");
4939a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwIfNeeded();
494051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
494151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
494251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodEMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
494351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
494451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
494551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::overloadedMethodEMethod(info);
494651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
494751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
494851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
494951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodF1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
495051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
495151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
495251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodF", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
495351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
495451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
495551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
495651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
495751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodF(longArg);
495851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
495951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
496051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodF2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
496151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
496251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
496351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodF", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
496451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
496551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
496651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
496751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, testInterfaceEmptyNullableArg, V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
496851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodF(testInterfaceEmptyNullableArg);
496951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
497051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
497151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodFMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
497251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
497351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1))) {
497451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodF1Method(info);
497551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
497651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
497751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1) && (info[0]->IsNull() || V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate()))))) {
497851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodF2Method(info);
497951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
498051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
4981e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles)    ExceptionState exceptionState(ExceptionState::ExecutionContext, "overloadedMethodF", "TestObjectPython", info.Holder(), info.GetIsolate());
498251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
4983a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length()));
4984a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwIfNeeded();
498551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
498651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
4987a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwTypeError("No function was found that matched the signature provided.");
4988a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwIfNeeded();
498951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
499051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
499151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodFMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
499251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
499351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
499451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::overloadedMethodFMethod(info);
499551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
499651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
499751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
499851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodG1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
499951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
500051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
500151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodG();
500251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
500351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
500451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodG2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
500551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
500651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
500751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodG", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
500851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
500951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
501051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
501151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, strictTypeCheckingStringArg, info[0]);
501251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedMethodG(strictTypeCheckingStringArg);
501351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
501451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
501551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodGMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
501651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
501751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 0))) {
501851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodG1Method(info);
501951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
502051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
502151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1) && (info[0]->IsNull() || info[0]->IsUndefined() || info[0]->IsString() || info[0]->IsObject()))) {
502251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedMethodG2Method(info);
502351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
502451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
502551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodG", "TestObjectPython", "No function was found that matched the signature provided."), info.GetIsolate());
502651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
502751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
502851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedMethodGMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
502951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
503051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
503151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::overloadedMethodGMethod(info);
503251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
503351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
503451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
503551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedPerWorldBindingsMethod1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
503651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
503751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
503851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedPerWorldBindingsMethod();
503951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
504051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
504151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedPerWorldBindingsMethod1MethodForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
504251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
504351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
504451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedPerWorldBindingsMethod();
504551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
504651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
504751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedPerWorldBindingsMethod2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
504851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
504951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
505051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedPerWorldBindingsMethod", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
505151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
505251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
505351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
505451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
505551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedPerWorldBindingsMethod(longArg);
505651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
505751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
505851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedPerWorldBindingsMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
505951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
506051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 0))) {
506151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedPerWorldBindingsMethod1Method(info);
506251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
506351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
506451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1))) {
506551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedPerWorldBindingsMethod2Method(info);
506651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
506751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
506851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    throwTypeError(ExceptionMessages::failedToExecute("overloadedPerWorldBindingsMethod", "TestObjectPython", "No function was found that matched the signature provided."), info.GetIsolate());
506951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
507051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
507151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedPerWorldBindingsMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
507251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
507351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
507451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::overloadedPerWorldBindingsMethodMethod(info);
507551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
507651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
507751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
507851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedPerWorldBindingsMethod2MethodForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
507951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
508051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
508151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedPerWorldBindingsMethod", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
508251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
508351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
508451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
508551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
508651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->overloadedPerWorldBindingsMethod(longArg);
508751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
508851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
508951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedPerWorldBindingsMethodMethodForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
509051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
509151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 0))) {
509251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedPerWorldBindingsMethod1MethodForMainWorld(info);
509351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
509451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
509551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1))) {
509651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedPerWorldBindingsMethod2MethodForMainWorld(info);
509751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
509851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
509951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    throwTypeError(ExceptionMessages::failedToExecute("overloadedPerWorldBindingsMethod", "TestObjectPython", "No function was found that matched the signature provided."), info.GetIsolate());
510051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
510151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
510251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedPerWorldBindingsMethodMethodCallbackForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
510351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
510451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
510551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::overloadedPerWorldBindingsMethodMethodForMainWorld(info);
510651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
510751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
510851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
510951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedStaticMethod1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
511051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
511151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
511251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedStaticMethod", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
511351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
511451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
511551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg, toInt32(info[0]));
511651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython::overloadedStaticMethod(longArg);
511751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
511851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
511951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedStaticMethod2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
512051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
512151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 2)) {
512251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("overloadedStaticMethod", "TestObjectPython", ExceptionMessages::notEnoughArguments(2, info.Length())), info.GetIsolate());
512351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
512451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
512551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg1, toInt32(info[0]));
512651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, longArg2, toInt32(info[1]));
512751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython::overloadedStaticMethod(longArg1, longArg2);
512851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
512951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
513051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedStaticMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
513151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
513251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 1))) {
513351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedStaticMethod1Method(info);
513451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
513551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
513651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (((info.Length() == 2))) {
513751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        overloadedStaticMethod2Method(info);
513851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
513951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
5140e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles)    ExceptionState exceptionState(ExceptionState::ExecutionContext, "overloadedStaticMethod", "TestObjectPython", info.Holder(), info.GetIsolate());
514151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
5142a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length()));
5143a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        exceptionState.throwIfNeeded();
514451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
514551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
5146a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwTypeError("No function was found that matched the signature provided.");
5147a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    exceptionState.throwIfNeeded();
514851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
514951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
515051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void overloadedStaticMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
515151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
515251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
515351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::overloadedStaticMethodMethod(info);
515451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
515551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
515651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
515751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void addEventListenerMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
515851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
5159a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    ExceptionState exceptionState(ExceptionState::ExecutionContext, "addEventListener", "TestObjectPython", info.Holder(), info.GetIsolate());
516051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    EventTarget* impl = V8TestObjectPython::toNative(info.Holder());
516151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (DOMWindow* window = impl->toDOMWindow()) {
516251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (!BindingSecurity::shouldAllowAccessToFrame(window->frame(), exceptionState)) {
516351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            exceptionState.throwIfNeeded();
516451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            return;
516551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        }
516651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (!window->document())
516751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            return;
516851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
516951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    RefPtr<EventListener> listener = V8EventListenerList::getEventListener(info[1], false, ListenerFindOrCreate);
517051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (listener) {
517151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithNullCheck>, eventName, info[0]);
517251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        impl->addEventListener(eventName, listener, info[2]->BooleanValue());
517351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (!impl->toNode())
517451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            createHiddenDependency(info.Holder(), info[1], V8TestObjectPython::eventListenerCacheIndex, info.GetIsolate());
517551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
517651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
517751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
517851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void addEventListenerMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
517951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
518051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
518151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::addEventListenerMethod(info);
518251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
518351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
518451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
518551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void removeEventListenerMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
518651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
5187a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    ExceptionState exceptionState(ExceptionState::ExecutionContext, "removeEventListener", "TestObjectPython", info.Holder(), info.GetIsolate());
518851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    EventTarget* impl = V8TestObjectPython::toNative(info.Holder());
518951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (DOMWindow* window = impl->toDOMWindow()) {
519051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (!BindingSecurity::shouldAllowAccessToFrame(window->frame(), exceptionState)) {
519151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            exceptionState.throwIfNeeded();
519251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            return;
519351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        }
519451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (!window->document())
519551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            return;
519651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
519751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    RefPtr<EventListener> listener = V8EventListenerList::getEventListener(info[1], false, ListenerFindOnly);
519851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (listener) {
519951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithNullCheck>, eventName, info[0]);
520051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        impl->removeEventListener(eventName, listener.get(), info[2]->BooleanValue());
520151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (!impl->toNode())
520251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            removeHiddenDependency(info.Holder(), info[1], V8TestObjectPython::eventListenerCacheIndex, info.GetIsolate());
520351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
520451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
520551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
520651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void removeEventListenerMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
520751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
520851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
520951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::removeEventListenerMethod(info);
521051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
521151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
521251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
521351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodClampUnsignedShortArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
521451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
521551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
521651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodClampUnsignedShortArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
521751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
521851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
521951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
522051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    unsigned clampUnsignedShortArg = 0;
522151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(double, clampUnsignedShortArgNativeValue, info[0]->NumberValue());
522251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (!std::isnan(clampUnsignedShortArgNativeValue))
522351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        clampUnsignedShortArg = clampTo<unsigned short>(clampUnsignedShortArgNativeValue);
522451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodClampUnsignedShortArg(clampUnsignedShortArg);
522551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
522651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
522751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodClampUnsignedShortArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
522851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
522951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
523051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodClampUnsignedShortArgMethod(info);
523151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
523251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
523351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
523451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodClampUnsignedLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
523551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
523651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
523751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodClampUnsignedLongArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
523851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
523951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
524051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
524151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    unsigned clampUnsignedLongArg = 0;
524251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(double, clampUnsignedLongArgNativeValue, info[0]->NumberValue());
524351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (!std::isnan(clampUnsignedLongArgNativeValue))
524451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        clampUnsignedLongArg = clampTo<unsigned long>(clampUnsignedLongArgNativeValue);
524551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodClampUnsignedLongArg(clampUnsignedLongArg);
524651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
524751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
524851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodClampUnsignedLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
524951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
525051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
525151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodClampUnsignedLongArgMethod(info);
525251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
525351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
525451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
525551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodDefaultUndefinedTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
525651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
525751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
525851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, defaultUndefinedTestInterfaceEmptyArg, V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
525951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodDefaultUndefinedTestInterfaceEmptyArg(defaultUndefinedTestInterfaceEmptyArg);
526051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
526151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
526251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodDefaultUndefinedTestInterfaceEmptyArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
526351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
526451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
526551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodDefaultUndefinedTestInterfaceEmptyArgMethod(info);
526651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
526751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
526851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
526951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodDefaultUndefinedLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
527051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
527151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
527251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, defaultUndefinedLongArg, toInt32(info[0]));
527351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodDefaultUndefinedLongArg(defaultUndefinedLongArg);
527451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
527551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
527651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodDefaultUndefinedLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
527751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
527851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
527951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodDefaultUndefinedLongArgMethod(info);
528051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
528151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
528251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
528351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodDefaultUndefinedStringArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
528451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
528551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
528651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, defaultUndefinedStringArg, info[0]);
528751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodDefaultUndefinedStringArg(defaultUndefinedStringArg);
528851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
528951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
529051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodDefaultUndefinedStringArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
529151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
529251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
529351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodDefaultUndefinedStringArgMethod(info);
529451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
529551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
529651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
529751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodDefaultNullStringStringArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
529851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
529951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
530051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, defaultNullStringStringArg, argumentOrNull(info, 0));
530151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodDefaultNullStringStringArg(defaultNullStringStringArg);
530219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
530319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
530419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)static void voidMethodDefaultNullStringStringArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
530519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
530619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
530751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodDefaultNullStringStringArgMethod(info);
530851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
530951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
531051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
531151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodEnforceRangeLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
531251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
531351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
531451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodEnforceRangeLongArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
531551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
531651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
531751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
531851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_WITH_TYPECHECK_VOID(int, enforceRangeLongArg, toInt32(info[0], EnforceRange, ok), info.GetIsolate());
531951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodEnforceRangeLongArg(enforceRangeLongArg);
532051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
532151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
532251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodEnforceRangeLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
532351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
532451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
532551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodEnforceRangeLongArgMethod(info);
532651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
532751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
532851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
532951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodTreatNullAsNullStringStringArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
533051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
533151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
533251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodTreatNullAsNullStringStringArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
533351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
533451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
533551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
533651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithNullCheck>, treatNullAsNullStringStringArg, info[0]);
533751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodTreatNullAsNullStringStringArg(treatNullAsNullStringStringArg);
533851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
533951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
534051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodTreatNullAsNullStringStringArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
534151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
534251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
534351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodTreatNullAsNullStringStringArgMethod(info);
534451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
534551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
534651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
534751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodTreatNullAsNullStringTreatUndefinedAsNullStringStringArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
534851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
534951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
535051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("voidMethodTreatNullAsNullStringTreatUndefinedAsNullStringStringArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
535151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
535251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
535351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
535451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithUndefinedOrNullCheck>, treatNullAsNullStringStringArg, info[0]);
535551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->voidMethodTreatNullAsNullStringTreatUndefinedAsNullStringStringArg(treatNullAsNullStringStringArg);
535651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
535751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
535851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void voidMethodTreatNullAsNullStringTreatUndefinedAsNullStringStringArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
535951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
536051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
536151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::voidMethodTreatNullAsNullStringTreatUndefinedAsNullStringStringArgMethod(info);
536251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
536351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
536451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
536551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void activityLoggingAccessForAllWorldsMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
536651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
536751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
536851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->activityLoggingAccessForAllWorldsMethod();
536951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
537051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
537151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void activityLoggingAccessForAllWorldsMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
537251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
537351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
537451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
537551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (contextData && contextData->activityLogger()) {
537651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        Vector<v8::Handle<v8::Value> > loggerArgs = toNativeArguments<v8::Handle<v8::Value> >(info, 0);
537751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingAccessForAllWorldsMethod", info.Length(), loggerArgs.data(), "Method");
537851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
537951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingAccessForAllWorldsMethodMethod(info);
538051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
538151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
538251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
538351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithScriptStateVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
538451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
538551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
538651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ScriptState* currentState = ScriptState::current();
538751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (!currentState)
538851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
538951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ScriptState& state = *currentState;
539051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->callWithScriptStateVoidMethod(&state);
539151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (state.hadException()) {
539251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        v8::Local<v8::Value> exception = state.exception();
539351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        state.clearException();
539451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwError(exception, info.GetIsolate());
539551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
539651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
539751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
539851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
539951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithScriptStateVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
540051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
540151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
540251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::callWithScriptStateVoidMethodMethod(info);
540351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
540451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
540551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
540651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithScriptStateLongMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
540751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
540851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
540951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ScriptState* currentState = ScriptState::current();
541051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (!currentState)
541151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
541251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ScriptState& state = *currentState;
541351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    int result = imp->callWithScriptStateLongMethod(&state);
541451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (state.hadException()) {
541551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        v8::Local<v8::Value> exception = state.exception();
541651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        state.clearException();
541751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwError(exception, info.GetIsolate());
541851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
541951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
542051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    v8SetReturnValueInt(info, result);
542151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
542251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
542351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithScriptStateLongMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
542451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
542551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
542651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::callWithScriptStateLongMethodMethod(info);
542751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
542851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
542951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
543051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithExecutionContextVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
543151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
543251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
543351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ExecutionContext* scriptContext = getExecutionContext();
543451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->callWithExecutionContextVoidMethod(scriptContext);
543551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
543651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
543751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithExecutionContextVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
543851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
543951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
544051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::callWithExecutionContextVoidMethodMethod(info);
544151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
544251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
544351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
544451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithScriptStateExecutionContextVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
544551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
544651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
544751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ScriptState* currentState = ScriptState::current();
544851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (!currentState)
544951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
545051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ScriptState& state = *currentState;
545151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ExecutionContext* scriptContext = getExecutionContext();
545251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->callWithScriptStateExecutionContextVoidMethod(&state, scriptContext);
545351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (state.hadException()) {
545451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        v8::Local<v8::Value> exception = state.exception();
545551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        state.clearException();
545651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwError(exception, info.GetIsolate());
545751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
545851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
545951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
546051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
546151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithScriptStateExecutionContextVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
546251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
546351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
546451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::callWithScriptStateExecutionContextVoidMethodMethod(info);
546551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
546651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
546751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
546851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithScriptStateScriptArgumentsVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
546951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
547051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
547151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ScriptState* currentState = ScriptState::current();
547251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (!currentState)
547351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
547451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ScriptState& state = *currentState;
547551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    RefPtr<ScriptArguments> scriptArguments(createScriptArguments(info, 0));
547651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->callWithScriptStateScriptArgumentsVoidMethod(&state, scriptArguments.release());
547751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (state.hadException()) {
547851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        v8::Local<v8::Value> exception = state.exception();
547951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        state.clearException();
548051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwError(exception, info.GetIsolate());
548151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
548251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
548351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
548451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
548551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithScriptStateScriptArgumentsVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
548651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
548751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
548851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::callWithScriptStateScriptArgumentsVoidMethodMethod(info);
548951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
549051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
549151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
549251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithScriptStateScriptArgumentsVoidMethodOptionalBooleanArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
549351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
549451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
549551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 0)) {
549651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        ScriptState* currentState = ScriptState::current();
549751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (!currentState)
549851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            return;
549951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        ScriptState& state = *currentState;
550051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        RefPtr<ScriptArguments> scriptArguments(createScriptArguments(info, 1));
550151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        imp->callWithScriptStateScriptArgumentsVoidMethodOptionalBooleanArg(&state, scriptArguments.release());
550251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (state.hadException()) {
550351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            v8::Local<v8::Value> exception = state.exception();
550451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            state.clearException();
550551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            throwError(exception, info.GetIsolate());
550651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            return;
550751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        }
550851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
550951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
551051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(bool, optionalBooleanArg, info[0]->BooleanValue());
551151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ScriptState* currentState = ScriptState::current();
551251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (!currentState)
551351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
551451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ScriptState& state = *currentState;
551551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    RefPtr<ScriptArguments> scriptArguments(createScriptArguments(info, 1));
551651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->callWithScriptStateScriptArgumentsVoidMethodOptionalBooleanArg(&state, scriptArguments.release(), optionalBooleanArg);
551751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (state.hadException()) {
551851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        v8::Local<v8::Value> exception = state.exception();
551951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        state.clearException();
552051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwError(exception, info.GetIsolate());
552151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
552251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
552351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
552451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
552551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithScriptStateScriptArgumentsVoidMethodOptionalBooleanArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
552651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
552751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
552851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::callWithScriptStateScriptArgumentsVoidMethodOptionalBooleanArgMethod(info);
552951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
553051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
553151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
553251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithActiveWindowMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
553351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
553451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
553551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->callWithActiveWindow(activeDOMWindow());
553651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
553751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
553851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithActiveWindowMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
553951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
554051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
554151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::callWithActiveWindowMethod(info);
554251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
554351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
554451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
554551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithActiveWindowScriptWindowMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
554651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
554751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
554851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->callWithActiveWindowScriptWindow(activeDOMWindow(), firstDOMWindow());
554951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
555051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
555151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void callWithActiveWindowScriptWindowMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
555251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
555351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
555451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::callWithActiveWindowScriptWindowMethod(info);
555551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
555651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
555751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
555851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void checkSecurityForNodeVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
555951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
556051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
556151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (!BindingSecurity::shouldAllowAccessToNode(imp->checkSecurityForNodeVoidMethod(exceptionState), exceptionState)) {
556251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        v8SetReturnValueNull(info);
556351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        exceptionState.throwIfNeeded();
556451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
556551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
556651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->checkSecurityForNodeVoidMethod();
556751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
556851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
556951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void checkSecurityForNodeVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
557051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
557151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
557251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::checkSecurityForNodeVoidMethodMethod(info);
557351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
557451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
557551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
557651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
557751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void conditionalConditionVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
557851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
557951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
558051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->conditionalConditionVoidMethod();
558151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
558251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
558351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
558451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
558551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void conditionalConditionVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
558651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
558751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
558851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::conditionalConditionVoidMethodMethod(info);
558951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
559051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
559151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
559251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
559351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
559451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void conditionalCondition1AndCondition2VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
559551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
559651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
559751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->conditionalCondition1AndCondition2VoidMethod();
559851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
559951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
560051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
560151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
560251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void conditionalCondition1AndCondition2VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
560351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
560451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
560551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::conditionalCondition1AndCondition2VoidMethodMethod(info);
560651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
560751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
560851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
560951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
561051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
561151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void conditionalConditionStaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
561251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
561351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython::conditionalConditionStaticVoidMethod();
561451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
561551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
561651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
561751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
561851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void conditionalConditionStaticVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
561951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
562051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
562151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::conditionalConditionStaticVoidMethodMethod(info);
562251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
562351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
562451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
562551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
562651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void customVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
562751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
562851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
562951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TestObjectPython::customVoidMethodMethodCustom(info);
563051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
563151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
563251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
563351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
563451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void conditionalConditionCustomVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
563551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
563651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
563751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TestObjectPython::conditionalConditionCustomVoidMethodMethodCustom(info);
563851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
563951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
564051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
564151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
564251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void customElementCallbacksVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
564351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
564451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
564551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
564651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->customElementCallbacksVoidMethod();
564751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
564851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
564951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void customElementCallbacksVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
565051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
565151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
565251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::customElementCallbacksVoidMethodMethod(info);
565319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
565419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
565519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
565651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void deprecatedVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
565751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
565851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
565951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->deprecatedVoidMethod();
566051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
566151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
566251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void deprecatedVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
566351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
566451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
566551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    UseCounter::countDeprecation(activeExecutionContext(), UseCounter::voidMethod);
566651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::deprecatedVoidMethodMethod(info);
566751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
566851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
566951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
567051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void doNotCheckSignatureVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
567151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
567251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
567351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->doNotCheckSignatureVoidMethod();
567451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
567551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
567651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void doNotCheckSignatureVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
567751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
567851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
567951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::doNotCheckSignatureVoidMethodMethod(info);
568051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
568151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
568251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
568351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void implementedAsVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
568451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
568551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
568651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->implementedAsMethodName();
568751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
568851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
568951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void implementedAsVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
569051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
569151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
569251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::implementedAsVoidMethodMethod(info);
569351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
569451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
569551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
569651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void measureAsVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
569751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
569851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
569951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->measureAsVoidMethod();
570051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
570151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
570251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void measureAsVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
570351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
570451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
570551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    UseCounter::count(activeDOMWindow(), UseCounter::TestFeature);
570651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::measureAsVoidMethodMethod(info);
570751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
570851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
570951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
571051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void notEnumerableVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
571151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
571251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
571351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->notEnumerableVoidMethod();
571451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
571551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
571651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void notEnumerableVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
571751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
571851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
571951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::notEnumerableVoidMethodMethod(info);
572051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
572151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
572251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
572351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perContextEnabledVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
572451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
572551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
572651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->perContextEnabledVoidMethod();
572751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
572851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
572951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perContextEnabledVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
573051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
573151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
573251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::perContextEnabledVoidMethodMethod(info);
573351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
573451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
573551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
573651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perWorldBindingsVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
573751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
573851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
573951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->perWorldBindingsVoidMethod();
574051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
574151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
574251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perWorldBindingsVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
574351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
574451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
574551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::perWorldBindingsVoidMethodMethod(info);
574651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
574751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
574851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
574951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perWorldBindingsVoidMethodMethodForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
575051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
575151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
575251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->perWorldBindingsVoidMethod();
575351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
575451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
575551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perWorldBindingsVoidMethodMethodCallbackForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
575651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
575751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
575851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::perWorldBindingsVoidMethodMethodForMainWorld(info);
575951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
576051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
576151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
576251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void activityLoggingForAllWorldsPerWorldBindingsVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
576351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
576451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
576551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->activityLoggingForAllWorldsPerWorldBindingsVoidMethod();
576651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
576751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
576851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void activityLoggingForAllWorldsPerWorldBindingsVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
576951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
577051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
577151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
577251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (contextData && contextData->activityLogger()) {
577351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        Vector<v8::Handle<v8::Value> > loggerArgs = toNativeArguments<v8::Handle<v8::Value> >(info, 0);
577451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingForAllWorldsPerWorldBindingsVoidMethod", info.Length(), loggerArgs.data(), "Method");
577551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
577651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingForAllWorldsPerWorldBindingsVoidMethodMethod(info);
577751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
577851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
577951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
578051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void activityLoggingForAllWorldsPerWorldBindingsVoidMethodMethodForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
578151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
578251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
578351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->activityLoggingForAllWorldsPerWorldBindingsVoidMethod();
578451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
578551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
578651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void activityLoggingForAllWorldsPerWorldBindingsVoidMethodMethodCallbackForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
578751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
578851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
578951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
579051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (contextData && contextData->activityLogger()) {
579151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        Vector<v8::Handle<v8::Value> > loggerArgs = toNativeArguments<v8::Handle<v8::Value> >(info, 0);
579251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingForAllWorldsPerWorldBindingsVoidMethod", info.Length(), loggerArgs.data(), "Method");
579351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
579451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingForAllWorldsPerWorldBindingsVoidMethodMethodForMainWorld(info);
579551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
579651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
579751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
579851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
579951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
580051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
580151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethod();
580251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
580351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
580451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
580551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
580651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
580751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext());
580851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (contextData && contextData->activityLogger()) {
580951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        Vector<v8::Handle<v8::Value> > loggerArgs = toNativeArguments<v8::Handle<v8::Value> >(info, 0);
581051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        contextData->activityLogger()->log("TestObjectPython.activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethod", info.Length(), loggerArgs.data(), "Method");
581151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
581251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethodMethod(info);
581351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
581451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
581551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
581651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethodMethodForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
581751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
581851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
581951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethod();
582051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
582151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
582251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethodMethodCallbackForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
582351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
582451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
582551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethodMethodForMainWorld(info);
582651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
582751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
582851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
582951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perWorldBindingsVoidMethodTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
583019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
583119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
583251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("perWorldBindingsVoidMethodTestInterfaceEmptyArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
583319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
583419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
583519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
583651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
583751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->perWorldBindingsVoidMethodTestInterfaceEmptyArg(testInterfaceEmptyArg);
583819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
583919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
584051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perWorldBindingsVoidMethodTestInterfaceEmptyArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
5841f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){
5842f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
584351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::perWorldBindingsVoidMethodTestInterfaceEmptyArgMethod(info);
584419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
584519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
584619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
584751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perWorldBindingsVoidMethodTestInterfaceEmptyArgMethodForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
584819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
584919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
585051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("perWorldBindingsVoidMethodTestInterfaceEmptyArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
585119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
585219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
585319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
585451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
585551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->perWorldBindingsVoidMethodTestInterfaceEmptyArg(testInterfaceEmptyArg);
585619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
585719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
585851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perWorldBindingsVoidMethodTestInterfaceEmptyArgMethodCallbackForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
585919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
586019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
586151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::perWorldBindingsVoidMethodTestInterfaceEmptyArgMethodForMainWorld(info);
586219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
586319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
586419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
586551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void raisesExceptionVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
586651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
5867a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    ExceptionState exceptionState(ExceptionState::ExecutionContext, "raisesExceptionVoidMethod", "TestObjectPython", info.Holder(), info.GetIsolate());
586851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
586951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->raisesExceptionVoidMethod(exceptionState);
587051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (exceptionState.throwIfNeeded())
587151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
587251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
587351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
587451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void raisesExceptionVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
587551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
587651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
587751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::raisesExceptionVoidMethodMethod(info);
587851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
587951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
588051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
588151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void raisesExceptionVoidMethodOptionalLongArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
588251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
5883a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    ExceptionState exceptionState(ExceptionState::ExecutionContext, "raisesExceptionVoidMethodOptionalLongArg", "TestObjectPython", info.Holder(), info.GetIsolate());
588451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
588551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (UNLIKELY(info.Length() <= 0)) {
588651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        imp->raisesExceptionVoidMethodOptionalLongArg(exceptionState);
588751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (exceptionState.throwIfNeeded())
588851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)            return;
588951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
589051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
589151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(int, optionalLongArg, toInt32(info[0]));
589251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->raisesExceptionVoidMethodOptionalLongArg(optionalLongArg, exceptionState);
589351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (exceptionState.throwIfNeeded())
589451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
589551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
589651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
589751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void raisesExceptionVoidMethodOptionalLongArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
589851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
589951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
590051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::raisesExceptionVoidMethodOptionalLongArgMethod(info);
590151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
590251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
590351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
590451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void readOnlyVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
590551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
590651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
590751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->readOnlyVoidMethod();
590851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
590951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
591051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void readOnlyVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
591151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
591251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
591351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::readOnlyVoidMethodMethod(info);
591451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
591551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
591651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
591751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void notEnumerableReadOnlyVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
591851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
591951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
592051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->notEnumerableReadOnlyVoidMethod();
592151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
592251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
592351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void notEnumerableReadOnlyVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
592451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
592551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
592651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::notEnumerableReadOnlyVoidMethodMethod(info);
592751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
592851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
592951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
593051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void runtimeEnabledVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
593151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
593251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
593351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->runtimeEnabledVoidMethod();
593451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
593551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
593651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void runtimeEnabledVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
593751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
593851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
593951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::runtimeEnabledVoidMethodMethod(info);
594051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
594151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
594251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
594351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perWorldBindingsRuntimeEnabledVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
594451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
594551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
594651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->perWorldBindingsRuntimeEnabledVoidMethod();
594751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
594851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
594951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perWorldBindingsRuntimeEnabledVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
595051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
595151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
595251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::perWorldBindingsRuntimeEnabledVoidMethodMethod(info);
595351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
595451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
595551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
595651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perWorldBindingsRuntimeEnabledVoidMethodMethodForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
595751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
595851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
595951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->perWorldBindingsRuntimeEnabledVoidMethod();
596051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
596151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
596251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void perWorldBindingsRuntimeEnabledVoidMethodMethodCallbackForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
596351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
596451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
596551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::perWorldBindingsRuntimeEnabledVoidMethodMethodForMainWorld(info);
596651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
596751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
596851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
596951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void strictTypeCheckingVoidMethodTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
597019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
597119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    if (UNLIKELY(info.Length() < 1)) {
597251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("strictTypeCheckingVoidMethodTestInterfaceEmptyArg", "TestObjectPython", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
597319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        return;
597419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    }
597519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
597651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (info.Length() > 0 && !isUndefinedOrNull(info[0]) && !V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate()))) {
597751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        throwTypeError(ExceptionMessages::failedToExecute("strictTypeCheckingVoidMethodTestInterfaceEmptyArg", "TestObjectPython", "parameter 1 is not of type 'TestInterfaceEmpty'."), info.GetIsolate());
597851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        return;
597951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
598051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    V8TRYCATCH_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceEmpty::toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0);
598151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->strictTypeCheckingVoidMethodTestInterfaceEmptyArg(testInterfaceEmptyArg);
598219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}
598319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
598451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void strictTypeCheckingVoidMethodTestInterfaceEmptyArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
598519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles){
598619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
598751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::strictTypeCheckingVoidMethodTestInterfaceEmptyArgMethod(info);
598851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
598951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
599051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
599151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void treatReturnedNullStringAsNullStringMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
599251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
599351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
599451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    v8SetReturnValueStringOrNull(info, imp->treatReturnedNullStringAsNullStringMethod(), info.GetIsolate());
599551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
599651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
599751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void treatReturnedNullStringAsNullStringMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
599851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
599951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
600051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::treatReturnedNullStringAsNullStringMethodMethod(info);
600151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
600251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
600351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
600451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void treatReturnedNullStringAsUndefinedStringMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
600551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
600651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
600751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    v8SetReturnValueStringOrUndefined(info, imp->treatReturnedNullStringAsUndefinedStringMethod(), info.GetIsolate());
600851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
600951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
601051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void treatReturnedNullStringAsUndefinedStringMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
601151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
601251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
601351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::treatReturnedNullStringAsUndefinedStringMethodMethod(info);
601451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
601551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
601651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
601751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void unforgeableVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
601851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
601951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
602051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    imp->unforgeableVoidMethod();
602151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
602251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
602351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static void unforgeableVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
602451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
602551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
602651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    TestObjectPythonV8Internal::unforgeableVoidMethodMethod(info);
6027f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
6028f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)}
6029f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6030f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)} // namespace TestObjectPythonV8Internal
6031f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6032f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)static const V8DOMConfiguration::AttributeConfiguration V8TestObjectPythonAttributes[] = {
6033f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"readonlyStringAttribute", TestObjectPythonV8Internal::readonlyStringAttributeAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6034f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"readonlyTestInterfaceEmptyAttribute", TestObjectPythonV8Internal::readonlyTestInterfaceEmptyAttributeAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6035f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"readonlyLongAttribute", TestObjectPythonV8Internal::readonlyLongAttributeAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6036f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"dateAttribute", TestObjectPythonV8Internal::dateAttributeAttributeGetterCallback, TestObjectPythonV8Internal::dateAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6037f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"stringAttribute", TestObjectPythonV8Internal::stringAttributeAttributeGetterCallback, TestObjectPythonV8Internal::stringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6038f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"readonlyDOMTimeStampAttribute", TestObjectPythonV8Internal::readonlyDOMTimeStampAttributeAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6039f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"booleanAttribute", TestObjectPythonV8Internal::booleanAttributeAttributeGetterCallback, TestObjectPythonV8Internal::booleanAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6040f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"byteAttribute", TestObjectPythonV8Internal::byteAttributeAttributeGetterCallback, TestObjectPythonV8Internal::byteAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6041f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"doubleAttribute", TestObjectPythonV8Internal::doubleAttributeAttributeGetterCallback, TestObjectPythonV8Internal::doubleAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6042f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"floatAttribute", TestObjectPythonV8Internal::floatAttributeAttributeGetterCallback, TestObjectPythonV8Internal::floatAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6043f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"longAttribute", TestObjectPythonV8Internal::longAttributeAttributeGetterCallback, TestObjectPythonV8Internal::longAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6044f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"longLongAttribute", TestObjectPythonV8Internal::longLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::longLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6045f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"octetAttribute", TestObjectPythonV8Internal::octetAttributeAttributeGetterCallback, TestObjectPythonV8Internal::octetAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6046f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"shortAttribute", TestObjectPythonV8Internal::shortAttributeAttributeGetterCallback, TestObjectPythonV8Internal::shortAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6047f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"unsignedLongAttribute", TestObjectPythonV8Internal::unsignedLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::unsignedLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6048f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"unsignedLongLongAttribute", TestObjectPythonV8Internal::unsignedLongLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::unsignedLongLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6049f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"unsignedShortAttribute", TestObjectPythonV8Internal::unsignedShortAttributeAttributeGetterCallback, TestObjectPythonV8Internal::unsignedShortAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6050f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"cssAttribute", TestObjectPythonV8Internal::cssAttributeAttributeGetterCallback, TestObjectPythonV8Internal::cssAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6051f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"imeAttribute", TestObjectPythonV8Internal::imeAttributeAttributeGetterCallback, TestObjectPythonV8Internal::imeAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6052f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"svgAttribute", TestObjectPythonV8Internal::svgAttributeAttributeGetterCallback, TestObjectPythonV8Internal::svgAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6053f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"xmlAttribute", TestObjectPythonV8Internal::xmlAttributeAttributeGetterCallback, TestObjectPythonV8Internal::xmlAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6054f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"nodeFilterAttribute", TestObjectPythonV8Internal::nodeFilterAttributeAttributeGetterCallback, TestObjectPythonV8Internal::nodeFilterAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6055f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"serializedScriptValueAttribute", TestObjectPythonV8Internal::serializedScriptValueAttributeAttributeGetterCallback, TestObjectPythonV8Internal::serializedScriptValueAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6056f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"anyAttribute", TestObjectPythonV8Internal::anyAttributeAttributeGetterCallback, TestObjectPythonV8Internal::anyAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
605719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"promiseAttribute", TestObjectPythonV8Internal::promiseAttributeAttributeGetterCallback, TestObjectPythonV8Internal::promiseAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6058f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"documentAttribute", TestObjectPythonV8Internal::documentAttributeAttributeGetterCallback, TestObjectPythonV8Internal::documentAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6059f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"documentFragmentAttribute", TestObjectPythonV8Internal::documentFragmentAttributeAttributeGetterCallback, TestObjectPythonV8Internal::documentFragmentAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6060f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"documentTypeAttribute", TestObjectPythonV8Internal::documentTypeAttributeAttributeGetterCallback, TestObjectPythonV8Internal::documentTypeAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6061f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"elementAttribute", TestObjectPythonV8Internal::elementAttributeAttributeGetterCallback, TestObjectPythonV8Internal::elementAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6062f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"entityAttribute", TestObjectPythonV8Internal::entityAttributeAttributeGetterCallback, TestObjectPythonV8Internal::entityAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6063f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"nodeAttribute", TestObjectPythonV8Internal::nodeAttributeAttributeGetterCallback, TestObjectPythonV8Internal::nodeAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6064f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"shadowRootAttribute", TestObjectPythonV8Internal::shadowRootAttributeAttributeGetterCallback, TestObjectPythonV8Internal::shadowRootAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6065f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"arrayBufferAttribute", TestObjectPythonV8Internal::arrayBufferAttributeAttributeGetterCallback, TestObjectPythonV8Internal::arrayBufferAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6066f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"float32ArrayAttribute", TestObjectPythonV8Internal::float32ArrayAttributeAttributeGetterCallback, TestObjectPythonV8Internal::float32ArrayAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6067f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"uint8ArrayAttribute", TestObjectPythonV8Internal::uint8ArrayAttributeAttributeGetterCallback, TestObjectPythonV8Internal::uint8ArrayAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6068f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"testInterfaceEmptyAttribute", TestObjectPythonV8Internal::testInterfaceEmptyAttributeAttributeGetterCallback, TestObjectPythonV8Internal::testInterfaceEmptyAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6069f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"self", TestObjectPythonV8Internal::selfAttributeGetterCallback, TestObjectPythonV8Internal::selfAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6070f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"readonlyWindowAttribute", TestObjectPythonV8Internal::readonlyWindowAttributeAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6071f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"htmlCollectionAttribute", TestObjectPythonV8Internal::htmlCollectionAttributeAttributeGetterCallback, TestObjectPythonV8Internal::htmlCollectionAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6072f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"htmlElementAttribute", TestObjectPythonV8Internal::htmlElementAttributeAttributeGetterCallback, TestObjectPythonV8Internal::htmlElementAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6073f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"stringArrayAttribute", TestObjectPythonV8Internal::stringArrayAttributeAttributeGetterCallback, TestObjectPythonV8Internal::stringArrayAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6074f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"testInterfaceEmptyArrayAttribute", TestObjectPythonV8Internal::testInterfaceEmptyArrayAttributeAttributeGetterCallback, TestObjectPythonV8Internal::testInterfaceEmptyArrayAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6075f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"floatArrayAttribute", TestObjectPythonV8Internal::floatArrayAttributeAttributeGetterCallback, TestObjectPythonV8Internal::floatArrayAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6076f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"nullableStringAttribute", TestObjectPythonV8Internal::nullableStringAttributeAttributeGetterCallback, TestObjectPythonV8Internal::nullableStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6077f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"nullableLongAttribute", TestObjectPythonV8Internal::nullableLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::nullableLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6078f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"testEnumAttribute", TestObjectPythonV8Internal::testEnumAttributeAttributeGetterCallback, TestObjectPythonV8Internal::testEnumAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6079f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"testObjectAConstructorAttribute", TestObjectPythonV8Internal::TestObjectPythonConstructorGetter, TestObjectPythonV8Internal::TestObjectPythonReplaceableAttributeSetterCallback, 0, 0, const_cast<WrapperTypeInfo*>(&V8TestObjectA::wrapperTypeInfo), static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::DontEnum), 0 /* on instance */},
6080f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"eventHandlerAttribute", TestObjectPythonV8Internal::eventHandlerAttributeAttributeGetterCallback, TestObjectPythonV8Internal::eventHandlerAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6081f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"activityLoggingAccessForAllWorldsLongAttribute", TestObjectPythonV8Internal::activityLoggingAccessForAllWorldsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::activityLoggingAccessForAllWorldsLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6082f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"activityLoggingGetterForAllWorldsLongAttribute", TestObjectPythonV8Internal::activityLoggingGetterForAllWorldsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::activityLoggingGetterForAllWorldsLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6083f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"activityLoggingSetterForAllWorldsLongAttribute", TestObjectPythonV8Internal::activityLoggingSetterForAllWorldsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::activityLoggingSetterForAllWorldsLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6084f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"cachedAttributeAnyAttribute", TestObjectPythonV8Internal::cachedAttributeAnyAttributeAttributeGetterCallback, TestObjectPythonV8Internal::cachedAttributeAnyAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6085f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"callWithExecutionContextAnyAttribute", TestObjectPythonV8Internal::callWithExecutionContextAnyAttributeAttributeGetterCallback, TestObjectPythonV8Internal::callWithExecutionContextAnyAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6086f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"checkSecurityForNodeReadonlyDocumentAttribute", TestObjectPythonV8Internal::checkSecurityForNodeReadonlyDocumentAttributeAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
608751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
6088f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"conditionalLongAttribute", TestObjectPythonV8Internal::conditionalLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::conditionalLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
608951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
609051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
6091f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"conditionalAndLongAttribute", TestObjectPythonV8Internal::conditionalAndLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::conditionalAndLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
609251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
609351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) || ENABLE(CONDITION_2)
6094f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"conditionalOrLongAttribute", TestObjectPythonV8Internal::conditionalOrLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::conditionalOrLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
609551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) || ENABLE(CONDITION_2)
609651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"customObjectAttribute", TestObjectPythonV8Internal::customObjectAttributeAttributeGetterCallback, TestObjectPythonV8Internal::customObjectAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6097f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"customGetterLongAttribute", TestObjectPythonV8Internal::customGetterLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::customGetterLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
609851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"customGetterReadonlyObjectAttribute", TestObjectPythonV8Internal::customGetterReadonlyObjectAttributeAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6099f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"customSetterLongAttribute", TestObjectPythonV8Internal::customSetterLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::customSetterLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
610051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
6101f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"customLongAttribute", TestObjectPythonV8Internal::customLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::customLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
610251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
6103f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"customElementsCallbacksReadonlyLongAttribute", TestObjectPythonV8Internal::customElementsCallbacksReadonlyLongAttributeAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6104f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"deprecatedLongAttribute", TestObjectPythonV8Internal::deprecatedLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::deprecatedLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6105f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"enforceRangeLongAttribute", TestObjectPythonV8Internal::enforceRangeLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::enforceRangeLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6106f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"getterRaisesExceptionLongAttribute", TestObjectPythonV8Internal::getterRaisesExceptionLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::getterRaisesExceptionLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6107f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"implementedAsLongAttribute", TestObjectPythonV8Internal::implementedAsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::implementedAsLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6108f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"customImplementedAsLongAttribute", TestObjectPythonV8Internal::customImplementedAsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::customImplementedAsLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6109f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"customGetterImplementedAsLongAttribute", TestObjectPythonV8Internal::customGetterImplementedAsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::customGetterImplementedAsLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6110f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"customSetterImplementedAsLongAttribute", TestObjectPythonV8Internal::customSetterImplementedAsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::customSetterImplementedAsLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6111f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"measureAsLongAttribute", TestObjectPythonV8Internal::measureAsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::measureAsLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6112f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"notEnumerableLongAttribute", TestObjectPythonV8Internal::notEnumerableLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::notEnumerableLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::DontEnum), 0 /* on instance */},
6113f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"perWorldBindingsLongAttribute", TestObjectPythonV8Internal::perWorldBindingsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::perWorldBindingsLongAttributeAttributeSetterCallback, TestObjectPythonV8Internal::perWorldBindingsLongAttributeAttributeGetterCallbackForMainWorld, TestObjectPythonV8Internal::perWorldBindingsLongAttributeAttributeSetterCallbackForMainWorld, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6114f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"perWorldBindingsReadonlyLongAttribute", TestObjectPythonV8Internal::perWorldBindingsReadonlyLongAttributeAttributeGetterCallback, 0, TestObjectPythonV8Internal::perWorldBindingsReadonlyLongAttributeAttributeGetterCallbackForMainWorld, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6115f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"activityLoggingAccessPerWorldBindingsLongAttribute", TestObjectPythonV8Internal::activityLoggingAccessPerWorldBindingsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::activityLoggingAccessPerWorldBindingsLongAttributeAttributeSetterCallback, TestObjectPythonV8Internal::activityLoggingAccessPerWorldBindingsLongAttributeAttributeGetterCallbackForMainWorld, TestObjectPythonV8Internal::activityLoggingAccessPerWorldBindingsLongAttributeAttributeSetterCallbackForMainWorld, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6116f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttribute", TestObjectPythonV8Internal::activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetterCallback, TestObjectPythonV8Internal::activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetterCallbackForMainWorld, TestObjectPythonV8Internal::activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetterCallbackForMainWorld, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6117f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"activityLoggingGetterPerWorldBindingsLongAttribute", TestObjectPythonV8Internal::activityLoggingGetterPerWorldBindingsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::activityLoggingGetterPerWorldBindingsLongAttributeAttributeSetterCallback, TestObjectPythonV8Internal::activityLoggingGetterPerWorldBindingsLongAttributeAttributeGetterCallbackForMainWorld, TestObjectPythonV8Internal::activityLoggingGetterPerWorldBindingsLongAttributeAttributeSetterCallbackForMainWorld, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6118f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttribute", TestObjectPythonV8Internal::activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetterCallback, TestObjectPythonV8Internal::activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeGetterCallbackForMainWorld, TestObjectPythonV8Internal::activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttributeAttributeSetterCallbackForMainWorld, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6119f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"raisesExceptionLongAttribute", TestObjectPythonV8Internal::raisesExceptionLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::raisesExceptionLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6120f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"reflectTestInterfaceAttribute", TestObjectPythonV8Internal::reflectTestInterfaceAttributeAttributeGetterCallback, TestObjectPythonV8Internal::reflectTestInterfaceAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6121f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"reflectReflectedNameAttributeTestAttribute", TestObjectPythonV8Internal::reflectReflectedNameAttributeTestAttributeAttributeGetterCallback, TestObjectPythonV8Internal::reflectReflectedNameAttributeTestAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6122f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"reflectBooleanAttribute", TestObjectPythonV8Internal::reflectBooleanAttributeAttributeGetterCallback, TestObjectPythonV8Internal::reflectBooleanAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6123f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"reflectLongAttribute", TestObjectPythonV8Internal::reflectLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::reflectLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6124f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"reflectUnsignedShortAttribute", TestObjectPythonV8Internal::reflectUnsignedShortAttributeAttributeGetterCallback, TestObjectPythonV8Internal::reflectUnsignedShortAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6125f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"reflectUnsignedLongAttribute", TestObjectPythonV8Internal::reflectUnsignedLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::reflectUnsignedLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6126f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"id", TestObjectPythonV8Internal::idAttributeGetterCallback, TestObjectPythonV8Internal::idAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6127f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"name", TestObjectPythonV8Internal::nameAttributeGetterCallback, TestObjectPythonV8Internal::nameAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6128f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"class", TestObjectPythonV8Internal::classAttributeGetterCallback, TestObjectPythonV8Internal::classAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6129f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"reflectedId", TestObjectPythonV8Internal::reflectedIdAttributeGetterCallback, TestObjectPythonV8Internal::reflectedIdAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6130f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"reflectedName", TestObjectPythonV8Internal::reflectedNameAttributeGetterCallback, TestObjectPythonV8Internal::reflectedNameAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6131f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"reflectedClass", TestObjectPythonV8Internal::reflectedClassAttributeGetterCallback, TestObjectPythonV8Internal::reflectedClassAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6132f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"replaceableReadonlyLongAttribute", TestObjectPythonV8Internal::replaceableReadonlyLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::TestObjectPythonReplaceableAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6133f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"setterCallWithActiveWindowAndFirstWindowStringAttribute", TestObjectPythonV8Internal::setterCallWithActiveWindowAndFirstWindowStringAttributeAttributeGetterCallback, TestObjectPythonV8Internal::setterCallWithActiveWindowAndFirstWindowStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6134f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"setterRaisesExceptionLongAttribute", TestObjectPythonV8Internal::setterRaisesExceptionLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::setterRaisesExceptionLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6135f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"strictTypeCheckingFloatAttribute", TestObjectPythonV8Internal::strictTypeCheckingFloatAttributeAttributeGetterCallback, TestObjectPythonV8Internal::strictTypeCheckingFloatAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6136f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"strictTypeCheckingTestInterfaceAttribute", TestObjectPythonV8Internal::strictTypeCheckingTestInterfaceAttributeAttributeGetterCallback, TestObjectPythonV8Internal::strictTypeCheckingTestInterfaceAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6137f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"treatNullAsNullStringStringAttribute", TestObjectPythonV8Internal::treatNullAsNullStringStringAttributeAttributeGetterCallback, TestObjectPythonV8Internal::treatNullAsNullStringStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6138f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"treatReturnedNullStringAsNullStringAttribute", TestObjectPythonV8Internal::treatReturnedNullStringAsNullStringAttributeAttributeGetterCallback, TestObjectPythonV8Internal::treatReturnedNullStringAsNullStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6139f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"treatReturnedNullStringAsUndefinedStringAttribute", TestObjectPythonV8Internal::treatReturnedNullStringAsUndefinedStringAttributeAttributeGetterCallback, TestObjectPythonV8Internal::treatReturnedNullStringAsUndefinedStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6140f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"urlStringAttribute", TestObjectPythonV8Internal::urlStringAttributeAttributeGetterCallback, TestObjectPythonV8Internal::urlStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6141f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"urlStringAttribute", TestObjectPythonV8Internal::urlStringAttributeAttributeGetterCallback, TestObjectPythonV8Internal::urlStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
6142f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"unforgeableLongAttribute", TestObjectPythonV8Internal::unforgeableLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::unforgeableLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::PROHIBITS_OVERWRITING), static_cast<v8::PropertyAttribute>(v8::DontDelete), 0 /* on instance */},
6143f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)};
6144f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
614551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static const V8DOMConfiguration::AccessorConfiguration V8TestObjectPythonAccessors[] = {
614651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"exposeJSAccessorsLongAttribute", TestObjectPythonV8Internal::exposeJSAccessorsLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::exposeJSAccessorsLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None)},
614751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)};
614851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
6149f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)static const V8DOMConfiguration::MethodConfiguration V8TestObjectPythonMethods[] = {
6150f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethod", TestObjectPythonV8Internal::voidMethodMethodCallback, 0, 0},
6151f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"dateMethod", TestObjectPythonV8Internal::dateMethodMethodCallback, 0, 0},
6152f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"stringMethod", TestObjectPythonV8Internal::stringMethodMethodCallback, 0, 0},
6153f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"readonlyDOMTimeStampMethod", TestObjectPythonV8Internal::readonlyDOMTimeStampMethodMethodCallback, 0, 0},
6154f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"booleanMethod", TestObjectPythonV8Internal::booleanMethodMethodCallback, 0, 0},
6155f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"byteMethod", TestObjectPythonV8Internal::byteMethodMethodCallback, 0, 0},
6156f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"doubleMethod", TestObjectPythonV8Internal::doubleMethodMethodCallback, 0, 0},
6157f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"floatMethod", TestObjectPythonV8Internal::floatMethodMethodCallback, 0, 0},
6158f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"longMethod", TestObjectPythonV8Internal::longMethodMethodCallback, 0, 0},
6159f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"longLongMethod", TestObjectPythonV8Internal::longLongMethodMethodCallback, 0, 0},
6160f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"octetMethod", TestObjectPythonV8Internal::octetMethodMethodCallback, 0, 0},
6161f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"shortMethod", TestObjectPythonV8Internal::shortMethodMethodCallback, 0, 0},
6162f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"unsignedLongMethod", TestObjectPythonV8Internal::unsignedLongMethodMethodCallback, 0, 0},
6163f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"unsignedLongLongMethod", TestObjectPythonV8Internal::unsignedLongLongMethodMethodCallback, 0, 0},
6164f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"unsignedShortMethod", TestObjectPythonV8Internal::unsignedShortMethodMethodCallback, 0, 0},
6165f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodDateArg", TestObjectPythonV8Internal::voidMethodDateArgMethodCallback, 0, 1},
6166f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodStringArg", TestObjectPythonV8Internal::voidMethodStringArgMethodCallback, 0, 1},
6167f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodBooleanArg", TestObjectPythonV8Internal::voidMethodBooleanArgMethodCallback, 0, 1},
6168f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodByteArg", TestObjectPythonV8Internal::voidMethodByteArgMethodCallback, 0, 1},
6169f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodDoubleArg", TestObjectPythonV8Internal::voidMethodDoubleArgMethodCallback, 0, 1},
6170f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodFloatArg", TestObjectPythonV8Internal::voidMethodFloatArgMethodCallback, 0, 1},
6171f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodLongArg", TestObjectPythonV8Internal::voidMethodLongArgMethodCallback, 0, 1},
6172f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodLongLongArg", TestObjectPythonV8Internal::voidMethodLongLongArgMethodCallback, 0, 1},
6173f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodOctetArg", TestObjectPythonV8Internal::voidMethodOctetArgMethodCallback, 0, 1},
6174f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodShortArg", TestObjectPythonV8Internal::voidMethodShortArgMethodCallback, 0, 1},
6175f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodUnsignedLongArg", TestObjectPythonV8Internal::voidMethodUnsignedLongArgMethodCallback, 0, 1},
6176f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodUnsignedLongLongArg", TestObjectPythonV8Internal::voidMethodUnsignedLongLongArgMethodCallback, 0, 1},
6177f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodUnsignedShortArg", TestObjectPythonV8Internal::voidMethodUnsignedShortArgMethodCallback, 0, 1},
6178f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"testInterfaceEmptyMethod", TestObjectPythonV8Internal::testInterfaceEmptyMethodMethodCallback, 0, 0},
617919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"compareHowMethod", TestObjectPythonV8Internal::compareHowMethodMethodCallback, 0, 0},
618019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"anyMethod", TestObjectPythonV8Internal::anyMethodMethodCallback, 0, 0},
618119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodMediaQueryListListenerArg", TestObjectPythonV8Internal::voidMethodMediaQueryListListenerArgMethodCallback, 0, 1},
618219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodCompareHowArg", TestObjectPythonV8Internal::voidMethodCompareHowArgMethodCallback, 0, 1},
618319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodAnyArg", TestObjectPythonV8Internal::voidMethodAnyArgMethodCallback, 0, 1},
6184f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"arrayBufferMethod", TestObjectPythonV8Internal::arrayBufferMethodMethodCallback, 0, 0},
6185f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"arrayBufferViewMethod", TestObjectPythonV8Internal::arrayBufferViewMethodMethodCallback, 0, 0},
6186f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"float32ArrayMethod", TestObjectPythonV8Internal::float32ArrayMethodMethodCallback, 0, 0},
6187f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"int32ArrayMethod", TestObjectPythonV8Internal::int32ArrayMethodMethodCallback, 0, 0},
6188f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"uint8ArrayMethod", TestObjectPythonV8Internal::uint8ArrayMethodMethodCallback, 0, 0},
6189f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"longArrayMethod", TestObjectPythonV8Internal::longArrayMethodMethodCallback, 0, 0},
6190f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"stringArrayMethod", TestObjectPythonV8Internal::stringArrayMethodMethodCallback, 0, 0},
6191f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"testInterfaceEmptyArrayMethod", TestObjectPythonV8Internal::testInterfaceEmptyArrayMethodMethodCallback, 0, 0},
6192f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodArrayLongArg", TestObjectPythonV8Internal::voidMethodArrayLongArgMethodCallback, 0, 1},
6193f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodArrayStringArg", TestObjectPythonV8Internal::voidMethodArrayStringArgMethodCallback, 0, 1},
6194f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodArrayTestInterfaceEmptyArg", TestObjectPythonV8Internal::voidMethodArrayTestInterfaceEmptyArgMethodCallback, 0, 1},
6195f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"sequenceLongMethod", TestObjectPythonV8Internal::sequenceLongMethodMethodCallback, 0, 0},
6196f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"sequenceStringMethod", TestObjectPythonV8Internal::sequenceStringMethodMethodCallback, 0, 0},
6197f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"sequenceTestInterfaceEmptyMethod", TestObjectPythonV8Internal::sequenceTestInterfaceEmptyMethodMethodCallback, 0, 0},
6198f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodSequenceLongArg", TestObjectPythonV8Internal::voidMethodSequenceLongArgMethodCallback, 0, 1},
6199f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodSequenceStringArg", TestObjectPythonV8Internal::voidMethodSequenceStringArgMethodCallback, 0, 1},
6200f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodSequenceTestInterfaceEmptyArg", TestObjectPythonV8Internal::voidMethodSequenceTestInterfaceEmptyArgMethodCallback, 0, 1},
6201f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"testEnumMethod", TestObjectPythonV8Internal::testEnumMethodMethodCallback, 0, 0},
6202f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodTestEnumArg", TestObjectPythonV8Internal::voidMethodTestEnumArgMethodCallback, 0, 1},
620319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"dictionaryMethod", TestObjectPythonV8Internal::dictionaryMethodMethodCallback, 0, 0},
6204f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"nodeFilterMethod", TestObjectPythonV8Internal::nodeFilterMethodMethodCallback, 0, 0},
620519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"promiseMethod", TestObjectPythonV8Internal::promiseMethodMethodCallback, 0, 0},
6206f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"serializedScriptValueMethod", TestObjectPythonV8Internal::serializedScriptValueMethodMethodCallback, 0, 0},
6207f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"xPathNSResolverMethod", TestObjectPythonV8Internal::xPathNSResolverMethodMethodCallback, 0, 0},
620819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodDictionaryArg", TestObjectPythonV8Internal::voidMethodDictionaryArgMethodCallback, 0, 1},
6209f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodNodeFilterArg", TestObjectPythonV8Internal::voidMethodNodeFilterArgMethodCallback, 0, 1},
621019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodPromiseArg", TestObjectPythonV8Internal::voidMethodPromiseArgMethodCallback, 0, 1},
6211f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodSerializedScriptValueArg", TestObjectPythonV8Internal::voidMethodSerializedScriptValueArgMethodCallback, 0, 1},
621251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"voidMethodSequenceDictionaryArg", TestObjectPythonV8Internal::voidMethodSequenceDictionaryArgMethodCallback, 0, 1},
6213f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodStringArgLongArg", TestObjectPythonV8Internal::voidMethodStringArgLongArgMethodCallback, 0, 2},
6214f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodOptionalStringArg", TestObjectPythonV8Internal::voidMethodOptionalStringArgMethodCallback, 0, 0},
6215f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodOptionalTestInterfaceEmptyArg", TestObjectPythonV8Internal::voidMethodOptionalTestInterfaceEmptyArgMethodCallback, 0, 0},
6216f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodOptionalLongArg", TestObjectPythonV8Internal::voidMethodOptionalLongArgMethodCallback, 0, 0},
6217f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"stringMethodOptionalLongArg", TestObjectPythonV8Internal::stringMethodOptionalLongArgMethodCallback, 0, 0},
6218f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"testInterfaceEmptyMethodOptionalLongArg", TestObjectPythonV8Internal::testInterfaceEmptyMethodOptionalLongArgMethodCallback, 0, 0},
6219f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"longMethodOptionalLongArg", TestObjectPythonV8Internal::longMethodOptionalLongArgMethodCallback, 0, 0},
6220f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodLongArgOptionalLongArg", TestObjectPythonV8Internal::voidMethodLongArgOptionalLongArgMethodCallback, 0, 1},
6221f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodLongArgOptionalLongArgOptionalLongArg", TestObjectPythonV8Internal::voidMethodLongArgOptionalLongArgOptionalLongArgMethodCallback, 0, 1},
6222f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodLongArgOptionalTestInterfaceEmptyArg", TestObjectPythonV8Internal::voidMethodLongArgOptionalTestInterfaceEmptyArgMethodCallback, 0, 1},
6223f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodTestInterfaceEmptyArgOptionalLongArg", TestObjectPythonV8Internal::voidMethodTestInterfaceEmptyArgOptionalLongArgMethodCallback, 0, 1},
622451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"voidMethodOptionalDictionaryArg", TestObjectPythonV8Internal::voidMethodOptionalDictionaryArgMethodCallback, 0, 0},
6225f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodVariadicStringArg", TestObjectPythonV8Internal::voidMethodVariadicStringArgMethodCallback, 0, 1},
6226f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    {"voidMethodStringArgVariadicStringArg", TestObjectPythonV8Internal::voidMethodStringArgVariadicStringArgMethodCallback, 0, 2},
622751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"overloadedMethodA", TestObjectPythonV8Internal::overloadedMethodAMethodCallback, 0, 1},
622851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"overloadedMethodB", TestObjectPythonV8Internal::overloadedMethodBMethodCallback, 0, 1},
622951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"overloadedMethodC", TestObjectPythonV8Internal::overloadedMethodCMethodCallback, 0, 1},
623051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"overloadedMethodD", TestObjectPythonV8Internal::overloadedMethodDMethodCallback, 0, 1},
623151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"overloadedMethodE", TestObjectPythonV8Internal::overloadedMethodEMethodCallback, 0, 1},
623251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"overloadedMethodF", TestObjectPythonV8Internal::overloadedMethodFMethodCallback, 0, 1},
623351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"overloadedMethodG", TestObjectPythonV8Internal::overloadedMethodGMethodCallback, 0, 0},
623451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"overloadedPerWorldBindingsMethod", TestObjectPythonV8Internal::overloadedPerWorldBindingsMethodMethodCallback, TestObjectPythonV8Internal::overloadedPerWorldBindingsMethodMethodCallbackForMainWorld, 0},
623551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"addEventListener", TestObjectPythonV8Internal::addEventListenerMethodCallback, 0, 2},
623651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"removeEventListener", TestObjectPythonV8Internal::removeEventListenerMethodCallback, 0, 2},
623719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodClampUnsignedShortArg", TestObjectPythonV8Internal::voidMethodClampUnsignedShortArgMethodCallback, 0, 1},
623819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodClampUnsignedLongArg", TestObjectPythonV8Internal::voidMethodClampUnsignedLongArgMethodCallback, 0, 1},
623919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodDefaultUndefinedLongArg", TestObjectPythonV8Internal::voidMethodDefaultUndefinedLongArgMethodCallback, 0, 0},
624019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodDefaultUndefinedStringArg", TestObjectPythonV8Internal::voidMethodDefaultUndefinedStringArgMethodCallback, 0, 0},
624119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodDefaultNullStringStringArg", TestObjectPythonV8Internal::voidMethodDefaultNullStringStringArgMethodCallback, 0, 0},
624219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodEnforceRangeLongArg", TestObjectPythonV8Internal::voidMethodEnforceRangeLongArgMethodCallback, 0, 1},
624319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodTreatNullAsNullStringStringArg", TestObjectPythonV8Internal::voidMethodTreatNullAsNullStringStringArgMethodCallback, 0, 1},
624419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    {"voidMethodTreatNullAsNullStringTreatUndefinedAsNullStringStringArg", TestObjectPythonV8Internal::voidMethodTreatNullAsNullStringTreatUndefinedAsNullStringStringArgMethodCallback, 0, 1},
624551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"activityLoggingAccessForAllWorldsMethod", TestObjectPythonV8Internal::activityLoggingAccessForAllWorldsMethodMethodCallback, 0, 0},
624651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"callWithScriptStateVoidMethod", TestObjectPythonV8Internal::callWithScriptStateVoidMethodMethodCallback, 0, 0},
624751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"callWithScriptStateLongMethod", TestObjectPythonV8Internal::callWithScriptStateLongMethodMethodCallback, 0, 0},
624851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"callWithExecutionContextVoidMethod", TestObjectPythonV8Internal::callWithExecutionContextVoidMethodMethodCallback, 0, 0},
624951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"callWithScriptStateExecutionContextVoidMethod", TestObjectPythonV8Internal::callWithScriptStateExecutionContextVoidMethodMethodCallback, 0, 0},
625051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"callWithScriptStateScriptArgumentsVoidMethod", TestObjectPythonV8Internal::callWithScriptStateScriptArgumentsVoidMethodMethodCallback, 0, 0},
625151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"callWithScriptStateScriptArgumentsVoidMethodOptionalBooleanArg", TestObjectPythonV8Internal::callWithScriptStateScriptArgumentsVoidMethodOptionalBooleanArgMethodCallback, 0, 0},
625251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"callWithActiveWindow", TestObjectPythonV8Internal::callWithActiveWindowMethodCallback, 0, 0},
625351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"callWithActiveWindowScriptWindow", TestObjectPythonV8Internal::callWithActiveWindowScriptWindowMethodCallback, 0, 0},
625451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"checkSecurityForNodeVoidMethod", TestObjectPythonV8Internal::checkSecurityForNodeVoidMethodMethodCallback, 0, 0},
625551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
625651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"conditionalConditionVoidMethod", TestObjectPythonV8Internal::conditionalConditionVoidMethodMethodCallback, 0, 0},
625751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
625851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
625951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"conditionalCondition1AndCondition2VoidMethod", TestObjectPythonV8Internal::conditionalCondition1AndCondition2VoidMethodMethodCallback, 0, 0},
626051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION_1) && ENABLE(CONDITION_2)
626151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"customVoidMethod", TestObjectPythonV8Internal::customVoidMethodMethodCallback, 0, 0},
626251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
626351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"conditionalConditionCustomVoidMethod", TestObjectPythonV8Internal::conditionalConditionCustomVoidMethodMethodCallback, 0, 0},
626451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
626551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"customElementCallbacksVoidMethod", TestObjectPythonV8Internal::customElementCallbacksVoidMethodMethodCallback, 0, 0},
626651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"deprecatedVoidMethod", TestObjectPythonV8Internal::deprecatedVoidMethodMethodCallback, 0, 0},
626751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"implementedAsVoidMethod", TestObjectPythonV8Internal::implementedAsVoidMethodMethodCallback, 0, 0},
626851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"measureAsVoidMethod", TestObjectPythonV8Internal::measureAsVoidMethodMethodCallback, 0, 0},
626951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"perWorldBindingsVoidMethod", TestObjectPythonV8Internal::perWorldBindingsVoidMethodMethodCallback, TestObjectPythonV8Internal::perWorldBindingsVoidMethodMethodCallbackForMainWorld, 0},
627051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"activityLoggingForAllWorldsPerWorldBindingsVoidMethod", TestObjectPythonV8Internal::activityLoggingForAllWorldsPerWorldBindingsVoidMethodMethodCallback, TestObjectPythonV8Internal::activityLoggingForAllWorldsPerWorldBindingsVoidMethodMethodCallbackForMainWorld, 0},
627151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethod", TestObjectPythonV8Internal::activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethodMethodCallback, TestObjectPythonV8Internal::activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethodMethodCallbackForMainWorld, 0},
627251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"raisesExceptionVoidMethod", TestObjectPythonV8Internal::raisesExceptionVoidMethodMethodCallback, 0, 0},
627351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"raisesExceptionVoidMethodOptionalLongArg", TestObjectPythonV8Internal::raisesExceptionVoidMethodOptionalLongArgMethodCallback, 0, 0},
627451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"strictTypeCheckingVoidMethodTestInterfaceEmptyArg", TestObjectPythonV8Internal::strictTypeCheckingVoidMethodTestInterfaceEmptyArgMethodCallback, 0, 1},
627551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"treatReturnedNullStringAsNullStringMethod", TestObjectPythonV8Internal::treatReturnedNullStringAsNullStringMethodMethodCallback, 0, 0},
627651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    {"treatReturnedNullStringAsUndefinedStringMethod", TestObjectPythonV8Internal::treatReturnedNullStringAsUndefinedStringMethodMethodCallback, 0, 0},
6277f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)};
6278f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
627951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)static v8::Handle<v8::FunctionTemplate> ConfigureV8TestObjectPythonTemplate(v8::Handle<v8::FunctionTemplate> functionTemplate, v8::Isolate* isolate, WrapperWorldType currentWorldType)
628006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
628151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    functionTemplate->ReadOnlyPrototype();
628206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
628306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    v8::Local<v8::Signature> defaultSignature;
628451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    defaultSignature = V8DOMConfiguration::installDOMClassTemplate(functionTemplate, "TestObjectPython", v8::Local<v8::FunctionTemplate>(), V8TestObjectPython::internalFieldCount,
628506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)        V8TestObjectPythonAttributes, WTF_ARRAY_LENGTH(V8TestObjectPythonAttributes),
628651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        V8TestObjectPythonAccessors, WTF_ARRAY_LENGTH(V8TestObjectPythonAccessors),
628719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        V8TestObjectPythonMethods, WTF_ARRAY_LENGTH(V8TestObjectPythonMethods),
628819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)        isolate, currentWorldType);
6289a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Local<v8::ObjectTemplate> ALLOW_UNUSED instanceTemplate = functionTemplate->InstanceTemplate();
6290a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Local<v8::ObjectTemplate> ALLOW_UNUSED prototypeTemplate = functionTemplate->PrototypeTemplate();
62911e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    if (RuntimeEnabledFeatures::featureNameEnabled()) {
62921e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)        static const V8DOMConfiguration::AttributeConfiguration attributeConfiguration =\
6293bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        {"runtimeEnabledLongAttribute", TestObjectPythonV8Internal::runtimeEnabledLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::runtimeEnabledLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */};
629451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        V8DOMConfiguration::installAttribute(instanceTemplate, prototypeTemplate, attributeConfiguration, isolate, currentWorldType);
62951e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    }
629651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
62971e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    if (RuntimeEnabledFeatures::featureNameEnabled()) {
62981e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)        static const V8DOMConfiguration::AttributeConfiguration attributeConfiguration =\
629951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        {"conditionalRuntimeEnabledLongAttribute", TestObjectPythonV8Internal::conditionalRuntimeEnabledLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::conditionalRuntimeEnabledLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */};
630051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        V8DOMConfiguration::installAttribute(instanceTemplate, prototypeTemplate, attributeConfiguration, isolate, currentWorldType);
63011e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    }
630251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
6303a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    static const V8DOMConfiguration::ConstantConfiguration V8TestObjectPythonConstants[] = {
6304a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_0", 0},
6305a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_1", 1},
6306a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_2", 2},
6307a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_4", 4},
6308a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_8", 8},
6309a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_9", -1},
6310a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_10", "my constant string"},
6311a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_11", 0xffffffff},
6312a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_12", 0x01},
6313a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_13", 0X20},
6314a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_14", 0x1abc},
6315a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_15", 010},
6316a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_16", -010},
6317a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_16", -0x1A},
6318a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_VALUE_17", -0X1a},
6319a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"DEPRECATED_CONSTANT", 1},
6320a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        {"CONST_JAVASCRIPT", 1},
6321a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    };
6322a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    V8DOMConfiguration::installConstants(functionTemplate, prototypeTemplate, V8TestObjectPythonConstants, WTF_ARRAY_LENGTH(V8TestObjectPythonConstants), isolate);
6323a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    if (RuntimeEnabledFeatures::featureNameEnabled()) {
6324a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        static const V8DOMConfiguration::ConstantConfiguration constantConfiguration = {"FEATURE_ENABLED_CONST", static_cast<signed int>(1)};
6325a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        V8DOMConfiguration::installConstants(functionTemplate, prototypeTemplate, &constantConfiguration, 1, isolate);
6326a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    }
6327a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(0 == TestObjectPython::CONST_VALUE_0, TheValueOfTestObjectPython_CONST_VALUE_0DoesntMatchWithImplementation);
6328a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(1 == TestObjectPython::CONST_VALUE_1, TheValueOfTestObjectPython_CONST_VALUE_1DoesntMatchWithImplementation);
6329a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(2 == TestObjectPython::CONST_VALUE_2, TheValueOfTestObjectPython_CONST_VALUE_2DoesntMatchWithImplementation);
6330a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(4 == TestObjectPython::CONST_VALUE_4, TheValueOfTestObjectPython_CONST_VALUE_4DoesntMatchWithImplementation);
6331a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(8 == TestObjectPython::CONST_VALUE_8, TheValueOfTestObjectPython_CONST_VALUE_8DoesntMatchWithImplementation);
6332a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(-1 == TestObjectPython::CONST_VALUE_9, TheValueOfTestObjectPython_CONST_VALUE_9DoesntMatchWithImplementation);
6333a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT("my constant string" == TestObjectPython::CONST_VALUE_10, TheValueOfTestObjectPython_CONST_VALUE_10DoesntMatchWithImplementation);
6334a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(0xffffffff == TestObjectPython::CONST_VALUE_11, TheValueOfTestObjectPython_CONST_VALUE_11DoesntMatchWithImplementation);
6335a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(0x01 == TestObjectPython::CONST_VALUE_12, TheValueOfTestObjectPython_CONST_VALUE_12DoesntMatchWithImplementation);
6336a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(0X20 == TestObjectPython::CONST_VALUE_13, TheValueOfTestObjectPython_CONST_VALUE_13DoesntMatchWithImplementation);
6337a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(0x1abc == TestObjectPython::CONST_VALUE_14, TheValueOfTestObjectPython_CONST_VALUE_14DoesntMatchWithImplementation);
6338a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(010 == TestObjectPython::CONST_VALUE_15, TheValueOfTestObjectPython_CONST_VALUE_15DoesntMatchWithImplementation);
6339a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(-010 == TestObjectPython::CONST_VALUE_16, TheValueOfTestObjectPython_CONST_VALUE_16DoesntMatchWithImplementation);
6340a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(-0x1A == TestObjectPython::CONST_VALUE_16, TheValueOfTestObjectPython_CONST_VALUE_16DoesntMatchWithImplementation);
6341a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(-0X1a == TestObjectPython::CONST_VALUE_17, TheValueOfTestObjectPython_CONST_VALUE_17DoesntMatchWithImplementation);
6342a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(1 == TestObjectPython::DEPRECATED_CONSTANT, TheValueOfTestObjectPython_DEPRECATED_CONSTANTDoesntMatchWithImplementation);
6343a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(1 == TestObjectPython::FEATURE_ENABLED_CONST, TheValueOfTestObjectPython_FEATURE_ENABLED_CONSTDoesntMatchWithImplementation);
6344a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    COMPILE_ASSERT(1 == TestObjectPython::CONST_IMPL, TheValueOfTestObjectPython_CONST_IMPLDoesntMatchWithImplementation);
6345a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    functionTemplate->Set(v8::String::NewFromUtf8(isolate, "staticVoidMethod", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::staticVoidMethodMethodCallback, v8Undefined(), v8::Local<v8::Signature>(), 0));
6346f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6347f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodTestInterfaceEmptyArg'
6348f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodTestInterfaceEmptyArgArgc = 1;
6349a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodTestInterfaceEmptyArgArgv[voidMethodTestInterfaceEmptyArgArgc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8TestInterfaceEmpty::wrapperTypeInfo, currentWorldType) };
6350a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodTestInterfaceEmptyArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodTestInterfaceEmptyArgArgc, voidMethodTestInterfaceEmptyArgArgv);
6351a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodTestInterfaceEmptyArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodTestInterfaceEmptyArgMethodCallback, v8Undefined(), voidMethodTestInterfaceEmptyArgSignature, 1));
6352f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6353f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodLongArgTestInterfaceEmptyArg'
6354f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodLongArgTestInterfaceEmptyArgArgc = 2;
6355a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodLongArgTestInterfaceEmptyArgArgv[voidMethodLongArgTestInterfaceEmptyArgArgc] = { v8::Handle<v8::FunctionTemplate>(), V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8TestInterfaceEmpty::wrapperTypeInfo, currentWorldType) };
6356a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodLongArgTestInterfaceEmptyArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodLongArgTestInterfaceEmptyArgArgc, voidMethodLongArgTestInterfaceEmptyArgArgv);
6357a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodLongArgTestInterfaceEmptyArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodLongArgTestInterfaceEmptyArgMethodCallback, v8Undefined(), voidMethodLongArgTestInterfaceEmptyArgSignature, 2));
6358f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6359f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodAttrArg'
6360f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodAttrArgArgc = 1;
6361a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodAttrArgArgv[voidMethodAttrArgArgc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8Attr::wrapperTypeInfo, currentWorldType) };
6362a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodAttrArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodAttrArgArgc, voidMethodAttrArgArgv);
6363a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodAttrArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodAttrArgMethodCallback, v8Undefined(), voidMethodAttrArgSignature, 1));
6364f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6365f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodDocumentArg'
6366f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodDocumentArgArgc = 1;
6367a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodDocumentArgArgv[voidMethodDocumentArgArgc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8Document::wrapperTypeInfo, currentWorldType) };
6368a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodDocumentArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodDocumentArgArgc, voidMethodDocumentArgArgv);
6369a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodDocumentArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodDocumentArgMethodCallback, v8Undefined(), voidMethodDocumentArgSignature, 1));
6370f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6371f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodDocumentTypeArg'
6372f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodDocumentTypeArgArgc = 1;
6373a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodDocumentTypeArgArgv[voidMethodDocumentTypeArgArgc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8DocumentType::wrapperTypeInfo, currentWorldType) };
6374a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodDocumentTypeArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodDocumentTypeArgArgc, voidMethodDocumentTypeArgArgv);
6375a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodDocumentTypeArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodDocumentTypeArgMethodCallback, v8Undefined(), voidMethodDocumentTypeArgSignature, 1));
6376f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6377f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodElementArg'
6378f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodElementArgArgc = 1;
6379a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodElementArgArgv[voidMethodElementArgArgc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8Element::wrapperTypeInfo, currentWorldType) };
6380a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodElementArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodElementArgArgc, voidMethodElementArgArgv);
6381a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodElementArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodElementArgMethodCallback, v8Undefined(), voidMethodElementArgSignature, 1));
6382f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6383f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodNodeArg'
6384f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodNodeArgArgc = 1;
6385a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodNodeArgArgv[voidMethodNodeArgArgc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8Node::wrapperTypeInfo, currentWorldType) };
6386a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodNodeArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodNodeArgArgc, voidMethodNodeArgArgv);
6387a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodNodeArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodNodeArgMethodCallback, v8Undefined(), voidMethodNodeArgSignature, 1));
6388f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6389f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodArrayBufferArg'
6390f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodArrayBufferArgArgc = 1;
6391f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodArrayBufferArgArgv[voidMethodArrayBufferArgArgc] = { v8::Handle<v8::FunctionTemplate>() };
6392a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodArrayBufferArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodArrayBufferArgArgc, voidMethodArrayBufferArgArgv);
6393a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodArrayBufferArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodArrayBufferArgMethodCallback, v8Undefined(), voidMethodArrayBufferArgSignature, 1));
6394f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6395f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodArrayBufferViewArg'
6396f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodArrayBufferViewArgArgc = 1;
6397f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodArrayBufferViewArgArgv[voidMethodArrayBufferViewArgArgc] = { v8::Handle<v8::FunctionTemplate>() };
6398a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodArrayBufferViewArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodArrayBufferViewArgArgc, voidMethodArrayBufferViewArgArgv);
6399a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodArrayBufferViewArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodArrayBufferViewArgMethodCallback, v8Undefined(), voidMethodArrayBufferViewArgSignature, 1));
6400f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6401f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodFloat32ArrayArg'
6402f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodFloat32ArrayArgArgc = 1;
6403f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodFloat32ArrayArgArgv[voidMethodFloat32ArrayArgArgc] = { v8::Handle<v8::FunctionTemplate>() };
6404a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodFloat32ArrayArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodFloat32ArrayArgArgc, voidMethodFloat32ArrayArgArgv);
6405a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodFloat32ArrayArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodFloat32ArrayArgMethodCallback, v8Undefined(), voidMethodFloat32ArrayArgSignature, 1));
6406f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6407f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodInt32ArrayArg'
6408f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodInt32ArrayArgArgc = 1;
6409f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodInt32ArrayArgArgv[voidMethodInt32ArrayArgArgc] = { v8::Handle<v8::FunctionTemplate>() };
6410a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodInt32ArrayArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodInt32ArrayArgArgc, voidMethodInt32ArrayArgArgv);
6411a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodInt32ArrayArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodInt32ArrayArgMethodCallback, v8Undefined(), voidMethodInt32ArrayArgSignature, 1));
6412f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6413f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodUint8ArrayArg'
6414f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodUint8ArrayArgArgc = 1;
6415f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodUint8ArrayArgArgv[voidMethodUint8ArrayArgArgc] = { v8::Handle<v8::FunctionTemplate>() };
6416a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodUint8ArrayArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodUint8ArrayArgArgc, voidMethodUint8ArrayArgArgv);
6417a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodUint8ArrayArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodUint8ArrayArgMethodCallback, v8Undefined(), voidMethodUint8ArrayArgSignature, 1));
6418f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
641919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    // Custom Signature 'voidMethodNullableStringArg'
642019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    const int voidMethodNullableStringArgArgc = 1;
6421a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodNullableStringArgArgv[voidMethodNullableStringArgArgc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8TestInterfaceEmpty::wrapperTypeInfo, currentWorldType) };
6422a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodNullableStringArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodNullableStringArgArgc, voidMethodNullableStringArgArgv);
6423a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodNullableStringArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodNullableStringArgMethodCallback, v8Undefined(), voidMethodNullableStringArgSignature, 1));
6424f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6425f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodXPathNSResolverArg'
6426f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodXPathNSResolverArgArgc = 1;
6427f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodXPathNSResolverArgArgv[voidMethodXPathNSResolverArgArgc] = { v8::Handle<v8::FunctionTemplate>() };
6428a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodXPathNSResolverArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodXPathNSResolverArgArgc, voidMethodXPathNSResolverArgArgv);
6429a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodXPathNSResolverArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodXPathNSResolverArgMethodCallback, v8Undefined(), voidMethodXPathNSResolverArgSignature, 1));
6430f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6431f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodVariadicTestInterfaceEmptyArg'
6432f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodVariadicTestInterfaceEmptyArgArgc = 1;
6433a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodVariadicTestInterfaceEmptyArgArgv[voidMethodVariadicTestInterfaceEmptyArgArgc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8TestInterfaceEmpty::wrapperTypeInfo, currentWorldType) };
6434a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodVariadicTestInterfaceEmptyArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodVariadicTestInterfaceEmptyArgArgc, voidMethodVariadicTestInterfaceEmptyArgArgv);
6435a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodVariadicTestInterfaceEmptyArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodVariadicTestInterfaceEmptyArgMethodCallback, v8Undefined(), voidMethodVariadicTestInterfaceEmptyArgSignature, 1));
6436f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)
6437f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    // Custom Signature 'voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArg'
6438f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    const int voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgArgc = 2;
6439a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgArgv[voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgArgc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8TestInterfaceEmpty::wrapperTypeInfo, currentWorldType), V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8TestInterfaceEmpty::wrapperTypeInfo, currentWorldType) };
6440a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgArgc, voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgArgv);
6441a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgMethodCallback, v8Undefined(), voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgSignature, 2));
6442a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    functionTemplate->Set(v8::String::NewFromUtf8(isolate, "overloadedStaticMethod", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::overloadedStaticMethodMethodCallback, v8Undefined(), v8::Local<v8::Signature>(), 1));
644319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)
644419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    // Custom Signature 'voidMethodDefaultUndefinedTestInterfaceEmptyArg'
644519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    const int voidMethodDefaultUndefinedTestInterfaceEmptyArgArgc = 1;
6446a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> voidMethodDefaultUndefinedTestInterfaceEmptyArgArgv[voidMethodDefaultUndefinedTestInterfaceEmptyArgArgc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8TestInterfaceEmpty::wrapperTypeInfo, currentWorldType) };
6447a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> voidMethodDefaultUndefinedTestInterfaceEmptyArgSignature = v8::Signature::New(isolate, functionTemplate, voidMethodDefaultUndefinedTestInterfaceEmptyArgArgc, voidMethodDefaultUndefinedTestInterfaceEmptyArgArgv);
6448a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "voidMethodDefaultUndefinedTestInterfaceEmptyArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::voidMethodDefaultUndefinedTestInterfaceEmptyArgMethodCallback, v8Undefined(), voidMethodDefaultUndefinedTestInterfaceEmptyArgSignature, 0));
644951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#if ENABLE(CONDITION)
6450a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    functionTemplate->Set(v8::String::NewFromUtf8(isolate, "conditionalConditionStaticVoidMethod", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::conditionalConditionStaticVoidMethodMethodCallback, v8Undefined(), v8::Local<v8::Signature>(), 0));
645151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif // ENABLE(CONDITION)
6452a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "doNotCheckSignatureVoidMethod", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::doNotCheckSignatureVoidMethodMethodCallback, v8Undefined(), v8::Local<v8::Signature>(), 0));
6453a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "notEnumerableVoidMethod", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::notEnumerableVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0), static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::DontEnum));
645451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
645551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    // Custom Signature 'perWorldBindingsVoidMethodTestInterfaceEmptyArg'
645651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    const int perWorldBindingsVoidMethodTestInterfaceEmptyArgArgc = 1;
6457a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::FunctionTemplate> perWorldBindingsVoidMethodTestInterfaceEmptyArgArgv[perWorldBindingsVoidMethodTestInterfaceEmptyArgArgc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8TestInterfaceEmpty::wrapperTypeInfo, currentWorldType) };
6458a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Handle<v8::Signature> perWorldBindingsVoidMethodTestInterfaceEmptyArgSignature = v8::Signature::New(isolate, functionTemplate, perWorldBindingsVoidMethodTestInterfaceEmptyArgArgc, perWorldBindingsVoidMethodTestInterfaceEmptyArgArgv);
645951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (currentWorldType == MainWorld) {
6460a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "perWorldBindingsVoidMethodTestInterfaceEmptyArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::perWorldBindingsVoidMethodTestInterfaceEmptyArgMethodCallbackForMainWorld, v8Undefined(), perWorldBindingsVoidMethodTestInterfaceEmptyArgSignature, 1));
646151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    } else {
6462a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "perWorldBindingsVoidMethodTestInterfaceEmptyArg", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::perWorldBindingsVoidMethodTestInterfaceEmptyArgMethodCallback, v8Undefined(), perWorldBindingsVoidMethodTestInterfaceEmptyArgSignature, 1));
646351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
6464a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "readOnlyVoidMethod", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::readOnlyVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0), static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::ReadOnly));
6465a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "notEnumerableReadOnlyVoidMethod", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::notEnumerableReadOnlyVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0), static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::DontEnum | v8::ReadOnly));
646651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (RuntimeEnabledFeatures::featureNameEnabled())
6467a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "runtimeEnabledVoidMethod", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::runtimeEnabledVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0));
646851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (currentWorldType == MainWorld) {
646951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (RuntimeEnabledFeatures::featureNameEnabled())
6470a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)            prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "perWorldBindingsRuntimeEnabledVoidMethod", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::perWorldBindingsRuntimeEnabledVoidMethodMethodCallbackForMainWorld, v8Undefined(), defaultSignature, 0));
647151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    } else {
647251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        if (RuntimeEnabledFeatures::featureNameEnabled())
6473a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)            prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "perWorldBindingsRuntimeEnabledVoidMethod", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::perWorldBindingsRuntimeEnabledVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0));
647451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    }
6475a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    instanceTemplate->Set(v8::String::NewFromUtf8(isolate, "unforgeableVoidMethod", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::unforgeableVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0));
6476a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    functionTemplate->SetNativeDataProperty(v8::String::NewFromUtf8(isolate, "staticStringAttribute", v8::String::kInternalizedString), TestObjectPythonV8Internal::staticStringAttributeAttributeGetterCallback, TestObjectPythonV8Internal::staticStringAttributeAttributeSetterCallback, v8::External::New(isolate, 0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSignature>(), static_cast<v8::AccessControl>(v8::DEFAULT));
6477a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    functionTemplate->SetNativeDataProperty(v8::String::NewFromUtf8(isolate, "staticLongAttribute", v8::String::kInternalizedString), TestObjectPythonV8Internal::staticLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::staticLongAttributeAttributeSetterCallback, v8::External::New(isolate, 0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSignature>(), static_cast<v8::AccessControl>(v8::DEFAULT));
647806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
647906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    // Custom toString template
6480a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    functionTemplate->Set(v8::String::NewFromUtf8(isolate, "toString", v8::String::kInternalizedString), V8PerIsolateData::current()->toStringTemplate());
648151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    return functionTemplate;
648206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
648306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
6484a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)v8::Handle<v8::FunctionTemplate> V8TestObjectPython::domTemplate(v8::Isolate* isolate, WrapperWorldType currentWorldType)
648506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
648606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    V8PerIsolateData* data = V8PerIsolateData::from(isolate);
6487f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    V8PerIsolateData::TemplateMap::iterator result = data->templateMap(currentWorldType).find(&wrapperTypeInfo);
648806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    if (result != data->templateMap(currentWorldType).end())
648906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)        return result->value.newLocal(isolate);
649006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
649106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate");
6492a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::EscapableHandleScope handleScope(isolate);
6493a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Local<v8::FunctionTemplate> templ =
6494a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        ConfigureV8TestObjectPythonTemplate(data->rawDOMTemplate(&wrapperTypeInfo, currentWorldType), isolate, currentWorldType);
6495f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    data->templateMap(currentWorldType).add(&wrapperTypeInfo, UnsafePersistent<v8::FunctionTemplate>(isolate, templ));
6496a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    return handleScope.Escape(templ);
649706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
649806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
649951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)bool V8TestObjectPython::hasInstance(v8::Handle<v8::Value> jsValue, v8::Isolate* isolate, WrapperWorldType currentWorldType)
6500bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles){
6501f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    return V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValue, currentWorldType);
6502bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}
6503bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
650451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)bool V8TestObjectPython::hasInstanceInAnyWorld(v8::Handle<v8::Value> jsValue, v8::Isolate* isolate)
650506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
6506f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    return V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValue, MainWorld)
6507f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        || V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValue, IsolatedWorld)
6508f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        || V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValue, WorkerWorld);
650906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
651006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
651151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)void V8TestObjectPython::installPerContextEnabledProperties(v8::Handle<v8::Object> instanceTemplate, TestObjectPython* impl, v8::Isolate* isolate)
651206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
651351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    v8::Local<v8::Object> prototypeTemplate = v8::Local<v8::Object>::Cast(instanceTemplate->GetPrototype());
6514bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    if (ContextFeatures::featureNameEnabled(impl->document())) {
6515bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        static const V8DOMConfiguration::AttributeConfiguration attributeConfiguration =\
6516bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)        {"perContextEnabledLongAttribute", TestObjectPythonV8Internal::perContextEnabledLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::perContextEnabledLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */};
651751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        V8DOMConfiguration::installAttribute(instanceTemplate, prototypeTemplate, attributeConfiguration, isolate);
6518bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    }
651906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
652006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
652151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)void V8TestObjectPython::installPerContextEnabledMethods(v8::Handle<v8::Object> prototypeTemplate, v8::Isolate* isolate)
652251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
6523a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    v8::Local<v8::Signature> defaultSignature = v8::Signature::New(isolate, domTemplate(isolate, worldType(isolate)));
652451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
652551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    ExecutionContext* context = toExecutionContext(prototypeTemplate->CreationContext());
652651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    if (context && context->isDocument() && ContextFeatures::featureNameEnabled(toDocument(context)))
6527a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "perContextEnabledVoidMethod", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjectPythonV8Internal::perContextEnabledVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0)->GetFunction());
652851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
652951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
653006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)v8::Handle<v8::Object> V8TestObjectPython::createWrapper(PassRefPtr<TestObjectPython> impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
653106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
65321e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    ASSERT(impl);
653306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    ASSERT(!DOMDataStore::containsWrapper<V8TestObjectPython>(impl.get(), isolate));
653406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    if (ScriptWrappable::wrapperCanBeStoredInObject(impl.get())) {
653506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)        const WrapperTypeInfo* actualInfo = ScriptWrappable::getTypeInfoFromObject(impl.get());
6536f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        // Might be a XXXConstructor::wrapperTypeInfo instead of an XXX::wrapperTypeInfo. These will both have
653706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)        // the same object de-ref functions, though, so use that as the basis of the check.
6538f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)        RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(actualInfo->derefObjectFunction == wrapperTypeInfo.derefObjectFunction);
653906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    }
654006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
6541f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    v8::Handle<v8::Object> wrapper = V8DOMWrapper::createWrapper(creationContext, &wrapperTypeInfo, toInternalPointer(impl.get()), isolate);
654206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    if (UNLIKELY(wrapper.IsEmpty()))
654306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)        return wrapper;
654406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
6545bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)    installPerContextEnabledProperties(wrapper, impl.get(), isolate);
6546f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    V8DOMWrapper::associateObjectWithWrapper<V8TestObjectPython>(impl, &wrapperTypeInfo, wrapper, isolate, WrapperConfiguration::Independent);
654706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    return wrapper;
654806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
654906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
655006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)void V8TestObjectPython::derefObject(void* object)
655106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles){
655206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    fromInternalPointer(object)->deref();
655306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)}
655406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
655551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)template<>
655651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)v8::Handle<v8::Value> toV8NoInline(TestObjectPython* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
655751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles){
655851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    return toV8(impl, creationContext, isolate);
655951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}
656051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)
656106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)} // namespace WebCore
6562