Index: Source/bindings/tests/results/V8TestObject.cpp |
diff --git a/Source/bindings/tests/results/V8TestObject.cpp b/Source/bindings/tests/results/V8TestObject.cpp |
index b3554334ec03874648e0e44a98d190a6bec6c376..471b9aea523c467fc1e5aba20334de5a7880cb48 100644 |
--- a/Source/bindings/tests/results/V8TestObject.cpp |
+++ b/Source/bindings/tests/results/V8TestObject.cpp |
@@ -6787,6 +6787,10 @@ static void overloadedMethodBMethod(const v8::FunctionCallbackInfo<v8::Value>& i |
overloadedMethodB2Method(info); |
return; |
} |
+ if (true) { |
+ overloadedMethodB1Method(info); |
+ return; |
+ } |
break; |
case 2: |
if (true) { |
@@ -7025,6 +7029,10 @@ static void overloadedMethodFMethod(const v8::FunctionCallbackInfo<v8::Value>& i |
overloadedMethodF1Method(info); |
return; |
} |
+ if (true) { |
+ overloadedMethodF2Method(info); |
+ return; |
+ } |
break; |
default: |
exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(0, info.Length())); |
@@ -7188,6 +7196,10 @@ static void overloadedMethodIMethod(const v8::FunctionCallbackInfo<v8::Value>& i |
overloadedMethodI1Method(info); |
return; |
} |
+ if (true) { |
+ overloadedMethodI2Method(info); |
+ return; |
+ } |
break; |
default: |
exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length())); |
@@ -8605,6 +8617,122 @@ static void perWorldBindingsRuntimeEnabledVoidMethodMethodCallbackForMainWorld(c |
TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
} |
+static void runtimeEnabledOverloadedVoidMethod1Method(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ TestObject* impl = V8TestObject::toNative(info.Holder()); |
+ V8StringResource<> stringArg; |
+ { |
+ TOSTRING_VOID_INTERNAL(stringArg, info[0]); |
+ } |
+ impl->runtimeEnabledOverloadedVoidMethod(stringArg); |
+} |
+ |
+static void runtimeEnabledOverloadedVoidMethod2Method(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ ExceptionState exceptionState(ExceptionState::ExecutionContext, "runtimeEnabledOverloadedVoidMethod", "TestObject", info.Holder(), info.GetIsolate()); |
+ TestObject* impl = V8TestObject::toNative(info.Holder()); |
+ int longArg; |
+ { |
+ v8::TryCatch block; |
+ TONATIVE_VOID_EXCEPTIONSTATE_INTERNAL(longArg, toInt32(info[0], exceptionState), exceptionState); |
+ } |
+ impl->runtimeEnabledOverloadedVoidMethod(longArg); |
+} |
+ |
+static void runtimeEnabledOverloadedVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ v8::Isolate* isolate = info.GetIsolate(); |
+ ExceptionState exceptionState(ExceptionState::ExecutionContext, "runtimeEnabledOverloadedVoidMethod", "TestObject", info.Holder(), isolate); |
+ switch (std::min(1, info.Length())) { |
+ case 1: |
+ if (info[0]->IsNumber()) { |
+ runtimeEnabledOverloadedVoidMethod2Method(info); |
+ return; |
+ } |
+ if (true) { |
+ runtimeEnabledOverloadedVoidMethod1Method(info); |
+ return; |
+ } |
+ if (true) { |
+ runtimeEnabledOverloadedVoidMethod2Method(info); |
+ return; |
+ } |
+ break; |
+ default: |
+ exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length())); |
+ exceptionState.throwIfNeeded(); |
+ return; |
+ } |
+ exceptionState.throwTypeError("No function was found that matched the signature provided."); |
+ exceptionState.throwIfNeeded(); |
+} |
+ |
+static void runtimeEnabledOverloadedVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
+ TestObjectV8Internal::runtimeEnabledOverloadedVoidMethodMethod(info); |
+ TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
+} |
+ |
+static void partiallyRuntimeEnabledOverloadedVoidMethod1Method(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ TestObject* impl = V8TestObject::toNative(info.Holder()); |
+ V8StringResource<> stringArg; |
+ { |
+ TOSTRING_VOID_INTERNAL(stringArg, info[0]); |
+ } |
+ impl->partiallyRuntimeEnabledOverloadedVoidMethod(stringArg); |
+} |
+ |
+static void partiallyRuntimeEnabledOverloadedVoidMethod2Method(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ ExceptionState exceptionState(ExceptionState::ExecutionContext, "partiallyRuntimeEnabledOverloadedVoidMethod", "TestObject", info.Holder(), info.GetIsolate()); |
+ TestObject* impl = V8TestObject::toNative(info.Holder()); |
+ int longArg; |
+ { |
+ v8::TryCatch block; |
+ TONATIVE_VOID_EXCEPTIONSTATE_INTERNAL(longArg, toInt32(info[0], exceptionState), exceptionState); |
+ } |
+ impl->partiallyRuntimeEnabledOverloadedVoidMethod(longArg); |
+} |
+ |
+static void partiallyRuntimeEnabledOverloadedVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ v8::Isolate* isolate = info.GetIsolate(); |
+ ExceptionState exceptionState(ExceptionState::ExecutionContext, "partiallyRuntimeEnabledOverloadedVoidMethod", "TestObject", info.Holder(), isolate); |
+ switch (std::min(1, info.Length())) { |
+ case 1: |
+ if (info[0]->IsNumber()) { |
+ partiallyRuntimeEnabledOverloadedVoidMethod2Method(info); |
+ return; |
+ } |
+ if (RuntimeEnabledFeatures::featureNameEnabled()) { |
+ if (true) { |
+ partiallyRuntimeEnabledOverloadedVoidMethod1Method(info); |
+ return; |
+ } |
+ } |
+ if (true) { |
+ partiallyRuntimeEnabledOverloadedVoidMethod2Method(info); |
+ return; |
+ } |
+ break; |
+ default: |
+ exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, info.Length())); |
+ exceptionState.throwIfNeeded(); |
+ return; |
+ } |
+ exceptionState.throwTypeError("No function was found that matched the signature provided."); |
+ exceptionState.throwIfNeeded(); |
+} |
+ |
+static void partiallyRuntimeEnabledOverloadedVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
+ TestObjectV8Internal::partiallyRuntimeEnabledOverloadedVoidMethodMethod(info); |
+ TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
+} |
+ |
static void treatReturnedNullStringAsNullStringMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info) |
{ |
TestObject* impl = V8TestObject::toNative(info.Holder()); |
@@ -9106,16 +9234,16 @@ static const V8DOMConfiguration::MethodConfiguration V8TestObjectMethods[] = { |
{"voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArg", TestObjectV8Internal::voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgMethodCallback, 0, 2}, |
{"voidMethodVariadicTestInterfaceGarbageCollectedArg", TestObjectV8Internal::voidMethodVariadicTestInterfaceGarbageCollectedArgMethodCallback, 0, 1}, |
{"voidMethodVariadicTestInterfaceWillBeGarbageCollectedArg", TestObjectV8Internal::voidMethodVariadicTestInterfaceWillBeGarbageCollectedArgMethodCallback, 0, 1}, |
- {"overloadedMethodA", TestObjectV8Internal::overloadedMethodAMethodCallback, 0, 1}, |
+ {"overloadedMethodA", TestObjectV8Internal::overloadedMethodAMethodCallback, 0, 2}, |
Jens Widell
2014/05/27 13:55:25
These length changes are incorrect and will go awa
|
{"overloadedMethodB", TestObjectV8Internal::overloadedMethodBMethodCallback, 0, 1}, |
{"overloadedMethodC", TestObjectV8Internal::overloadedMethodCMethodCallback, 0, 1}, |
{"overloadedMethodD", TestObjectV8Internal::overloadedMethodDMethodCallback, 0, 1}, |
{"overloadedMethodE", TestObjectV8Internal::overloadedMethodEMethodCallback, 0, 1}, |
- {"overloadedMethodF", TestObjectV8Internal::overloadedMethodFMethodCallback, 0, 0}, |
+ {"overloadedMethodF", TestObjectV8Internal::overloadedMethodFMethodCallback, 0, 1}, |
{"overloadedMethodG", TestObjectV8Internal::overloadedMethodGMethodCallback, 0, 1}, |
{"overloadedMethodH", TestObjectV8Internal::overloadedMethodHMethodCallback, 0, 1}, |
{"overloadedMethodI", TestObjectV8Internal::overloadedMethodIMethodCallback, 0, 1}, |
- {"overloadedPerWorldBindingsMethod", TestObjectV8Internal::overloadedPerWorldBindingsMethodMethodCallback, TestObjectV8Internal::overloadedPerWorldBindingsMethodMethodCallbackForMainWorld, 0}, |
+ {"overloadedPerWorldBindingsMethod", TestObjectV8Internal::overloadedPerWorldBindingsMethodMethodCallback, TestObjectV8Internal::overloadedPerWorldBindingsMethodMethodCallbackForMainWorld, 1}, |
{"voidMethodClampUnsignedShortArg", TestObjectV8Internal::voidMethodClampUnsignedShortArgMethodCallback, 0, 1}, |
{"voidMethodClampUnsignedLongArg", TestObjectV8Internal::voidMethodClampUnsignedLongArgMethodCallback, 0, 1}, |
{"voidMethodDefaultUndefinedTestInterfaceEmptyArg", TestObjectV8Internal::voidMethodDefaultUndefinedTestInterfaceEmptyArgMethodCallback, 0, 0}, |
@@ -9149,13 +9277,13 @@ static const V8DOMConfiguration::MethodConfiguration V8TestObjectMethods[] = { |
{"deprecatedVoidMethod", TestObjectV8Internal::deprecatedVoidMethodMethodCallback, 0, 0}, |
{"implementedAsVoidMethod", TestObjectV8Internal::implementedAsVoidMethodMethodCallback, 0, 0}, |
{"measureAsVoidMethod", TestObjectV8Internal::measureAsVoidMethodMethodCallback, 0, 0}, |
- {"DeprecateAsOverloadedMethod", TestObjectV8Internal::DeprecateAsOverloadedMethodMethodCallback, 0, 0}, |
- {"DeprecateAsSameValueOverloadedMethod", TestObjectV8Internal::DeprecateAsSameValueOverloadedMethodMethodCallback, 0, 0}, |
- {"measureAsOverloadedMethod", TestObjectV8Internal::measureAsOverloadedMethodMethodCallback, 0, 0}, |
- {"measureAsSameValueOverloadedMethod", TestObjectV8Internal::measureAsSameValueOverloadedMethodMethodCallback, 0, 0}, |
- {"deprecateAsMeasureAsSameValueOverloadedMethod", TestObjectV8Internal::deprecateAsMeasureAsSameValueOverloadedMethodMethodCallback, 0, 0}, |
- {"deprecateAsSameValueMeasureAsOverloadedMethod", TestObjectV8Internal::deprecateAsSameValueMeasureAsOverloadedMethodMethodCallback, 0, 0}, |
- {"deprecateAsSameValueMeasureAsSameValueOverloadedMethod", TestObjectV8Internal::deprecateAsSameValueMeasureAsSameValueOverloadedMethodMethodCallback, 0, 0}, |
+ {"DeprecateAsOverloadedMethod", TestObjectV8Internal::DeprecateAsOverloadedMethodMethodCallback, 0, 1}, |
+ {"DeprecateAsSameValueOverloadedMethod", TestObjectV8Internal::DeprecateAsSameValueOverloadedMethodMethodCallback, 0, 1}, |
+ {"measureAsOverloadedMethod", TestObjectV8Internal::measureAsOverloadedMethodMethodCallback, 0, 1}, |
+ {"measureAsSameValueOverloadedMethod", TestObjectV8Internal::measureAsSameValueOverloadedMethodMethodCallback, 0, 1}, |
+ {"deprecateAsMeasureAsSameValueOverloadedMethod", TestObjectV8Internal::deprecateAsMeasureAsSameValueOverloadedMethodMethodCallback, 0, 1}, |
+ {"deprecateAsSameValueMeasureAsOverloadedMethod", TestObjectV8Internal::deprecateAsSameValueMeasureAsOverloadedMethodMethodCallback, 0, 1}, |
+ {"deprecateAsSameValueMeasureAsSameValueOverloadedMethod", TestObjectV8Internal::deprecateAsSameValueMeasureAsSameValueOverloadedMethodMethodCallback, 0, 1}, |
{"perWorldBindingsVoidMethod", TestObjectV8Internal::perWorldBindingsVoidMethodMethodCallback, TestObjectV8Internal::perWorldBindingsVoidMethodMethodCallbackForMainWorld, 0}, |
{"perWorldBindingsVoidMethodTestInterfaceEmptyArg", TestObjectV8Internal::perWorldBindingsVoidMethodTestInterfaceEmptyArgMethodCallback, TestObjectV8Internal::perWorldBindingsVoidMethodTestInterfaceEmptyArgMethodCallbackForMainWorld, 1}, |
{"activityLoggingForAllWorldsPerWorldBindingsVoidMethod", TestObjectV8Internal::activityLoggingForAllWorldsPerWorldBindingsVoidMethodMethodCallback, TestObjectV8Internal::activityLoggingForAllWorldsPerWorldBindingsVoidMethodMethodCallbackForMainWorld, 0}, |
@@ -9246,7 +9374,7 @@ static void configureV8TestObjectTemplate(v8::Handle<v8::FunctionTemplate> funct |
COMPILE_ASSERT(1 == TestObject::FEATURE_ENABLED_CONST, TheValueOfTestObject_FEATURE_ENABLED_CONSTDoesntMatchWithImplementation); |
COMPILE_ASSERT(1 == TestObject::CONST_IMPL, TheValueOfTestObject_CONST_IMPLDoesntMatchWithImplementation); |
functionTemplate->Set(v8AtomicString(isolate, "staticVoidMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::staticVoidMethodMethodCallback, v8Undefined(), v8::Local<v8::Signature>(), 0)); |
- functionTemplate->Set(v8AtomicString(isolate, "overloadedStaticMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::overloadedStaticMethodMethodCallback, v8Undefined(), v8::Local<v8::Signature>(), 1)); |
+ functionTemplate->Set(v8AtomicString(isolate, "overloadedStaticMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::overloadedStaticMethodMethodCallback, v8Undefined(), v8::Local<v8::Signature>(), 2)); |
#if ENABLE(CONDITION) |
functionTemplate->Set(v8AtomicString(isolate, "conditionalConditionStaticVoidMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::conditionalConditionStaticVoidMethodMethodCallback, v8Undefined(), v8::Local<v8::Signature>(), 0)); |
#endif // ENABLE(CONDITION) |
@@ -9254,15 +9382,22 @@ static void configureV8TestObjectTemplate(v8::Handle<v8::FunctionTemplate> funct |
prototypeTemplate->Set(v8AtomicString(isolate, "notEnumerableVoidMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::notEnumerableVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0), static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::DontEnum)); |
prototypeTemplate->Set(v8AtomicString(isolate, "readOnlyVoidMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::readOnlyVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0), static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::ReadOnly)); |
prototypeTemplate->Set(v8AtomicString(isolate, "notEnumerableReadOnlyVoidMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::notEnumerableReadOnlyVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0), static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::DontEnum | v8::ReadOnly)); |
- if (RuntimeEnabledFeatures::featureNameEnabled()) |
+ if (RuntimeEnabledFeatures::featureNameEnabled()) { |
prototypeTemplate->Set(v8AtomicString(isolate, "runtimeEnabledVoidMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::runtimeEnabledVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0)); |
+ } |
if (DOMWrapperWorld::current(isolate).isMainWorld()) { |
- if (RuntimeEnabledFeatures::featureNameEnabled()) |
+ if (RuntimeEnabledFeatures::featureNameEnabled()) { |
prototypeTemplate->Set(v8AtomicString(isolate, "perWorldBindingsRuntimeEnabledVoidMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::perWorldBindingsRuntimeEnabledVoidMethodMethodCallbackForMainWorld, v8Undefined(), defaultSignature, 0)); |
+ } |
} else { |
- if (RuntimeEnabledFeatures::featureNameEnabled()) |
+ if (RuntimeEnabledFeatures::featureNameEnabled()) { |
prototypeTemplate->Set(v8AtomicString(isolate, "perWorldBindingsRuntimeEnabledVoidMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::perWorldBindingsRuntimeEnabledVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0)); |
+ } |
+ } |
+ if (RuntimeEnabledFeatures::featureNameEnabled()) { |
+ prototypeTemplate->Set(v8AtomicString(isolate, "runtimeEnabledOverloadedVoidMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::runtimeEnabledOverloadedVoidMethodMethodCallback, v8Undefined(), defaultSignature, 1)); |
} |
+ prototypeTemplate->Set(v8AtomicString(isolate, "partiallyRuntimeEnabledOverloadedVoidMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::partiallyRuntimeEnabledOverloadedVoidMethodMethodCallback, v8Undefined(), defaultSignature, 1)); |
instanceTemplate->Set(v8AtomicString(isolate, "unforgeableVoidMethod"), v8::FunctionTemplate::New(isolate, TestObjectV8Internal::unforgeableVoidMethodMethodCallback, v8Undefined(), defaultSignature, 0)); |
functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "staticStringAttribute"), TestObjectV8Internal::staticStringAttributeAttributeGetterCallback, TestObjectV8Internal::staticStringAttributeAttributeSetterCallback, v8::External::New(isolate, 0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSignature>(), static_cast<v8::AccessControl>(v8::DEFAULT)); |
functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "staticLongAttribute"), TestObjectV8Internal::staticLongAttributeAttributeGetterCallback, TestObjectV8Internal::staticLongAttributeAttributeSetterCallback, v8::External::New(isolate, 0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSignature>(), static_cast<v8::AccessControl>(v8::DEFAULT)); |