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

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

Issue 196343032: Implement ImageData constructors. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Generate code that custom wrap()s constructor instances Created 6 years, 9 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/V8TestInterfacePython2.cpp
diff --git a/Source/bindings/tests/results/V8TestInterfacePython2.cpp b/Source/bindings/tests/results/V8TestInterfacePython2.cpp
index 2afe2cf2467b793023a6a7fb2a33242dae0f93e1..3e223d10f2e9da888ec845a801b47fa3c3c1a1d7 100644
--- a/Source/bindings/tests/results/V8TestInterfacePython2.cpp
+++ b/Source/bindings/tests/results/V8TestInterfacePython2.cpp
@@ -36,6 +36,7 @@
#include "RuntimeEnabledFeatures.h"
#include "V8Interface1.h"
#include "V8Interface2.h"
+#include "V8int.h"
#include "bindings/v8/ExceptionState.h"
#include "bindings/v8/V8DOMConfiguration.h"
#include "bindings/v8/V8GCController.h"
@@ -44,6 +45,7 @@
#include "core/dom/ContextFeatures.h"
#include "core/dom/Document.h"
#include "core/dom/Element.h"
+#include "core/frame/DOMWindow.h"
#include "platform/TraceEvent.h"
#include "wtf/GetPtr.h"
#include "wtf/RefPtr.h"
@@ -76,6 +78,18 @@ namespace TestInterfacePython2V8Internal {
template <typename T> void V8_USE(T) { }
+static void constructor(const v8::FunctionCallbackInfo<v8::Value>& info)
+{
+ if (UNLIKELY(info.Length() < 1)) {
+ throwTypeError(ExceptionMessages::failedToConstruct("TestInterfacePython2", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsolate());
+ return;
+ }
+ V8TRYCATCH_VOID(int*, width, V8int::toNativeWithTypeCheck(info.GetIsolate(), info[0]));
+ RefPtr<TestInterfacePython2> impl = TestInterfacePython2::create(width);
+
+ v8SetReturnValue(info, wrap(impl.get(), info.Holder(), info.GetIsolate()));
+}
+
} // namespace TestInterfacePython2V8Internal
void V8TestInterfacePython2::visitDOMWrapper(void* object, const v8::Persistent<v8::Object>& wrapper, v8::Isolate* isolate)
@@ -90,6 +104,22 @@ void V8TestInterfacePython2::visitDOMWrapper(void* object, const v8::Persistent<
setObjectGroup(object, wrapper, isolate);
}
+void V8TestInterfacePython2::constructorCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
+{
+ TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "DOMConstructor");
+ if (!info.IsConstructCall()) {
+ throwTypeError(ExceptionMessages::failedToConstruct("TestInterfacePython2", "Please use the 'new' operator, this DOM object constructor cannot be called as a function."), info.GetIsolate());
+ return;
+ }
+
+ if (ConstructorMode::current() == ConstructorMode::WrapExistingObject) {
+ v8SetReturnValue(info, info.Holder());
+ return;
+ }
+
+ TestInterfacePython2V8Internal::constructor(info);
+}
+
static void configureV8TestInterfacePython2Template(v8::Handle<v8::FunctionTemplate> functionTemplate, v8::Isolate* isolate)
{
functionTemplate->ReadOnlyPrototype();
@@ -100,6 +130,8 @@ static void configureV8TestInterfacePython2Template(v8::Handle<v8::FunctionTempl
0, 0,
0, 0,
isolate);
+ functionTemplate->SetCallHandler(V8TestInterfacePython2::constructorCallback);
+ functionTemplate->SetLength(1);
v8::Local<v8::ObjectTemplate> ALLOW_UNUSED instanceTemplate = functionTemplate->InstanceTemplate();
v8::Local<v8::ObjectTemplate> ALLOW_UNUSED prototypeTemplate = functionTemplate->PrototypeTemplate();

Powered by Google App Engine
This is Rietveld 408576698