Index: Source/bindings/tests/results/V8TestInterfaceConstructor.cpp |
diff --git a/Source/bindings/tests/results/V8TestInterfaceConstructor.cpp b/Source/bindings/tests/results/V8TestInterfaceConstructor.cpp |
index d8bc6fb4304b6fa9673d9e365c6c561acc820c48..eff1b014057b47d712cfdecb098f20e48737bd82 100644 |
--- a/Source/bindings/tests/results/V8TestInterfaceConstructor.cpp |
+++ b/Source/bindings/tests/results/V8TestInterfaceConstructor.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" |
@@ -71,7 +72,9 @@ static void constructor2(const v8::FunctionCallbackInfo<v8::Value>& info) |
Vector<String> sequenceStringArg; |
Vector<Dictionary> sequenceDictionaryArg; |
Dictionary optionalDictionaryArg; |
- TestInterfaceEmpty* optionalTestInterfaceEmptyArg; |
+ bool optionalDictionaryArgMissing = false; |
+ TestInterfaceEmpty* optionalTestInterfaceEmptyArg = nullptr; |
+ bool optionalTestInterfaceEmptyArgMissing = false; |
{ |
v8::TryCatch block; |
V8RethrowTryCatchScope rethrow(block); |
@@ -86,17 +89,25 @@ static void constructor2(const v8::FunctionCallbackInfo<v8::Value>& info) |
} |
TONATIVE_VOID_INTERNAL(sequenceStringArg, toNativeArray<String>(info[4], 5, info.GetIsolate())); |
TONATIVE_VOID_INTERNAL(sequenceDictionaryArg, toNativeArray<Dictionary>(info[5], 6, info.GetIsolate())); |
- TONATIVE_VOID_INTERNAL(optionalDictionaryArg, Dictionary(info[6], info.GetIsolate())); |
- if (!optionalDictionaryArg.isUndefinedOrNull() && !optionalDictionaryArg.isObject()) { |
- exceptionState.throwTypeError("parameter 7 ('optionalDictionaryArg') is not an object."); |
- exceptionState.throwIfNeeded(); |
- return; |
+ if (!info[6]->IsUndefined()) { |
+ TONATIVE_VOID_INTERNAL(optionalDictionaryArg, Dictionary(info[6], info.GetIsolate())); |
+ if (!optionalDictionaryArg.isUndefinedOrNull() && !optionalDictionaryArg.isObject()) { |
+ exceptionState.throwTypeError("parameter 7 ('optionalDictionaryArg') is not an object."); |
+ exceptionState.throwIfNeeded(); |
+ return; |
+ } |
+ } else { |
+ optionalDictionaryArgMissing = true; |
+ } |
+ if (!info[7]->IsUndefined()) { |
+ TONATIVE_VOID_INTERNAL(optionalTestInterfaceEmptyArg, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[7])); |
+ } else { |
+ optionalTestInterfaceEmptyArgMissing = true; |
} |
- TONATIVE_VOID_INTERNAL(optionalTestInterfaceEmptyArg, V8TestInterfaceEmpty::toNativeWithTypeCheck(info.GetIsolate(), info[7])); |
} |
ExecutionContext* executionContext = currentExecutionContext(info.GetIsolate()); |
Document& document = *toDocument(currentExecutionContext(info.GetIsolate())); |
- RefPtr<TestInterfaceConstructor> impl = TestInterfaceConstructor::create(executionContext, document, doubleArg, stringArg, testInterfaceEmptyArg, dictionaryArg, sequenceStringArg, sequenceDictionaryArg, optionalDictionaryArg, optionalTestInterfaceEmptyArg, exceptionState); |
+ RefPtr<TestInterfaceConstructor> impl = TestInterfaceConstructor::create(executionContext, document, doubleArg, stringArg, testInterfaceEmptyArg, dictionaryArg, sequenceStringArg, sequenceDictionaryArg, Optional<Dictionary>(optionalDictionaryArg, optionalDictionaryArgMissing), Optional<RefPtr<TestInterfaceEmpty> >(optionalTestInterfaceEmptyArg, optionalTestInterfaceEmptyArgMissing), exceptionState); |
if (exceptionState.hadException()) { |
exceptionState.throwIfNeeded(); |
return; |
@@ -111,26 +122,18 @@ static void constructor3(const v8::FunctionCallbackInfo<v8::Value>& info) |
ExceptionState exceptionState(ExceptionState::ConstructionContext, "TestInterfaceConstructor", info.Holder(), info.GetIsolate()); |
V8StringResource<> arg; |
V8StringResource<> optArg; |
+ bool optArgMissing = false; |
{ |
TOSTRING_VOID_INTERNAL(arg, info[0]); |
- if (UNLIKELY(info.Length() <= 1)) { |
- ExecutionContext* executionContext = currentExecutionContext(info.GetIsolate()); |
- Document& document = *toDocument(currentExecutionContext(info.GetIsolate())); |
- RefPtr<TestInterfaceConstructor> impl = TestInterfaceConstructor::create(executionContext, document, arg, exceptionState); |
- if (exceptionState.hadException()) { |
- exceptionState.throwIfNeeded(); |
- return; |
- } |
- v8::Handle<v8::Object> wrapper = info.Holder(); |
- V8DOMWrapper::associateObjectWithWrapper<V8TestInterfaceConstructor>(impl.release(), &V8TestInterfaceConstructor::wrapperTypeInfo, wrapper, info.GetIsolate(), WrapperConfiguration::Independent); |
- v8SetReturnValue(info, wrapper); |
- return; |
+ if (!info[1]->IsUndefined()) { |
+ TOSTRING_VOID_INTERNAL(optArg, info[1]); |
+ } else { |
+ optArgMissing = true; |
} |
- TOSTRING_VOID_INTERNAL(optArg, info[1]); |
} |
ExecutionContext* executionContext = currentExecutionContext(info.GetIsolate()); |
Document& document = *toDocument(currentExecutionContext(info.GetIsolate())); |
- RefPtr<TestInterfaceConstructor> impl = TestInterfaceConstructor::create(executionContext, document, arg, optArg, exceptionState); |
+ RefPtr<TestInterfaceConstructor> impl = TestInterfaceConstructor::create(executionContext, document, arg, Optional<V8StringResource<> >(optArg, optArgMissing), exceptionState); |
if (exceptionState.hadException()) { |
exceptionState.throwIfNeeded(); |
return; |
@@ -245,26 +248,18 @@ static void V8TestInterfaceConstructorConstructorCallback(const v8::FunctionCall |
} |
V8StringResource<> arg; |
V8StringResource<> optArg; |
+ bool optArgMissing = false; |
{ |
TOSTRING_VOID_INTERNAL(arg, info[0]); |
- if (UNLIKELY(info.Length() <= 1)) { |
- ExecutionContext* executionContext = currentExecutionContext(info.GetIsolate()); |
- Document& document = *toDocument(currentExecutionContext(info.GetIsolate())); |
- RefPtr<TestInterfaceConstructor> impl = TestInterfaceConstructor::createForJSConstructor(executionContext, document, arg, exceptionState); |
- if (exceptionState.hadException()) { |
- exceptionState.throwIfNeeded(); |
- return; |
- } |
- v8::Handle<v8::Object> wrapper = info.Holder(); |
- V8DOMWrapper::associateObjectWithWrapper<V8TestInterfaceConstructor>(impl.release(), &V8TestInterfaceConstructorConstructor::wrapperTypeInfo, wrapper, info.GetIsolate(), WrapperConfiguration::Independent); |
- v8SetReturnValue(info, wrapper); |
- return; |
+ if (!info[1]->IsUndefined()) { |
+ TOSTRING_VOID_INTERNAL(optArg, info[1]); |
+ } else { |
+ optArgMissing = true; |
} |
- TOSTRING_VOID_INTERNAL(optArg, info[1]); |
} |
ExecutionContext* executionContext = currentExecutionContext(info.GetIsolate()); |
Document& document = *toDocument(currentExecutionContext(info.GetIsolate())); |
- RefPtr<TestInterfaceConstructor> impl = TestInterfaceConstructor::createForJSConstructor(executionContext, document, arg, optArg, exceptionState); |
+ RefPtr<TestInterfaceConstructor> impl = TestInterfaceConstructor::createForJSConstructor(executionContext, document, arg, Optional<V8StringResource<> >(optArg, optArgMissing), exceptionState); |
if (exceptionState.hadException()) { |
exceptionState.throwIfNeeded(); |
return; |