| Index: Source/bindings/tests/results/V8TestInterface.cpp
|
| diff --git a/Source/bindings/tests/results/V8TestInterface.cpp b/Source/bindings/tests/results/V8TestInterface.cpp
|
| index 1c4bb6ee5711bdb4709f755694e521b9e2a1d49b..e8f309a08b919fdb53bdce7b579bd5ece66cf32b 100644
|
| --- a/Source/bindings/tests/results/V8TestInterface.cpp
|
| +++ b/Source/bindings/tests/results/V8TestInterface.cpp
|
| @@ -800,11 +800,16 @@ static void voidMethodTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo
|
| return;
|
| }
|
| TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder());
|
| - if (info.Length() > 0 && !V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate())) {
|
| - throwTypeError(ExceptionMessages::failedToExecute("voidMethodTestInterfaceEmptyArg", "TestInterface", "parameter 1 is not of type 'TestInterfaceEmpty'."), info.GetIsolate());
|
| - return;
|
| + TestInterfaceEmpty* testInterfaceEmptyArg;
|
| + {
|
| + v8::TryCatch block;
|
| + if (info.Length() > 0 && !V8TestInterfaceEmpty::hasInstance(info[0], info.GetIsolate())) {
|
| + throwTypeError(ExceptionMessages::failedToExecute("voidMethodTestInterfaceEmptyArg", "TestInterface", "parameter 1 is not of type 'TestInterfaceEmpty'."), info.GetIsolate());
|
| + block.ReThrow();
|
| + return;
|
| + }
|
| + TONATIVE_VOID_INTERNAL(testInterfaceEmptyArg, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[0]));
|
| }
|
| - TONATIVE_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[0]));
|
| impl->voidMethodTestInterfaceEmptyArg(testInterfaceEmptyArg);
|
| }
|
|
|
| @@ -822,15 +827,22 @@ static void voidMethodDoubleArgFloatArgMethod(const v8::FunctionCallbackInfo<v8:
|
| return;
|
| }
|
| TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder());
|
| - TONATIVE_VOID(double, doubleArg, static_cast<double>(info[0]->NumberValue()));
|
| - if (!std::isfinite(doubleArg)) {
|
| - throwTypeError(ExceptionMessages::failedToExecute("voidMethodDoubleArgFloatArg", "TestInterface", "double parameter 1 is non-finite."), info.GetIsolate());
|
| - return;
|
| - }
|
| - TONATIVE_VOID(float, floatArg, static_cast<float>(info[1]->NumberValue()));
|
| - if (!std::isfinite(floatArg)) {
|
| - throwTypeError(ExceptionMessages::failedToExecute("voidMethodDoubleArgFloatArg", "TestInterface", "float parameter 2 is non-finite."), info.GetIsolate());
|
| - return;
|
| + double doubleArg;
|
| + float floatArg;
|
| + {
|
| + v8::TryCatch block;
|
| + TONATIVE_VOID_INTERNAL(doubleArg, static_cast<double>(info[0]->NumberValue()));
|
| + if (!std::isfinite(doubleArg)) {
|
| + throwTypeError(ExceptionMessages::failedToExecute("voidMethodDoubleArgFloatArg", "TestInterface", "double parameter 1 is non-finite."), info.GetIsolate());
|
| + block.ReThrow();
|
| + return;
|
| + }
|
| + TONATIVE_VOID_INTERNAL(floatArg, static_cast<float>(info[1]->NumberValue()));
|
| + if (!std::isfinite(floatArg)) {
|
| + throwTypeError(ExceptionMessages::failedToExecute("voidMethodDoubleArgFloatArg", "TestInterface", "float parameter 2 is non-finite."), info.GetIsolate());
|
| + block.ReThrow();
|
| + return;
|
| + }
|
| }
|
| impl->voidMethodDoubleArgFloatArg(doubleArg, floatArg);
|
| }
|
| @@ -849,8 +861,13 @@ static void voidMethodUnrestrictedDoubleArgUnrestrictedFloatArgMethod(const v8::
|
| return;
|
| }
|
| TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder());
|
| - TONATIVE_VOID(double, unrestrictedDoubleArg, static_cast<double>(info[0]->NumberValue()));
|
| - TONATIVE_VOID(float, unrestrictedFloatArg, static_cast<float>(info[1]->NumberValue()));
|
| + double unrestrictedDoubleArg;
|
| + float unrestrictedFloatArg;
|
| + {
|
| + v8::TryCatch block;
|
| + TONATIVE_VOID_INTERNAL(unrestrictedDoubleArg, static_cast<double>(info[0]->NumberValue()));
|
| + TONATIVE_VOID_INTERNAL(unrestrictedFloatArg, static_cast<float>(info[1]->NumberValue()));
|
| + }
|
| impl->voidMethodUnrestrictedDoubleArgUnrestrictedFloatArg(unrestrictedDoubleArg, unrestrictedFloatArg);
|
| }
|
|
|
| @@ -908,13 +925,19 @@ static void implementsComplexMethodMethod(const v8::FunctionCallbackInfo<v8::Val
|
| return;
|
| }
|
| TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder());
|
| - TOSTRING_VOID(V8StringResource<>, strArg, info[0]);
|
| - if (info.Length() > 1 && !V8TestInterfaceEmpty::hasInstance(info[1], info.GetIsolate())) {
|
| - exceptionState.throwTypeError("parameter 2 is not of type 'TestInterfaceEmpty'.");
|
| - exceptionState.throwIfNeeded();
|
| - return;
|
| + V8StringResource<> strArg;
|
| + TestInterfaceEmpty* testInterfaceEmptyArg;
|
| + {
|
| + v8::TryCatch block;
|
| + TOSTRING_VOID_INTERNAL_RETHROW(strArg, info[0], block);
|
| + if (info.Length() > 1 && !V8TestInterfaceEmpty::hasInstance(info[1], info.GetIsolate())) {
|
| + exceptionState.throwTypeError("parameter 2 is not of type 'TestInterfaceEmpty'.");
|
| + exceptionState.throwIfNeeded();
|
| + block.ReThrow();
|
| + return;
|
| + }
|
| + TONATIVE_VOID_INTERNAL(testInterfaceEmptyArg, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[1]));
|
| }
|
| - TONATIVE_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[1]));
|
| ExecutionContext* scriptContext = currentExecutionContext(info.GetIsolate());
|
| RefPtr<TestInterfaceEmpty> result = impl->implementsComplexMethod(scriptContext, strArg, testInterfaceEmptyArg, exceptionState);
|
| if (exceptionState.throwIfNeeded())
|
| @@ -1028,7 +1051,11 @@ static void partialVoidMethodLongArgMethod(const v8::FunctionCallbackInfo<v8::Va
|
| return;
|
| }
|
| TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder());
|
| - TONATIVE_VOID_EXCEPTIONSTATE(int, longArg, toInt32(info[0], exceptionState), exceptionState);
|
| + int longArg;
|
| + {
|
| + v8::TryCatch block;
|
| + TONATIVE_VOID_EXCEPTIONSTATE_INTERNAL(longArg, toInt32(info[0], exceptionState), exceptionState);
|
| + }
|
| TestPartialInterface::partialVoidMethodLongArg(*impl, longArg);
|
| }
|
| #endif // ENABLE(PARTIAL_CONDITION)
|
| @@ -1071,7 +1098,11 @@ static void partialVoidMethodPartialCallbackTypeArgMethod(const v8::FunctionCall
|
| return;
|
| }
|
| TestInterfaceImplementation* impl = V8TestInterface::toNative(info.Holder());
|
| - TONATIVE_VOID(ScriptValue, partialCallbackTypeArg, ScriptValue(ScriptState::current(info.GetIsolate()), info[0]));
|
| + ScriptValue partialCallbackTypeArg;
|
| + {
|
| + v8::TryCatch block;
|
| + TONATIVE_VOID_INTERNAL(partialCallbackTypeArg, ScriptValue(ScriptState::current(info.GetIsolate()), info[0]));
|
| + }
|
| TestPartialInterface::partialVoidMethodPartialCallbackTypeArg(*impl, partialCallbackTypeArg);
|
| }
|
| #endif // ENABLE(PARTIAL_CONDITION)
|
|
|