Index: Source/bindings/tests/results/V8TestInterfaceConstructor2.cpp |
diff --git a/Source/bindings/tests/results/V8TestInterfaceConstructor2.cpp b/Source/bindings/tests/results/V8TestInterfaceConstructor2.cpp |
index 6077e0bfa04f04d67923cbf6d3b64fc582c6f468..4018011586f9be87d24ce549ef3b6c30b6a97dc4 100644 |
--- a/Source/bindings/tests/results/V8TestInterfaceConstructor2.cpp |
+++ b/Source/bindings/tests/results/V8TestInterfaceConstructor2.cpp |
@@ -9,6 +9,7 @@ |
#include "bindings/core/v8/Dictionary.h" |
#include "bindings/core/v8/ExceptionState.h" |
+#include "bindings/core/v8/Optional.h" |
#include "bindings/core/v8/V8DOMConfiguration.h" |
#include "bindings/core/v8/V8HiddenValue.h" |
#include "bindings/core/v8/V8ObjectConstructor.h" |
@@ -81,36 +82,44 @@ static void constructor3(const v8::FunctionCallbackInfo<v8::Value>& info) |
TestInterfaceEmpty* testInterfaceEmptyArg; |
int longArg; |
V8StringResource<> defaultUndefinedOptionalStringArg; |
+ bool defaultUndefinedOptionalStringArgMissing = false; |
V8StringResource<> defaultNullStringOptionalStringArg; |
Dictionary defaultUndefinedOptionalDictionaryArg; |
+ bool defaultUndefinedOptionalDictionaryArgMissing = false; |
V8StringResource<> optionalStringArg; |
+ bool optionalStringArgMissing = false; |
{ |
v8::TryCatch block; |
V8RethrowTryCatchScope rethrow(block); |
TONATIVE_VOID_INTERNAL(testInterfaceEmptyArg, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[0])); |
TONATIVE_VOID_EXCEPTIONSTATE_INTERNAL(longArg, toInt32(info[1], exceptionState), exceptionState); |
- TOSTRING_VOID_INTERNAL(defaultUndefinedOptionalStringArg, info[2]); |
+ if (!info[2]->IsUndefined()) { |
+ TOSTRING_VOID_INTERNAL(defaultUndefinedOptionalStringArg, info[2]); |
+ } else { |
+ defaultUndefinedOptionalStringArgMissing = true; |
+ } |
if (!info[3]->IsUndefined()) { |
TOSTRING_VOID_INTERNAL(defaultNullStringOptionalStringArg, info[3]); |
} else { |
defaultNullStringOptionalStringArg = nullptr; |
} |
- 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(); |
- return; |
+ if (!info[4]->IsUndefined()) { |
+ 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(); |
+ return; |
+ } |
+ } else { |
+ defaultUndefinedOptionalDictionaryArgMissing = true; |
} |
- 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, info.GetIsolate(), WrapperConfiguration::Independent); |
- v8SetReturnValue(info, wrapper); |
- return; |
+ if (!info[5]->IsUndefined()) { |
+ TOSTRING_VOID_INTERNAL(optionalStringArg, info[5]); |
+ } else { |
+ optionalStringArgMissing = true; |
} |
- TOSTRING_VOID_INTERNAL(optionalStringArg, info[5]); |
} |
- RefPtr<TestInterfaceConstructor2> impl = TestInterfaceConstructor2::create(testInterfaceEmptyArg, longArg, defaultUndefinedOptionalStringArg, defaultNullStringOptionalStringArg, defaultUndefinedOptionalDictionaryArg, optionalStringArg); |
+ RefPtr<TestInterfaceConstructor2> impl = TestInterfaceConstructor2::create(testInterfaceEmptyArg, longArg, Optional<V8StringResource<> >(defaultUndefinedOptionalStringArg, defaultUndefinedOptionalStringArgMissing), defaultNullStringOptionalStringArg, Optional<Dictionary>(defaultUndefinedOptionalDictionaryArg, defaultUndefinedOptionalDictionaryArgMissing), Optional<V8StringResource<> >(optionalStringArg, optionalStringArgMissing)); |
v8::Handle<v8::Object> wrapper = info.Holder(); |
V8DOMWrapper::associateObjectWithWrapper<V8TestInterfaceConstructor2>(impl.release(), &V8TestInterfaceConstructor2::wrapperTypeInfo, wrapper, info.GetIsolate(), WrapperConfiguration::Independent); |
v8SetReturnValue(info, wrapper); |