Title: [102379] trunk/Source/WebCore
Revision
102379
Author
[email protected]
Date
2011-12-08 13:29:31 -0800 (Thu, 08 Dec 2011)

Log Message

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):

Modified Paths

Diff

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())
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to