Modified: trunk/Source/WebCore/ChangeLog (102378 => 102379)
--- trunk/Source/WebCore/ChangeLog 2011-12-08 21:27:16 UTC (rev 102378)
+++ trunk/Source/WebCore/ChangeLog 2011-12-08 21:29:31 UTC (rev 102379)
@@ -1,3 +1,18 @@
+2011-12-08 Erik Arvidsson <[email protected]>
+
+ CodeGeneratorV8: Fix issue with overloaded static conditional methods
+ https://bugs.webkit.org/show_bug.cgi?id=74114
+
+ Reviewed by Adam Barth.
+
+ The code generator was missing checks for Conditional for overloaded methods.
+
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GenerateOverloadedFunctionCallback): Generate needed #ifdefs.
+ (GenerateFunctionCallback): Ditto.
+ * bindings/scripts/test/V8/V8TestObj.cpp: Wrap conditional methods with #ifdefs.
+ (WebCore::ConfigureV8TestObjTemplate):
+
2011-12-08 Dominic Mazzoni <[email protected]>
AccessibilityController should support listening to notifications on all elements.
Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm (102378 => 102379)
--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm 2011-12-08 21:27:16 UTC (rev 102378)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm 2011-12-08 21:29:31 UTC (rev 102379)
@@ -1288,6 +1288,8 @@
# declaration in the IDL.
my $name = $function->signature->name;
+ my $conditionalString = GenerateConditionalString($function->signature);
+ push(@implContentDecls, "#if ${conditionalString}\n\n") if $conditionalString;
push(@implContentDecls, <<END);
static v8::Handle<v8::Value> ${name}Callback(const v8::Arguments& args)
{
@@ -1304,6 +1306,7 @@
return notHandledByInterceptor();
END
push(@implContentDecls, "}\n\n");
+ push(@implContentDecls, "#endif // ${conditionalString}\n\n") if $conditionalString;
}
sub GenerateFunctionCallback
@@ -1331,6 +1334,8 @@
return;
}
+ my $conditionalString = GenerateConditionalString($function->signature);
+ push(@implContentDecls, "#if ${conditionalString}\n\n") if $conditionalString;
push(@implContentDecls, <<END);
static v8::Handle<v8::Value> ${name}Callback(const v8::Arguments& args)
{
@@ -1425,6 +1430,7 @@
}
push(@implContentDecls, "}\n\n");
+ push(@implContentDecls, "#endif // ${conditionalString}\n\n") if $conditionalString;
}
sub GenerateArgumentsCountCheck
@@ -2614,9 +2620,14 @@
next;
}
+ my $conditionalString = GenerateConditionalString($function->signature);
+ push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
+
push(@implContent, <<END);
${conditional}$template->Set(v8::String::New("$name"), v8::FunctionTemplate::New($callback, v8::Handle<v8::Value>(), ${signature})$property_attributes);
END
+
+ push(@implContent, "#endif // ${conditionalString}\n") if $conditionalString;
$num_callbacks++;
}
Modified: trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp (102378 => 102379)
--- trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp 2011-12-08 21:27:16 UTC (rev 102378)
+++ trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp 2011-12-08 21:29:31 UTC (rev 102379)
@@ -1139,6 +1139,8 @@
return v8::Handle<v8::Value>();
}
+#if ENABLE(Condition1)
+
static v8::Handle<v8::Value> conditionalMethod1Callback(const v8::Arguments& args)
{
INC_STATS("DOM.TestObj.conditionalMethod1");
@@ -1146,6 +1148,10 @@
return v8String(imp->conditionalMethod1());
}
+#endif // ENABLE(Condition1)
+
+#if ENABLE(Condition1) && ENABLE(Condition2)
+
static v8::Handle<v8::Value> conditionalMethod2Callback(const v8::Arguments& args)
{
INC_STATS("DOM.TestObj.conditionalMethod2");
@@ -1154,6 +1160,10 @@
return v8::Handle<v8::Value>();
}
+#endif // ENABLE(Condition1) && ENABLE(Condition2)
+
+#if ENABLE(Condition1) || ENABLE(Condition2)
+
static v8::Handle<v8::Value> conditionalMethod3Callback(const v8::Arguments& args)
{
INC_STATS("DOM.TestObj.conditionalMethod3");
@@ -1162,6 +1172,8 @@
return v8::Handle<v8::Value>();
}
+#endif // ENABLE(Condition1) || ENABLE(Condition2)
+
static v8::Handle<v8::Value> overloadedMethod1Callback(const v8::Arguments& args)
{
INC_STATS("DOM.TestObj.overloadedMethod1");
@@ -1285,6 +1297,8 @@
return v8::Integer::New(TestObj::classMethodWithOptional(arg));
}
+#if ENABLE(Condition1)
+
static v8::Handle<v8::Value> overloadedMethod11Callback(const v8::Arguments& args)
{
INC_STATS("DOM.TestObj.overloadedMethod11");
@@ -1295,6 +1309,10 @@
return v8::Handle<v8::Value>();
}
+#endif // ENABLE(Condition1)
+
+#if ENABLE(Condition1)
+
static v8::Handle<v8::Value> overloadedMethod12Callback(const v8::Arguments& args)
{
INC_STATS("DOM.TestObj.overloadedMethod12");
@@ -1305,6 +1323,10 @@
return v8::Handle<v8::Value>();
}
+#endif // ENABLE(Condition1)
+
+#if ENABLE(Condition1)
+
static v8::Handle<v8::Value> overloadedMethod1Callback(const v8::Arguments& args)
{
INC_STATS("DOM.TestObj.overloadedMethod1");
@@ -1316,6 +1338,8 @@
return notHandledByInterceptor();
}
+#endif // ENABLE(Condition1)
+
static v8::Handle<v8::Value> enabledAtRuntimeMethod1Callback(const v8::Arguments& args)
{
INC_STATS("DOM.TestObj.enabledAtRuntimeMethod1");
@@ -1591,7 +1615,9 @@
proto->Set(v8::String::New("customArgsAndException"), v8::FunctionTemplate::New(TestObjInternal::customArgsAndExceptionCallback, v8::Handle<v8::Value>(), customArgsAndExceptionSignature));
desc->Set(v8::String::New("classMethod"), v8::FunctionTemplate::New(TestObjInternal::classMethodCallback, v8::Handle<v8::Value>(), v8::Local<v8::Signature>()));
desc->Set(v8::String::New("classMethodWithOptional"), v8::FunctionTemplate::New(TestObjInternal::classMethodWithOptionalCallback, v8::Handle<v8::Value>(), v8::Local<v8::Signature>()));
+#if ENABLE(Condition1)
desc->Set(v8::String::New("overloadedMethod1"), v8::FunctionTemplate::New(TestObjInternal::overloadedMethod1Callback, v8::Handle<v8::Value>(), v8::Local<v8::Signature>()));
+#endif // ENABLE(Condition1)
if (RuntimeEnabledFeatures::enabledAtRuntimeMethod1Enabled())
proto->Set(v8::String::New("enabledAtRuntimeMethod1"), v8::FunctionTemplate::New(TestObjInternal::enabledAtRuntimeMethod1Callback, v8::Handle<v8::Value>(), defaultSignature));
if (RuntimeEnabledFeatures::featureNameEnabled())