Index: third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp |
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp |
index 11ffa5a54cb7c93a698c7d35ccb126cbd59fb064..69ac4786070ca6c05964de237e993b0c4f9e0474 100644 |
--- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp |
+++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp |
@@ -11,7 +11,9 @@ |
// clang-format off |
#include "V8TestTypedefs.h" |
+#include "bindings/core/v8/ByteStringSequenceSequenceOrByteStringByteStringRecord.h" |
#include "bindings/core/v8/ExceptionState.h" |
+#include "bindings/core/v8/IDLTypes.h" |
#include "bindings/core/v8/StringOrDouble.h" |
#include "bindings/core/v8/TestInterfaceOrTestInterfaceEmpty.h" |
#include "bindings/core/v8/V8DOMConfiguration.h" |
@@ -19,6 +21,7 @@ |
#include "bindings/core/v8/V8TestCallbackInterface.h" |
#include "bindings/core/v8/V8TestInterface.h" |
#include "bindings/core/v8/V8TestInterfaceEmpty.h" |
+#include "bindings/core/v8/V8TestObject.h" |
#include "core/dom/Document.h" |
#include "core/frame/LocalDOMWindow.h" |
#include "wtf/GetPtr.h" |
@@ -240,6 +243,66 @@ static void stringArrayMethodStringArrayArgMethod(const v8::FunctionCallbackInfo |
v8SetReturnValue(info, ToV8(impl->stringArrayMethodStringArrayArg(stringArrayArg), info.Holder(), info.GetIsolate())); |
} |
+static void methodTakingRecordMethod(const v8::FunctionCallbackInfo<v8::Value>& info) { |
+ ExceptionState exceptionState(info.GetIsolate(), ExceptionState::ExecutionContext, "TestTypedefs", "methodTakingRecord"); |
+ |
+ TestTypedefs* impl = V8TestTypedefs::toImpl(info.Holder()); |
+ |
+ if (UNLIKELY(info.Length() < 1)) { |
+ exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length())); |
+ return; |
+ } |
+ |
+ Vector<std::pair<String, int>> arg; |
+ arg = NativeValueTraits<idl::Record<idl::ByteString, idl::Long>>::nativeValue(info.GetIsolate(), info[0], exceptionState); |
+ if (exceptionState.hadException()) |
+ return; |
+ |
+ impl->methodTakingRecord(arg); |
+} |
+ |
+static void methodTakingOilpanValueRecordMethod(const v8::FunctionCallbackInfo<v8::Value>& info) { |
+ ExceptionState exceptionState(info.GetIsolate(), ExceptionState::ExecutionContext, "TestTypedefs", "methodTakingOilpanValueRecord"); |
+ |
+ TestTypedefs* impl = V8TestTypedefs::toImpl(info.Holder()); |
+ |
+ if (UNLIKELY(info.Length() < 1)) { |
+ exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length())); |
+ return; |
+ } |
+ |
+ HeapVector<std::pair<String, Member<TestObject>>> arg; |
+ arg = NativeValueTraits<idl::Record<idl::USVString, TestObject>>::nativeValue(info.GetIsolate(), info[0], exceptionState); |
+ if (exceptionState.hadException()) |
+ return; |
+ |
+ impl->methodTakingOilpanValueRecord(arg); |
+} |
+ |
+static void unionWithRecordMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info) { |
+ ExceptionState exceptionState(info.GetIsolate(), ExceptionState::ExecutionContext, "TestTypedefs", "unionWithRecordMethod"); |
+ |
+ TestTypedefs* impl = V8TestTypedefs::toImpl(info.Holder()); |
+ |
+ if (UNLIKELY(info.Length() < 1)) { |
+ exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length())); |
+ return; |
+ } |
+ |
+ ByteStringSequenceSequenceOrByteStringByteStringRecord arg; |
+ V8ByteStringSequenceSequenceOrByteStringByteStringRecord::toImpl(info.GetIsolate(), info[0], arg, UnionTypeConversionMode::NotNullable, exceptionState); |
+ if (exceptionState.hadException()) |
+ return; |
+ |
+ v8SetReturnValue(info, impl->unionWithRecordMethod(arg)); |
+} |
+ |
+static void methodThatReturnsRecordMethod(const v8::FunctionCallbackInfo<v8::Value>& info) { |
+ TestTypedefs* impl = V8TestTypedefs::toImpl(info.Holder()); |
+ |
+ v8SetReturnValue(info, ToV8(impl->methodThatReturnsRecord(), info.Holder(), info.GetIsolate())); |
+} |
+ |
static void constructor(const v8::FunctionCallbackInfo<v8::Value>& info) { |
if (UNLIKELY(info.Length() < 1)) { |
V8ThrowException::throwTypeError(info.GetIsolate(), ExceptionMessages::failedToConstruct("TestTypedefs", ExceptionMessages::notEnoughArguments(1, info.Length()))); |
@@ -311,6 +374,22 @@ void V8TestTypedefs::stringArrayMethodStringArrayArgMethodCallback(const v8::Fun |
TestTypedefsV8Internal::stringArrayMethodStringArrayArgMethod(info); |
} |
+void V8TestTypedefs::methodTakingRecordMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) { |
+ TestTypedefsV8Internal::methodTakingRecordMethod(info); |
+} |
+ |
+void V8TestTypedefs::methodTakingOilpanValueRecordMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) { |
+ TestTypedefsV8Internal::methodTakingOilpanValueRecordMethod(info); |
+} |
+ |
+void V8TestTypedefs::unionWithRecordMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) { |
+ TestTypedefsV8Internal::unionWithRecordMethodMethod(info); |
+} |
+ |
+void V8TestTypedefs::methodThatReturnsRecordMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) { |
+ TestTypedefsV8Internal::methodThatReturnsRecordMethod(info); |
+} |
+ |
// Suppress warning: global constructors, because AttributeConfiguration is trivial |
// and does not depend on another global objects. |
#if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) |
@@ -338,6 +417,10 @@ const V8DOMConfiguration::MethodConfiguration V8TestTypedefsMethods[] = { |
{"domStringOrDoubleMethod", V8TestTypedefs::domStringOrDoubleMethodMethodCallback, nullptr, 0, v8::None, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder, V8DOMConfiguration::DoNotCheckAccess}, |
{"arrayOfStringsMethodArrayOfStringsArg", V8TestTypedefs::arrayOfStringsMethodArrayOfStringsArgMethodCallback, nullptr, 1, v8::None, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder, V8DOMConfiguration::DoNotCheckAccess}, |
{"stringArrayMethodStringArrayArg", V8TestTypedefs::stringArrayMethodStringArrayArgMethodCallback, nullptr, 1, v8::None, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder, V8DOMConfiguration::DoNotCheckAccess}, |
+ {"methodTakingRecord", V8TestTypedefs::methodTakingRecordMethodCallback, nullptr, 1, v8::None, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder, V8DOMConfiguration::DoNotCheckAccess}, |
+ {"methodTakingOilpanValueRecord", V8TestTypedefs::methodTakingOilpanValueRecordMethodCallback, nullptr, 1, v8::None, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder, V8DOMConfiguration::DoNotCheckAccess}, |
+ {"unionWithRecordMethod", V8TestTypedefs::unionWithRecordMethodMethodCallback, nullptr, 1, v8::None, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder, V8DOMConfiguration::DoNotCheckAccess}, |
+ {"methodThatReturnsRecord", V8TestTypedefs::methodThatReturnsRecordMethodCallback, nullptr, 0, v8::None, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder, V8DOMConfiguration::DoNotCheckAccess}, |
}; |
void V8TestTypedefs::constructorCallback(const v8::FunctionCallbackInfo<v8::Value>& info) { |