Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(134)

Unified Diff: Source/bindings/tests/results/V8TestInterfaceImplementedAs.cpp

Issue 14988008: Rename DOMPath IDL interface to Path to match the specification (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/bindings/tests/results/V8TestInterfaceImplementedAs.cpp
diff --git a/Source/bindings/tests/results/V8TestInterfaceImplementedAs.cpp b/Source/bindings/tests/results/V8TestInterfaceImplementedAs.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5579483aa4e2ed14374385ac979106c16df0a8b1
--- /dev/null
+++ b/Source/bindings/tests/results/V8TestInterfaceImplementedAs.cpp
@@ -0,0 +1,257 @@
+/*
+ This file is part of the Blink open source project.
+ This file has been auto-generated by CodeGeneratorV8.pm. DO NOT MODIFY!
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+
+#include "config.h"
+#include "V8TestInterfaceImplementedAs.h"
+
+#include "RuntimeEnabledFeatures.h"
+#include "bindings/v8/ScriptController.h"
+#include "bindings/v8/V8Binding.h"
+#include "bindings/v8/V8DOMConfiguration.h"
+#include "bindings/v8/V8DOMWrapper.h"
+#include "core/dom/ContextFeatures.h"
+#include "core/dom/Document.h"
+#include "core/dom/ExceptionCode.h"
+#include "core/page/Frame.h"
+#include "wtf/GetPtr.h"
+#include "wtf/RefCounted.h"
+#include "wtf/RefPtr.h"
+#include "wtf/UnusedParam.h"
+
+#if ENABLE(BINDING_INTEGRITY)
+#if defined(OS_WIN)
+#pragma warning(disable: 4483)
+extern "C" { extern void (*const __identifier("??_7RealClass@WebCore@@6B@")[])(); }
+#else
+extern "C" { extern void* _ZTVN7WebCore9RealClassE[]; }
+#endif
+#endif // ENABLE(BINDING_INTEGRITY)
+
+namespace WebCore {
+
+#if ENABLE(BINDING_INTEGRITY)
+// This checks if a DOM object that is about to be wrapped is valid.
+// Specifically, it checks that a vtable of the DOM object is equal to
+// a vtable of an expected class.
+// Due to a dangling pointer, the DOM object you are wrapping might be
+// already freed or realloced. If freed, the check will fail because
+// a free list pointer should be stored at the head of the DOM object.
+// If realloced, the check will fail because the vtable of the DOM object
+// differs from the expected vtable (unless the same class of DOM object
+// is realloced on the slot).
+inline void checkTypeOrDieTrying(RealClass* object)
+{
+ void* actualVTablePointer = *(reinterpret_cast<void**>(object));
+#if defined(OS_WIN)
+ void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7RealClass@WebCore@@6B@"));
+#else
+ void* expectedVTablePointer = &_ZTVN7WebCore9RealClassE[2];
+#endif
+ if (actualVTablePointer != expectedVTablePointer)
+ CRASH();
+}
+#endif // ENABLE(BINDING_INTEGRITY)
+
+#if defined(OS_WIN)
+// In ScriptWrappable, the use of extern function prototypes inside templated static methods has an issue on windows.
+// These prototypes do not pick up the surrounding namespace, so drop out of WebCore as a workaround.
+} // namespace WebCore
+using WebCore::ScriptWrappable;
+using WebCore::V8TestInterfaceImplementedAs;
+using WebCore::RealClass;
+#endif
+void initializeScriptWrappableForInterface(RealClass* object)
+{
+ if (ScriptWrappable::wrapperCanBeStoredInObject(object))
+ ScriptWrappable::setTypeInfoInObject(object, &V8TestInterfaceImplementedAs::info);
+}
+#if defined(OS_WIN)
+namespace WebCore {
+#endif
+WrapperTypeInfo V8TestInterfaceImplementedAs::info = { V8TestInterfaceImplementedAs::GetTemplate, V8TestInterfaceImplementedAs::derefObject, 0, 0, 0, V8TestInterfaceImplementedAs::installPerContextPrototypeProperties, 0, WrapperTypeObjectPrototype };
+
+namespace TestInterfaceImplementedAsV8Internal {
+
+template <typename T> void V8_USE(T) { }
+
+static v8::Handle<v8::Value> aAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ RealClass* imp = V8TestInterfaceImplementedAs::toNative(info.Holder());
+ return v8String(imp->a(), info.GetIsolate(), ReturnUnsafeHandle);
+}
+
+static v8::Handle<v8::Value> aAttrGetterCallback(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ return RealClassV8Internal::aAttrGetter(name, info);
+}
+
+static void aAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+{
+ RealClass* imp = V8TestInterfaceImplementedAs::toNative(info.Holder());
+ V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, v, value);
+ imp->setA(v);
+ return;
+}
+
+static void aAttrSetterCallback(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+{
+ RealClassV8Internal::aAttrSetter(name, value, info);
+}
+
+static v8::Handle<v8::Value> bAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ RealClass* imp = V8TestInterfaceImplementedAs::toNative(info.Holder());
+ return toV8Fast(imp->b(), info, imp);
+}
+
+static v8::Handle<v8::Value> bAttrGetterCallback(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ return RealClassV8Internal::bAttrGetter(name, info);
+}
+
+static void bAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+{
+ RealClass* imp = V8TestInterfaceImplementedAs::toNative(info.Holder());
+ V8TRYCATCH_VOID(RealClass*, v, V8TestInterfaceImplementedAs::HasInstance(value, info.GetIsolate(), worldType(info.GetIsolate())) ? V8TestInterfaceImplementedAs::toNative(v8::Handle<v8::Object>::Cast(value)) : 0);
+ imp->setB(WTF::getPtr(v));
+ return;
+}
+
+static void bAttrSetterCallback(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+{
+ RealClassV8Internal::bAttrSetter(name, value, info);
+}
+
+static v8::Handle<v8::Value> func1Method(const v8::Arguments& args)
+{
+ if (args.Length() < 1)
+ return throwNotEnoughArgumentsError(args.GetIsolate());
+ RealClass* imp = V8TestInterfaceImplementedAs::toNative(args.Holder());
+ V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, a, args[0]);
+ return v8String(imp->func1(a), args.GetIsolate(), ReturnUnsafeHandle);
+}
+
+static v8::Handle<v8::Value> func1MethodCallback(const v8::Arguments& args)
+{
+ return RealClassV8Internal::func1Method(args);
+}
+
+static v8::Handle<v8::Value> funcTestInterfaceImplementedAsParamMethod(const v8::Arguments& args)
+{
+ if (args.Length() < 1)
+ return throwNotEnoughArgumentsError(args.GetIsolate());
+ RealClass* imp = V8TestInterfaceImplementedAs::toNative(args.Holder());
+ V8TRYCATCH(RealClass*, orange, V8TestInterfaceImplementedAs::HasInstance(args[0], args.GetIsolate(), worldType(args.GetIsolate())) ? V8TestInterfaceImplementedAs::toNative(v8::Handle<v8::Object>::Cast(args[0])) : 0);
+ return v8String(imp->funcTestInterfaceImplementedAsParam(orange), args.GetIsolate(), ReturnUnsafeHandle);
+}
+
+static v8::Handle<v8::Value> funcTestInterfaceImplementedAsParamMethodCallback(const v8::Arguments& args)
+{
+ return RealClassV8Internal::funcTestInterfaceImplementedAsParamMethod(args);
+}
+
+} // namespace TestInterfaceImplementedAsV8Internal
+
+static const V8DOMConfiguration::BatchedAttribute V8TestInterfaceImplementedAsAttrs[] = {
+ // Attribute 'a' (Type: 'attribute' ExtAttr: '')
+ {"a", RealClassV8Internal::aAttrGetterCallback, RealClassV8Internal::aAttrSetterCallback, 0, 0, 0 /* no data */, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
+ // Attribute 'b' (Type: 'attribute' ExtAttr: '')
+ {"b", RealClassV8Internal::bAttrGetterCallback, RealClassV8Internal::bAttrSetterCallback, 0, 0, 0 /* no data */, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
+};
+
+static const V8DOMConfiguration::BatchedMethod V8TestInterfaceImplementedAsMethods[] = {
+ {"func1", RealClassV8Internal::func1MethodCallback, 0, 1},
+};
+
+static v8::Persistent<v8::FunctionTemplate> ConfigureV8TestInterfaceImplementedAsTemplate(v8::Persistent<v8::FunctionTemplate> desc, v8::Isolate* isolate, WrapperWorldType currentWorldType)
+{
+ desc->ReadOnlyPrototype();
+
+ v8::Local<v8::Signature> defaultSignature;
+ defaultSignature = V8DOMConfiguration::configureTemplate(desc, "TestInterfaceImplementedAs", v8::Persistent<v8::FunctionTemplate>(), V8TestInterfaceImplementedAs::internalFieldCount,
+ V8TestInterfaceImplementedAsAttrs, WTF_ARRAY_LENGTH(V8TestInterfaceImplementedAsAttrs),
+ V8TestInterfaceImplementedAsMethods, WTF_ARRAY_LENGTH(V8TestInterfaceImplementedAsMethods), isolate, currentWorldType);
+ UNUSED_PARAM(defaultSignature); // In some cases, it will not be used.
+ v8::Local<v8::ObjectTemplate> instance = desc->InstanceTemplate();
+ v8::Local<v8::ObjectTemplate> proto = desc->PrototypeTemplate();
+ UNUSED_PARAM(instance); // In some cases, it will not be used.
+ UNUSED_PARAM(proto); // In some cases, it will not be used.
+
+ // Custom Signature 'funcTestInterfaceImplementedAsParam'
+ const int funcTestInterfaceImplementedAsParamArgc = 1;
+ v8::Handle<v8::FunctionTemplate> funcTestInterfaceImplementedAsParamArgv[funcTestInterfaceImplementedAsParamArgc] = { V8PerIsolateData::from(isolate)->rawTemplate(&V8TestInterfaceImplementedAs::info, currentWorldType) };
+ v8::Handle<v8::Signature> funcTestInterfaceImplementedAsParamSignature = v8::Signature::New(desc, funcTestInterfaceImplementedAsParamArgc, funcTestInterfaceImplementedAsParamArgv);
+ proto->Set(v8::String::NewSymbol("funcTestInterfaceImplementedAsParam"), v8::FunctionTemplate::New(RealClassV8Internal::funcTestInterfaceImplementedAsParamMethodCallback, v8Undefined(), funcTestInterfaceImplementedAsParamSignature, 1));
+
+ // Custom toString template
+ desc->Set(v8::String::NewSymbol("toString"), V8PerIsolateData::current()->toStringTemplate());
+ return desc;
+}
+
+v8::Persistent<v8::FunctionTemplate> V8TestInterfaceImplementedAs::GetTemplate(v8::Isolate* isolate, WrapperWorldType currentWorldType)
+{
+ V8PerIsolateData* data = V8PerIsolateData::from(isolate);
+ V8PerIsolateData::TemplateMap::iterator result = data->templateMap(currentWorldType).find(&info);
+ if (result != data->templateMap(currentWorldType).end())
+ return result->value;
+
+ v8::HandleScope handleScope;
+ v8::Persistent<v8::FunctionTemplate> templ =
+ ConfigureV8TestInterfaceImplementedAsTemplate(data->rawTemplate(&info, currentWorldType), isolate, currentWorldType);
+ data->templateMap(currentWorldType).add(&info, templ);
+ return templ;
+}
+
+bool V8TestInterfaceImplementedAs::HasInstance(v8::Handle<v8::Value> value, v8::Isolate* isolate, WrapperWorldType currentWorldType)
+{
+ return V8PerIsolateData::from(isolate)->hasInstance(&info, value, currentWorldType);
+}
+
+bool V8TestInterfaceImplementedAs::HasInstanceInAnyWorld(v8::Handle<v8::Value> value, v8::Isolate* isolate)
+{
+ return V8PerIsolateData::from(isolate)->hasInstance(&info, value, MainWorld)
+ || V8PerIsolateData::from(isolate)->hasInstance(&info, value, IsolatedWorld)
+ || V8PerIsolateData::from(isolate)->hasInstance(&info, value, WorkerWorld);
+}
+
+
+v8::Handle<v8::Object> V8TestInterfaceImplementedAs::createWrapper(PassRefPtr<RealClass> impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
+{
+ ASSERT(impl.get());
+ ASSERT(DOMDataStore::getWrapper(impl.get(), isolate).IsEmpty());
+
+#if ENABLE(BINDING_INTEGRITY)
+ checkTypeOrDieTrying(impl.get());
+#endif
+
+ v8::Handle<v8::Object> wrapper = V8DOMWrapper::createWrapper(creationContext, &info, impl.get(), isolate);
+ if (UNLIKELY(wrapper.IsEmpty()))
+ return wrapper;
+
+ installPerContextProperties(wrapper, impl.get(), isolate);
+ V8DOMWrapper::associateObjectWithWrapper(impl, &info, wrapper, isolate, hasDependentLifetime ? WrapperConfiguration::Dependent : WrapperConfiguration::Independent);
+ return wrapper;
+}
+void V8TestInterfaceImplementedAs::derefObject(void* object)
+{
+ static_cast<RealClass*>(object)->deref();
+}
+
+} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698