Index: Source/bindings/tests/results/V8TestInterfaceConstructor2.cpp |
diff --git a/Source/bindings/tests/results/V8TestInterfaceConstructor2.cpp b/Source/bindings/tests/results/V8TestInterfaceConstructor2.cpp |
index c5ff0e3334e3b85d96189638fe5f226cbfc3a8e8..b74863c567c1fd5a47185d5b6edec4b2c38920e6 100644 |
--- a/Source/bindings/tests/results/V8TestInterfaceConstructor2.cpp |
+++ b/Source/bindings/tests/results/V8TestInterfaceConstructor2.cpp |
@@ -48,7 +48,10 @@ template <typename T> void V8_USE(T) { } |
static void constructor1(const v8::FunctionCallbackInfo<v8::Value>& info) |
{ |
v8::Isolate* isolate = info.GetIsolate(); |
- TOSTRING_VOID(V8StringResource<>, stringArg, info[0]); |
+ V8StringResource<> stringArg; |
+ { |
+ TOSTRING_VOID_INTERNAL(stringArg, info[0]); |
+ } |
RefPtr<TestInterfaceConstructor2> impl = TestInterfaceConstructor2::create(stringArg); |
v8::Handle<v8::Object> wrapper = info.Holder(); |
@@ -59,10 +62,15 @@ static void constructor1(const v8::FunctionCallbackInfo<v8::Value>& info) |
static void constructor2(const v8::FunctionCallbackInfo<v8::Value>& info) |
{ |
v8::Isolate* isolate = info.GetIsolate(); |
- TONATIVE_VOID(Dictionary, dictionaryArg, Dictionary(info[0], info.GetIsolate())); |
- if (!dictionaryArg.isUndefinedOrNull() && !dictionaryArg.isObject()) { |
- throwTypeError(ExceptionMessages::failedToConstruct("TestInterfaceConstructor2", "parameter 1 ('dictionaryArg') is not an object."), info.GetIsolate()); |
- return; |
+ Dictionary dictionaryArg; |
+ { |
+ v8::TryCatch block; |
+ TONATIVE_VOID_INTERNAL(dictionaryArg, Dictionary(info[0], info.GetIsolate())); |
+ if (!dictionaryArg.isUndefinedOrNull() && !dictionaryArg.isObject()) { |
+ throwTypeError(ExceptionMessages::failedToConstruct("TestInterfaceConstructor2", "parameter 1 ('dictionaryArg') is not an object."), info.GetIsolate()); |
+ block.ReThrow(); |
+ return; |
+ } |
} |
RefPtr<TestInterfaceConstructor2> impl = TestInterfaceConstructor2::create(dictionaryArg); |
@@ -75,24 +83,34 @@ static void constructor3(const v8::FunctionCallbackInfo<v8::Value>& info) |
{ |
v8::Isolate* isolate = info.GetIsolate(); |
ExceptionState exceptionState(ExceptionState::ConstructionContext, "TestInterfaceConstructor2", info.Holder(), isolate); |
- TONATIVE_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[0])); |
- TONATIVE_VOID_EXCEPTIONSTATE(int, longArg, toInt32(info[1], exceptionState), exceptionState); |
- TOSTRING_VOID(V8StringResource<>, defaultUndefinedOptionalStringArg, info[2]); |
- TOSTRING_VOID(V8StringResource<>, defaultNullStringOptionalStringArg, argumentOrNull(info, 3)); |
- TONATIVE_VOID(Dictionary, defaultUndefinedOptionalDictionaryArg, Dictionary(info[4], info.GetIsolate())); |
- if (!defaultUndefinedOptionalDictionaryArg.isUndefinedOrNull() && !defaultUndefinedOptionalDictionaryArg.isObject()) { |
- exceptionState.throwTypeError("parameter 5 ('defaultUndefinedOptionalDictionaryArg') is not an object."); |
- exceptionState.throwIfNeeded(); |
- return; |
- } |
- if (UNLIKELY(info.Length() <= 5)) { |
- RefPtr<TestInterfaceConstructor2> impl = TestInterfaceConstructor2::create(testInterfaceEmptyArg, longArg, defaultUndefinedOptionalStringArg, defaultNullStringOptionalStringArg, defaultUndefinedOptionalDictionaryArg); |
- v8::Handle<v8::Object> wrapper = info.Holder(); |
- V8DOMWrapper::associateObjectWithWrapper<V8TestInterfaceConstructor2>(impl.release(), &V8TestInterfaceConstructor2::wrapperTypeInfo, wrapper, isolate, WrapperConfiguration::Independent); |
- v8SetReturnValue(info, wrapper); |
- return; |
+ TestInterfaceEmpty* testInterfaceEmptyArg; |
+ int longArg; |
+ V8StringResource<> defaultUndefinedOptionalStringArg; |
+ V8StringResource<> defaultNullStringOptionalStringArg; |
+ Dictionary defaultUndefinedOptionalDictionaryArg; |
+ V8StringResource<> optionalStringArg; |
+ { |
+ v8::TryCatch block; |
+ TONATIVE_VOID_INTERNAL(testInterfaceEmptyArg, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[0])); |
+ TONATIVE_VOID_EXCEPTIONSTATE_INTERNAL(longArg, toInt32(info[1], exceptionState), exceptionState); |
+ TOSTRING_VOID_INTERNAL_RETHROW(defaultUndefinedOptionalStringArg, info[2], block); |
+ TOSTRING_VOID_INTERNAL_RETHROW(defaultNullStringOptionalStringArg, argumentOrNull(info, 3), block); |
+ TONATIVE_VOID_INTERNAL(defaultUndefinedOptionalDictionaryArg, Dictionary(info[4], info.GetIsolate())); |
+ if (!defaultUndefinedOptionalDictionaryArg.isUndefinedOrNull() && !defaultUndefinedOptionalDictionaryArg.isObject()) { |
+ exceptionState.throwTypeError("parameter 5 ('defaultUndefinedOptionalDictionaryArg') is not an object."); |
+ exceptionState.throwIfNeeded(); |
+ block.ReThrow(); |
+ return; |
+ } |
+ if (UNLIKELY(info.Length() <= 5)) { |
+ RefPtr<TestInterfaceConstructor2> impl = TestInterfaceConstructor2::create(testInterfaceEmptyArg, longArg, defaultUndefinedOptionalStringArg, defaultNullStringOptionalStringArg, defaultUndefinedOptionalDictionaryArg); |
+ v8::Handle<v8::Object> wrapper = info.Holder(); |
+ V8DOMWrapper::associateObjectWithWrapper<V8TestInterfaceConstructor2>(impl.release(), &V8TestInterfaceConstructor2::wrapperTypeInfo, wrapper, isolate, WrapperConfiguration::Independent); |
+ v8SetReturnValue(info, wrapper); |
+ return; |
+ } |
+ TOSTRING_VOID_INTERNAL_RETHROW(optionalStringArg, info[5], block); |
} |
- TOSTRING_VOID(V8StringResource<>, optionalStringArg, info[5]); |
RefPtr<TestInterfaceConstructor2> impl = TestInterfaceConstructor2::create(testInterfaceEmptyArg, longArg, defaultUndefinedOptionalStringArg, defaultNullStringOptionalStringArg, defaultUndefinedOptionalDictionaryArg, optionalStringArg); |
v8::Handle<v8::Object> wrapper = info.Holder(); |