| Index: Source/bindings/tests/results/V8TestObject.cpp
|
| diff --git a/Source/bindings/tests/results/V8TestObject.cpp b/Source/bindings/tests/results/V8TestObject.cpp
|
| index 4bceb917e99176bda10c006ab6740cc257126ad2..e259627f8c14332510e238bd70b6bd99265cbee5 100644
|
| --- a/Source/bindings/tests/results/V8TestObject.cpp
|
| +++ b/Source/bindings/tests/results/V8TestObject.cpp
|
| @@ -6923,6 +6923,142 @@ static void overloadedMethodLMethodCallback(const v8::FunctionCallbackInfo<v8::V
|
| TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
|
| }
|
|
|
| +static void overloadedMethodM1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
|
| +{
|
| + TestObject* impl = V8TestObject::toNative(info.Holder());
|
| + if (info.Length() > 0 && !V8TestInterface::hasInstance(info[0], info.GetIsolate())) {
|
| + throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodM", "TestObject", "parameter 1 is not of type 'TestInterface'."), info.GetIsolate());
|
| + return;
|
| + }
|
| + TONATIVE_VOID(TestInterfaceImplementation*, testInterfaceArg1, V8TestInterface::toNativeWithTypeCheck(info.GetIsolate(), info[0]));
|
| + TONATIVE_VOID(TestInterfaceImplementation*, testInterfaceArg2, V8TestInterface::toNativeWithTypeCheck(info.GetIsolate(), info[1]));
|
| + impl->overloadedMethodM(testInterfaceArg1, testInterfaceArg2);
|
| +}
|
| +
|
| +static void overloadedMethodM2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
|
| +{
|
| + TestObject* impl = V8TestObject::toNative(info.Holder());
|
| + if (info.Length() > 0 && !V8TestInterface::hasInstance(info[0], info.GetIsolate())) {
|
| + throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodM", "TestObject", "parameter 1 is not of type 'TestInterface'."), info.GetIsolate());
|
| + return;
|
| + }
|
| + TONATIVE_VOID(TestInterfaceImplementation*, testInterfaceArg, V8TestInterface::toNativeWithTypeCheck(info.GetIsolate(), info[0]));
|
| + TONATIVE_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[1]));
|
| + impl->overloadedMethodM(testInterfaceArg, testInterfaceEmptyArg);
|
| +}
|
| +
|
| +static void overloadedMethodMMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
|
| +{
|
| + switch (info.Length()) {
|
| + case 2:
|
| + if (V8TestInterface::hasInstance(info[1], info.GetIsolate())) {
|
| + overloadedMethodM1Method(info);
|
| + return;
|
| + }
|
| + if (V8TestInterfaceEmpty::hasInstance(info[1], info.GetIsolate())) {
|
| + overloadedMethodM2Method(info);
|
| + return;
|
| + }
|
| + break;
|
| + }
|
| + ExceptionState exceptionState(ExceptionState::ExecutionContext, "overloadedMethodM", "TestObject", info.Holder(), info.GetIsolate());
|
| + if (UNLIKELY(info.Length() < 2)) {
|
| + throwArityTypeError(exceptionState, 2, info.Length());
|
| + return;
|
| + }
|
| + exceptionState.throwTypeError("No function was found that matched the signature provided.");
|
| + exceptionState.throwIfNeeded();
|
| +}
|
| +
|
| +static void overloadedMethodMMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
|
| +{
|
| + TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
|
| + TestObjectV8Internal::overloadedMethodMMethod(info);
|
| + TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
|
| +}
|
| +
|
| +static void overloadedMethodN1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
|
| +{
|
| + TestObject* impl = V8TestObject::toNative(info.Holder());
|
| + TONATIVE_VOID(double, a, static_cast<double>(info[0]->NumberValue()));
|
| + TONATIVE_VOID(TestInterfaceImplementation*, b, V8TestInterface::toNativeWithTypeCheck(info.GetIsolate(), info[1]));
|
| + impl->overloadedMethodN(a, b);
|
| +}
|
| +
|
| +static void overloadedMethodN2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
|
| +{
|
| + TestObject* impl = V8TestObject::toNative(info.Holder());
|
| + TONATIVE_VOID(double, a, static_cast<double>(info[0]->NumberValue()));
|
| + if (info.Length() > 1 && !V8TestInterfaceEmpty::hasInstance(info[1], info.GetIsolate())) {
|
| + throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodN", "TestObject", "parameter 2 is not of type 'TestInterfaceEmpty'."), info.GetIsolate());
|
| + return;
|
| + }
|
| + TONATIVE_VOID(TestInterfaceEmpty*, b, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[1]));
|
| + if (UNLIKELY(info.Length() <= 2)) {
|
| + impl->overloadedMethodN(a, b);
|
| + return;
|
| + }
|
| + TONATIVE_VOID(TestInterfaceImplementation*, c, V8TestInterface::toNativeWithTypeCheck(info.GetIsolate(), info[2]));
|
| + impl->overloadedMethodN(a, b, c);
|
| +}
|
| +
|
| +static void overloadedMethodN3Method(const v8::FunctionCallbackInfo<v8::Value>& info)
|
| +{
|
| + TestObject* impl = V8TestObject::toNative(info.Holder());
|
| + TONATIVE_VOID(double, a, static_cast<double>(info[0]->NumberValue()));
|
| + if (info.Length() > 1 && !V8TestInterfaceEmpty::hasInstance(info[1], info.GetIsolate())) {
|
| + throwTypeError(ExceptionMessages::failedToExecute("overloadedMethodN", "TestObject", "parameter 2 is not of type 'TestInterfaceEmpty'."), info.GetIsolate());
|
| + return;
|
| + }
|
| + TONATIVE_VOID(TestInterfaceEmpty*, b, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[1]));
|
| + TONATIVE_VOID(TestInterfaceEmpty*, c, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[2]));
|
| + impl->overloadedMethodN(a, b, c);
|
| +}
|
| +
|
| +static void overloadedMethodNMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
|
| +{
|
| + switch (info.Length()) {
|
| + case 2:
|
| + if (V8TestInterface::hasInstance(info[1], info.GetIsolate())) {
|
| + overloadedMethodN1Method(info);
|
| + return;
|
| + }
|
| + if (V8TestInterfaceEmpty::hasInstance(info[1], info.GetIsolate())) {
|
| + overloadedMethodN2Method(info);
|
| + return;
|
| + }
|
| + break;
|
| + case 3:
|
| + if (info[2]->IsUndefined()) {
|
| + overloadedMethodN2Method(info);
|
| + return;
|
| + }
|
| + if (V8TestInterface::hasInstance(info[2], info.GetIsolate())) {
|
| + overloadedMethodN2Method(info);
|
| + return;
|
| + }
|
| + if (V8TestInterfaceEmpty::hasInstance(info[2], info.GetIsolate())) {
|
| + overloadedMethodN3Method(info);
|
| + return;
|
| + }
|
| + break;
|
| + }
|
| + ExceptionState exceptionState(ExceptionState::ExecutionContext, "overloadedMethodN", "TestObject", info.Holder(), info.GetIsolate());
|
| + if (UNLIKELY(info.Length() < 2)) {
|
| + throwArityTypeError(exceptionState, 2, info.Length());
|
| + return;
|
| + }
|
| + exceptionState.throwTypeError("No function was found that matched the signature provided.");
|
| + exceptionState.throwIfNeeded();
|
| +}
|
| +
|
| +static void overloadedMethodNMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
|
| +{
|
| + TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
|
| + TestObjectV8Internal::overloadedMethodNMethod(info);
|
| + TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
|
| +}
|
| +
|
| static void overloadedPerWorldBindingsMethod1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
|
| {
|
| TestObject* impl = V8TestObject::toNative(info.Holder());
|
| @@ -8632,6 +8768,8 @@ static const V8DOMConfiguration::MethodConfiguration V8TestObjectMethods[] = {
|
| {"overloadedMethodJ", TestObjectV8Internal::overloadedMethodJMethodCallback, 0, 1},
|
| {"overloadedMethodK", TestObjectV8Internal::overloadedMethodKMethodCallback, 0, 1},
|
| {"overloadedMethodL", TestObjectV8Internal::overloadedMethodLMethodCallback, 0, 1},
|
| + {"overloadedMethodM", TestObjectV8Internal::overloadedMethodMMethodCallback, 0, 2},
|
| + {"overloadedMethodN", TestObjectV8Internal::overloadedMethodNMethodCallback, 0, 2},
|
| {"overloadedPerWorldBindingsMethod", TestObjectV8Internal::overloadedPerWorldBindingsMethodMethodCallback, TestObjectV8Internal::overloadedPerWorldBindingsMethodMethodCallbackForMainWorld, 0},
|
| {"voidMethodClampUnsignedShortArg", TestObjectV8Internal::voidMethodClampUnsignedShortArgMethodCallback, 0, 1},
|
| {"voidMethodClampUnsignedLongArg", TestObjectV8Internal::voidMethodClampUnsignedLongArgMethodCallback, 0, 1},
|
|
|