Index: Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp |
diff --git a/Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp b/Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7755b5324303d05ec6807280bd93bcb349141e43 |
--- /dev/null |
+++ b/Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp |
@@ -0,0 +1,322 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// This file has been auto-generated by code_generator_v8.py. DO NOT MODIFY! |
+ |
+#include "config.h" |
+#if ENABLE(CONDITION) |
+#include "V8TestInterfacePartial.h" |
+ |
+#include "bindings/core/v8/ExceptionState.h" |
+#include "bindings/core/v8/PrivateScriptRunner.h" |
+#include "bindings/core/v8/ScriptValue.h" |
+#include "bindings/core/v8/V8DOMConfiguration.h" |
+#include "bindings/core/v8/V8HiddenValue.h" |
+#include "bindings/core/v8/V8Node.h" |
+#include "bindings/core/v8/V8ObjectConstructor.h" |
+#include "bindings/core/v8/V8TestInterface.h" |
+#include "bindings/core/v8/V8TestInterfaceEmpty.h" |
+#include "bindings/tests/idls/modules/TestPartialInterfaceImplementation3.h" |
+#include "core/dom/ContextFeatures.h" |
+#include "core/dom/Document.h" |
+#include "core/frame/LocalFrame.h" |
+#include "platform/RuntimeEnabledFeatures.h" |
+#include "platform/ScriptForbiddenScope.h" |
+#include "platform/TraceEvent.h" |
+#include "wtf/GetPtr.h" |
+#include "wtf/RefPtr.h" |
+ |
+namespace blink { |
+ |
+namespace TestPartialInterfaceImplementation3PartialV8Internal { |
+ |
+static void partial3LongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info) |
+{ |
+ v8::Handle<v8::Object> holder = info.Holder(); |
+ TestPartialInterfaceImplementation3* impl = V8TestInterface::toImpl(holder); |
+ v8SetReturnValueInt(info, TestPartialInterfaceImplementation3::partial3LongAttribute(*impl)); |
+} |
+ |
+static void partial3LongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) |
+{ |
+ TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); |
+ TestPartialInterfaceImplementation3PartialV8Internal::partial3LongAttributeAttributeGetter(info); |
+ TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); |
+} |
+ |
+static void partial3LongAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) |
+{ |
+ v8::Handle<v8::Object> holder = info.Holder(); |
+ ExceptionState exceptionState(ExceptionState::SetterContext, "partial3LongAttribute", "TestInterface", holder, info.GetIsolate()); |
+ TestPartialInterfaceImplementation3* impl = V8TestInterface::toImpl(holder); |
+ TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState), exceptionState); |
+ TestPartialInterfaceImplementation3::setPartial3LongAttribute(*impl, cppValue); |
+} |
+ |
+static void partial3LongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) |
+{ |
+ TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); |
+ TestPartialInterfaceImplementation3PartialV8Internal::partial3LongAttributeAttributeSetter(v8Value, info); |
+ TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); |
+} |
+ |
+static void partial3StaticLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info) |
+{ |
+ v8SetReturnValueInt(info, TestPartialInterfaceImplementation3::partial3StaticLongAttribute()); |
+} |
+ |
+static void partial3StaticLongAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) |
+{ |
+ TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); |
+ TestPartialInterfaceImplementation3PartialV8Internal::partial3StaticLongAttributeAttributeGetter(info); |
+ TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); |
+} |
+ |
+static void partial3StaticLongAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) |
+{ |
+ ExceptionState exceptionState(ExceptionState::SetterContext, "partial3StaticLongAttribute", "TestInterface", holder, info.GetIsolate()); |
+ TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState), exceptionState); |
+ TestPartialInterfaceImplementation3::setPartial3StaticLongAttribute(cppValue); |
+} |
+ |
+static void partial3StaticLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) |
+{ |
+ TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); |
+ TestPartialInterfaceImplementation3PartialV8Internal::partial3StaticLongAttributeAttributeSetter(v8Value, info); |
+ TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); |
+} |
+ |
+static void voidMethodPartialOverload3Method(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ TestPartialInterfaceImplementation3* impl = V8TestInterface::toImpl(info.Holder()); |
+ V8StringResource<> value; |
+ { |
+ TOSTRING_VOID_INTERNAL(value, info[0]); |
+ } |
+ TestPartialInterfaceImplementation3::voidMethodPartialOverload(*impl, value); |
+} |
+ |
+static void voidMethodPartialOverloadMethod(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethodPartialOverload", "TestInterface", info.Holder(), info.GetIsolate()); |
+ switch (std::min(1, info.Length())) { |
+ case 0: |
+ break; |
+ case 1: |
+ if (true) { |
+ voidMethodPartialOverload3Method(info); |
+ return; |
+ } |
+ break; |
+ default: |
+ exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(0, info.Length())); |
+ exceptionState.throwIfNeeded(); |
+ return; |
+ } |
+ exceptionState.throwTypeError("No function was found that matched the signature provided."); |
+ exceptionState.throwIfNeeded(); |
+} |
+ |
+static void staticVoidMethodPartialOverload2Method(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ V8StringResource<> value; |
+ { |
+ TOSTRING_VOID_INTERNAL(value, info[0]); |
+ } |
+ TestPartialInterfaceImplementation3::staticVoidMethodPartialOverload(value); |
+} |
+ |
+static void staticVoidMethodPartialOverloadMethod(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ ExceptionState exceptionState(ExceptionState::ExecutionContext, "staticVoidMethodPartialOverload", "TestInterface", info.Holder(), info.GetIsolate()); |
+ switch (std::min(1, info.Length())) { |
+ case 0: |
+ break; |
+ case 1: |
+ if (true) { |
+ staticVoidMethodPartialOverload2Method(info); |
+ return; |
+ } |
+ break; |
+ default: |
+ exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(0, info.Length())); |
+ exceptionState.throwIfNeeded(); |
+ return; |
+ } |
+ exceptionState.throwTypeError("No function was found that matched the signature provided."); |
+ exceptionState.throwIfNeeded(); |
+} |
+ |
+static void partial2VoidMethod2Method(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ TestPartialInterfaceImplementation3* impl = V8TestInterface::toImpl(info.Holder()); |
+ V8StringResource<> value; |
+ { |
+ TOSTRING_VOID_INTERNAL(value, info[0]); |
+ } |
+ TestPartialInterfaceImplementation3::partial2VoidMethod(*impl, value); |
+} |
+ |
+static void partial2VoidMethod3Method(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ TestPartialInterfaceImplementation3* impl = V8TestInterface::toImpl(info.Holder()); |
+ Node* node; |
+ { |
+ if (info.Length() > 0 && !V8Node::hasInstance(info[0], info.GetIsolate())) { |
+ V8ThrowException::throwTypeError(ExceptionMessages::failedToExecute("partial2VoidMethod", "TestInterface", "parameter 1 is not of type 'Node'."), info.GetIsolate()); |
+ return; |
+ } |
+ node = V8Node::toImplWithTypeCheck(info.GetIsolate(), info[0]); |
+ } |
+ TestPartialInterfaceImplementation3::partial2VoidMethod(*impl, node); |
+} |
+ |
+static void partial2VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ ExceptionState exceptionState(ExceptionState::ExecutionContext, "partial2VoidMethod", "TestInterface", info.Holder(), info.GetIsolate()); |
+ switch (std::min(1, info.Length())) { |
+ case 0: |
+ break; |
+ case 1: |
+ if (V8Node::hasInstance(info[0], info.GetIsolate())) { |
+ partial2VoidMethod3Method(info); |
+ return; |
+ } |
+ if (true) { |
+ partial2VoidMethod2Method(info); |
+ return; |
+ } |
+ break; |
+ default: |
+ exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(0, info.Length())); |
+ exceptionState.throwIfNeeded(); |
+ return; |
+ } |
+ exceptionState.throwTypeError("No function was found that matched the signature provided."); |
+ exceptionState.throwIfNeeded(); |
+} |
+ |
+static void partial2StaticVoidMethod2Method(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ V8StringResource<> value; |
+ { |
+ TOSTRING_VOID_INTERNAL(value, info[0]); |
+ } |
+ TestPartialInterfaceImplementation3::partial2StaticVoidMethod(value); |
+} |
+ |
+static void partial2StaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ ExceptionState exceptionState(ExceptionState::ExecutionContext, "partial2StaticVoidMethod", "TestInterface", info.Holder(), info.GetIsolate()); |
+ switch (std::min(1, info.Length())) { |
+ case 0: |
+ break; |
+ case 1: |
+ if (true) { |
+ partial2StaticVoidMethod2Method(info); |
+ return; |
+ } |
+ break; |
+ default: |
+ exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(0, info.Length())); |
+ exceptionState.throwIfNeeded(); |
+ return; |
+ } |
+ exceptionState.throwTypeError("No function was found that matched the signature provided."); |
+ exceptionState.throwIfNeeded(); |
+} |
+ |
+} // namespace TestPartialInterfaceImplementation3PartialV8Internal |
+ |
+void V8TestInterfacePartial::installV8TestInterfaceTemplate(v8::Handle<v8::FunctionTemplate> functionTemplate, v8::Isolate* isolate) |
+{ |
+ V8TestInterface::installV8TestInterfaceTemplate(functionTemplate, isolate); |
+ |
+ v8::Local<v8::Signature> defaultSignature; |
+ if (!RuntimeEnabledFeatures::featureNameEnabled()) |
+ defaultSignature = V8DOMConfiguration::installDOMClassTemplate(functionTemplate, "", v8::Local<v8::FunctionTemplate>(), V8TestInterface::internalFieldCount, 0, 0, 0, 0, 0, 0, isolate); |
+ else |
+ defaultSignature = V8DOMConfiguration::installDOMClassTemplate(functionTemplate, "TestInterface", v8::Local<v8::FunctionTemplate>(), V8TestInterface::internalFieldCount, |
+ 0, 0, |
+ 0, 0, |
+ 0, 0, |
+ isolate); |
+ v8::Local<v8::ObjectTemplate> instanceTemplate = functionTemplate->InstanceTemplate(); |
+ ALLOW_UNUSED_LOCAL(instanceTemplate); |
+ v8::Local<v8::ObjectTemplate> prototypeTemplate = functionTemplate->PrototypeTemplate(); |
+ ALLOW_UNUSED_LOCAL(prototypeTemplate); |
+ static const V8DOMConfiguration::ConstantConfiguration V8TestInterfaceConstants[] = { |
+ {"PARTIAL3_UNSIGNED_SHORT", 0, 0, 0, V8DOMConfiguration::ConstantTypeUnsignedShort}, |
+ }; |
+ V8DOMConfiguration::installConstants(functionTemplate, prototypeTemplate, V8TestInterfaceConstants, WTF_ARRAY_LENGTH(V8TestInterfaceConstants), isolate); |
+ functionTemplate->InstanceTemplate()->SetCallAsFunctionHandler(V8TestInterface::legacyCallCustom); |
+ functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "partial3StaticLongAttribute"), TestPartialInterfaceImplementation3V8Internal::partial3StaticLongAttributeAttributeGetterCallback, TestPartialInterfaceImplementation3PartialV8Internal::partial3StaticLongAttributeAttributeSetterCallback, v8::External::New(isolate, 0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSignature>(), static_cast<v8::AccessControl>(v8::DEFAULT)); |
+} |
+ |
+void V8TestInterfacePartial::installConditionallyEnabledProperties(v8::Handle<v8::Object> instanceObject, v8::Isolate* isolate) |
+{ |
+ V8TestInterface::installConditionallyEnabledProperties(instanceObject, isolate); |
+ v8::Local<v8::Object> prototypeObject = v8::Local<v8::Object>::Cast(instanceObject->GetPrototype()); |
+ ExecutionContext* context = toExecutionContext(prototypeObject->CreationContext()); |
+ |
+ if (context && context->isDocument() && ContextFeatures::partialContextName3Enabled(toDocument(context))) { |
+ static const V8DOMConfiguration::AttributeConfiguration attributeConfiguration =\ |
+ {"partial3LongAttribute", TestPartialInterfaceImplementation3PartialV8Internal::partial3LongAttributeAttributeGetterCallback, TestPartialInterfaceImplementation3PartialV8Internal::partial3LongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnInstance}; |
+ V8DOMConfiguration::installAttribute(instanceObject, prototypeObject, attributeConfiguration, isolate); |
+ } |
+ if (context && context->isDocument() && ContextFeatures::partialContextName3Enabled(toDocument(context))) { |
+ static const V8DOMConfiguration::AttributeConfiguration attributeConfiguration =\ |
+ {"partial3StaticLongAttribute", TestPartialInterfaceImplementation3PartialV8Internal::partial3StaticLongAttributeAttributeGetterCallback, TestPartialInterfaceImplementation3PartialV8Internal::partial3StaticLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnInstance}; |
+ V8DOMConfiguration::installAttribute(instanceObject, prototypeObject, attributeConfiguration, isolate); |
+ } |
+} |
+ |
+void V8TestInterfacePartial::installConditionallyEnabledMethods(v8::Handle<v8::Object> prototypeObject, v8::Isolate* isolate) |
+{ |
+ V8TestInterface::installConditionallyEnabledMethods(prototypeObject, isolate); |
+} |
+ |
+bool V8TestInterface::PrivateScript::shortMethodWithShortArgumentImplementedInPrivateScriptMethod(LocalFrame* frame, TestInterface* holderImpl, int value, int* result) |
+{ |
+ if (!frame) |
+ return false; |
+ v8::HandleScope handleScope(toIsolate(frame)); |
+ ScriptForbiddenScope::AllowUserAgentScript script; |
+ v8::Handle<v8::Context> contextInPrivateScript = toV8Context(frame, DOMWrapperWorld::privateScriptIsolatedWorld()); |
+ if (contextInPrivateScript.IsEmpty()) |
+ return false; |
+ ScriptState* scriptState = ScriptState::from(contextInPrivateScript); |
+ ScriptState* scriptStateInUserScript = ScriptState::forMainWorld(frame); |
+ if (!scriptState->executionContext()) |
+ return false; |
+ |
+ ScriptState::Scope scope(scriptState); |
+ v8::Handle<v8::Value> holder = toV8(holderImpl, scriptState->context()->Global(), scriptState->isolate()); |
+ |
+ v8::Handle<v8::Value> valueHandle = v8::Integer::New(scriptState->isolate(), value); |
+ v8::Handle<v8::Value> argv[] = { valueHandle }; |
+ ExceptionState exceptionState(ExceptionState::ExecutionContext, "shortMethodWithShortArgumentImplementedInPrivateScript", "TestPartialInterfaceImplementation3", scriptState->context()->Global(), scriptState->isolate()); |
+ v8::Handle<v8::Value> v8Value = PrivateScriptRunner::runDOMMethod(scriptState, scriptStateInUserScript, "TestPartialInterfaceImplementation3", "shortMethodWithShortArgumentImplementedInPrivateScript", holder, 1, argv); |
+ if (v8Value.IsEmpty()) |
+ return false; |
+ TONATIVE_DEFAULT_EXCEPTIONSTATE(int, cppValue, toInt16(v8Value, exceptionState), exceptionState, false); |
+ *result = cppValue; |
+ RELEASE_ASSERT(!exceptionState.hadException()); |
+ return true; |
+} |
+ |
+void V8TestInterfacePartial::initialize() |
+{ |
+ // Should be invoked from initModules. |
+ V8TestInterface::updateWrapperTypeInfo( |
+ &V8TestInterfacePartial::installV8TestInterfaceTemplate, |
+ &V8TestInterfacePartial::installConditionallyEnabledMethods); |
+ V8TestInterface::registerVoidMethodPartialOverloadMethodForPartialInterface(&TestPartialInterfaceImplementation3PartialV8Internal::voidMethodPartialOverloadMethod); |
+ V8TestInterface::registerStaticVoidMethodPartialOverloadMethodForPartialInterface(&TestPartialInterfaceImplementation3PartialV8Internal::staticVoidMethodPartialOverloadMethod); |
+ V8TestInterface::registerPartial2VoidMethodMethodForPartialInterface(&TestPartialInterfaceImplementation3PartialV8Internal::partial2VoidMethodMethod); |
+ V8TestInterface::registerPartial2StaticVoidMethodMethodForPartialInterface(&TestPartialInterfaceImplementation3PartialV8Internal::partial2StaticVoidMethodMethod); |
+} |
+ |
+} // namespace blink |
+#endif // ENABLE(CONDITION) |