Index: Source/bindings/tests/results/V8TestNode.cpp |
diff --git a/Source/bindings/tests/results/V8TestNode.cpp b/Source/bindings/tests/results/V8TestNode.cpp |
index 6113b54f39c91efd0eb96a1696d261594c679cab..6702808cff6957cbfa99729784ff6296adce1f68 100644 |
--- a/Source/bindings/tests/results/V8TestNode.cpp |
+++ b/Source/bindings/tests/results/V8TestNode.cpp |
@@ -24,6 +24,7 @@ |
#include "RuntimeEnabledFeatures.h" |
#include "V8Node.h" |
#include "bindings/v8/ExceptionMessages.h" |
+#include "bindings/v8/ExceptionState.h" |
#include "bindings/v8/ScriptController.h" |
#include "bindings/v8/V8Binding.h" |
#include "bindings/v8/V8DOMConfiguration.h" |
@@ -62,6 +63,62 @@ namespace TestNodeV8Internal { |
template <typename T> void V8_USE(T) { } |
+static void hrefAttributeGetter(v8::Local<v8::String> name, const v8::PropertyCallbackInfo<v8::Value>& info) |
+{ |
+ TestNode* imp = V8TestNode::toNative(info.Holder()); |
+ v8SetReturnValueString(info, imp->href(), info.GetIsolate()); |
+} |
+ |
+static void hrefAttributeGetterCallback(v8::Local<v8::String> name, const v8::PropertyCallbackInfo<v8::Value>& info) |
+{ |
+ TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
+ TestNodeV8Internal::hrefAttributeGetter(name, info); |
+ TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
+} |
+ |
+static void hrefAttributeSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::PropertyCallbackInfo<void>& info) |
+{ |
+ TestNode* imp = V8TestNode::toNative(info.Holder()); |
+ V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, v, value); |
+ imp->setHref(v); |
+} |
+ |
+static void hrefAttributeSetterCallback(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::PropertyCallbackInfo<void>& info) |
+{ |
+ TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
+ TestNodeV8Internal::hrefAttributeSetter(name, value, info); |
+ TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
+} |
+ |
+static void hrefThrowsAttributeGetter(v8::Local<v8::String> name, const v8::PropertyCallbackInfo<v8::Value>& info) |
+{ |
+ TestNode* imp = V8TestNode::toNative(info.Holder()); |
+ v8SetReturnValueString(info, imp->hrefThrows(), info.GetIsolate()); |
+} |
+ |
+static void hrefThrowsAttributeGetterCallback(v8::Local<v8::String> name, const v8::PropertyCallbackInfo<v8::Value>& info) |
+{ |
+ TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
+ TestNodeV8Internal::hrefThrowsAttributeGetter(name, info); |
+ TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
+} |
+ |
+static void hrefThrowsAttributeSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::PropertyCallbackInfo<void>& info) |
+{ |
+ TestNode* imp = V8TestNode::toNative(info.Holder()); |
+ V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, v, value); |
+ ExceptionState es(info.GetIsolate()); |
+ imp->setHrefThrows(v, es); |
+ es.throwIfNeeded(); |
+} |
+ |
+static void hrefThrowsAttributeSetterCallback(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::PropertyCallbackInfo<void>& info) |
+{ |
+ TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
+ TestNodeV8Internal::hrefThrowsAttributeSetter(name, value, info); |
+ TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
+} |
+ |
static void constructor(const v8::FunctionCallbackInfo<v8::Value>& args) |
{ |
@@ -74,6 +131,11 @@ static void constructor(const v8::FunctionCallbackInfo<v8::Value>& args) |
} // namespace TestNodeV8Internal |
+static const V8DOMConfiguration::AttributeConfiguration V8TestNodeAttributes[] = { |
+ {"href", TestNodeV8Internal::hrefAttributeGetterCallback, TestNodeV8Internal::hrefAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, |
+ {"hrefThrows", TestNodeV8Internal::hrefThrowsAttributeGetterCallback, TestNodeV8Internal::hrefThrowsAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, |
+}; |
+ |
void V8TestNode::constructorCallback(const v8::FunctionCallbackInfo<v8::Value>& args) |
{ |
TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "DOMConstructor"); |
@@ -96,7 +158,7 @@ static v8::Handle<v8::FunctionTemplate> ConfigureV8TestNodeTemplate(v8::Handle<v |
v8::Local<v8::Signature> defaultSignature; |
defaultSignature = V8DOMConfiguration::installDOMClassTemplate(desc, "TestNode", V8Node::GetTemplate(isolate, currentWorldType), V8TestNode::internalFieldCount, |
- 0, 0, |
+ V8TestNodeAttributes, WTF_ARRAY_LENGTH(V8TestNodeAttributes), |
0, 0, isolate, currentWorldType); |
UNUSED_PARAM(defaultSignature); |
desc->SetCallHandler(V8TestNode::constructorCallback); |