Changeset 109515 in webkit
- Timestamp:
- Mar 1, 2012 10:50:12 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r109514 r109515 1 2012-03-01 Pablo Flouret <pablof@motorola.com> 2 3 Fix code generators to correctly guard header declarations that have a [Conditional] attribute. 4 https://bugs.webkit.org/show_bug.cgi?id=79375 5 6 Reviewed by Kentaro Hara. 7 8 In most cases code generators weren't checking the Conditional attribute 9 when generating code in headers for function/attribute/constants, they 10 were just guarding against the Conditional for the whole interface. 11 12 * bindings/scripts/CodeGeneratorCPP.pm: 13 (GenerateHeader): 14 * bindings/scripts/CodeGeneratorJS.pm: 15 (GenerateHeader): 16 * bindings/scripts/CodeGeneratorObjC.pm: 17 (GenerateHeader): 18 * bindings/scripts/CodeGeneratorV8.pm: 19 (GenerateHeader): 20 * bindings/scripts/test/CPP/WebDOMTestInterface.h: 21 * bindings/scripts/test/CPP/WebDOMTestObj.h: 22 * bindings/scripts/test/JS/JSTestInterface.h: 23 (JSTestInterface): 24 (WebCore): 25 * bindings/scripts/test/JS/JSTestObj.h: 26 (WebCore): 27 * bindings/scripts/test/ObjC/DOMTestInterface.h: 28 * bindings/scripts/test/ObjC/DOMTestObj.h: 29 30 1 31 2012-03-01 Dana Jansens <danakj@chromium.org> 2 32 -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorCPP.pm
r109195 r109515 495 495 } 496 496 497 my $conditionalString = GenerateConditionalString($function->signature); 498 push(@headerFunctions, "#if ${conditionalString}\n") if $conditionalString; 497 499 push(@headerFunctions, " "); 498 500 push(@headerFunctions, $functionDeclaration); 501 push(@headerFunctions, "#endif\n") if $conditionalString; 499 502 } 500 503 -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
r109200 r109515 845 845 $numCustomAttributes++ if ($attribute->signature->extendedAttributes->{"CustomSetter"} || $attribute->signature->extendedAttributes->{"JSCustomSetter"}); 846 846 if ($attribute->signature->extendedAttributes->{"CachedAttribute"}) { 847 my $conditionalString = GenerateConditionalString($attribute->signature); 848 push(@headerContent, "#if ${conditionalString}\n") if $conditionalString; 847 849 push(@headerContent, " JSC::WriteBarrier<JSC::Unknown> m_" . $attribute->signature->name . ";\n"); 848 850 $numCachedAttributes++; 849 851 $needsMarkChildren = 1; 852 push(@headerContent, "#endif\n") if $conditionalString; 850 853 } 851 854 } … … 862 865 863 866 foreach my $attribute (@{$dataNode->attributes}) { 867 my $conditionalString = GenerateConditionalString($attribute->signature); 864 868 if ($attribute->signature->extendedAttributes->{"Custom"} || $attribute->signature->extendedAttributes->{"JSCustom"} || $attribute->signature->extendedAttributes->{"CustomGetter"} || $attribute->signature->extendedAttributes->{"JSCustomGetter"}) { 869 push(@headerContent, "#if ${conditionalString}\n") if $conditionalString; 865 870 my $methodName = $codeGenerator->WK_lcfirst($attribute->signature->name); 866 871 push(@headerContent, " JSC::JSValue " . $methodName . "(JSC::ExecState*) const;\n"); 872 push(@headerContent, "#endif\n") if $conditionalString; 867 873 } 868 874 if (($attribute->signature->extendedAttributes->{"Custom"} || $attribute->signature->extendedAttributes->{"JSCustom"} || $attribute->signature->extendedAttributes->{"CustomSetter"} || $attribute->signature->extendedAttributes->{"JSCustomSetter"}) && $attribute->type !~ /^readonly/) { 875 push(@headerContent, "#if ${conditionalString}\n") if $conditionalString; 869 876 push(@headerContent, " void set" . $codeGenerator->WK_ucfirst($attribute->signature->name) . "(JSC::ExecState*, JSC::JSValue);\n"); 877 push(@headerContent, "#endif\n") if $conditionalString; 870 878 } 871 879 } … … 881 889 next unless $function->signature->extendedAttributes->{"Custom"} or $function->signature->extendedAttributes->{"JSCustom"}; 882 890 next if $function->{overloads} && $function->{overloadIndex} != 1; 891 my $conditionalString = GenerateConditionalString($function->signature); 892 push(@headerContent, "#if ${conditionalString}\n") if $conditionalString; 883 893 my $functionImplementationName = $function->signature->extendedAttributes->{"ImplementedAs"} || $codeGenerator->WK_lcfirst($function->signature->name); 884 894 push(@headerContent, " JSC::JSValue " . $functionImplementationName . "(JSC::ExecState*);\n"); 895 push(@headerContent, "#endif\n") if $conditionalString; 885 896 } 886 897 } … … 1068 1079 foreach my $function (@{$dataNode->functions}) { 1069 1080 next if $function->{overloadIndex} && $function->{overloadIndex} > 1; 1081 my $conditionalString = GenerateConditionalString($function->signature); 1082 push(@headerContent, "#if ${conditionalString}\n") if $conditionalString; 1070 1083 my $functionName = GetFunctionName($className, $function); 1071 1084 push(@headerContent, "JSC::EncodedJSValue JSC_HOST_CALL ${functionName}(JSC::ExecState*);\n"); 1085 push(@headerContent, "#endif\n") if $conditionalString; 1072 1086 } 1073 1087 } … … 1076 1090 push(@headerContent,"// Attributes\n\n"); 1077 1091 foreach my $attribute (@{$dataNode->attributes}) { 1092 my $conditionalString = GenerateConditionalString($attribute->signature); 1093 push(@headerContent, "#if ${conditionalString}\n") if $conditionalString; 1078 1094 my $getter = "js" . $interfaceName . $codeGenerator->WK_ucfirst($attribute->signature->name) . ($attribute->signature->type =~ /Constructor$/ ? "Constructor" : ""); 1079 1095 push(@headerContent, "JSC::JSValue ${getter}(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&);\n"); … … 1082 1098 push(@headerContent, "void ${setter}(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);\n"); 1083 1099 } 1100 push(@headerContent, "#endif\n") if $conditionalString; 1084 1101 } 1085 1102 … … 1098 1115 push(@headerContent,"// Constants\n\n"); 1099 1116 foreach my $constant (@{$dataNode->constants}) { 1117 my $conditionalString = GenerateConditionalString($constant); 1118 push(@headerContent, "#if ${conditionalString}\n") if $conditionalString; 1100 1119 my $getter = "js" . $interfaceName . $codeGenerator->WK_ucfirst($constant->name); 1101 my $conditional = $constant->extendedAttributes->{"Conditional"};1102 if ($conditional) {1103 my $conditionalString = $codeGenerator->GenerateConditionalStringFromAttributeValue($conditional);1104 push(@headerContent, "#if ${conditionalString}\n");1105 }1106 1120 push(@headerContent, "JSC::JSValue ${getter}(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&);\n"); 1107 push(@headerContent, "#endif\n") if $conditional ;1121 push(@headerContent, "#endif\n") if $conditionalString; 1108 1122 } 1109 1123 } -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm
r107299 r109515 921 921 } 922 922 923 my $functionConditionalString = GenerateConditionalString($function->signature); 924 if ($functionConditionalString) { 925 push(@headerFunctions, "#if ${functionConditionalString}\n") if $public; 926 push(@privateHeaderFunctions, "#if ${functionConditionalString}\n") unless $public; 927 push(@deprecatedHeaderFunctions, "#if ${functionConditionalString}\n") if $needsDeprecatedVersion; 928 } 929 923 930 push(@headerFunctions, $functionDeclaration) if $public; 924 931 push(@privateHeaderFunctions, $functionDeclaration) unless $public; … … 948 955 949 956 delete $publicInterfaces{$publicInterfaceKey}; 957 } 958 959 if ($functionConditionalString) { 960 push(@headerFunctions, "#endif\n") if $public; 961 push(@privateHeaderFunctions, "#endif\n") unless $public; 962 push(@deprecatedHeaderFunctions, "#endif\n") if $needsDeprecatedVersion; 950 963 } 951 964 } -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm
r108757 r109515 366 366 367 367 if (($attrExt->{"Custom"} || $attrExt->{"V8Custom"}) && !$attrExt->{"ImplementedBy"} && $function->{overloadIndex} == 1) { 368 my $conditionalString = GenerateConditionalString($function->signature); 369 push(@headerContent, "#if ${conditionalString}\n") if $conditionalString; 368 370 push(@headerContent, <<END); 369 371 static v8::Handle<v8::Value> ${name}Callback(const v8::Arguments&); 370 372 END 373 push(@headerContent, "#endif // ${conditionalString}\n") if $conditionalString; 371 374 } 372 375 … … 385 388 my $name = $attribute->signature->name; 386 389 my $attrExt = $attribute->signature->extendedAttributes; 390 my $conditionalString = GenerateConditionalString($attribute->signature); 387 391 if (($attrExt->{"V8CustomGetter"} || $attrExt->{"CustomGetter"} || 388 392 $attrExt->{"V8Custom"} || $attrExt->{"Custom"}) && 389 393 !$attrExt->{"ImplementedBy"}) { 394 push(@headerContent, "#if ${conditionalString}\n") if $conditionalString; 390 395 push(@headerContent, <<END); 391 396 static v8::Handle<v8::Value> ${name}AccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo&); 392 397 END 398 push(@headerContent, "#endif // ${conditionalString}\n") if $conditionalString; 393 399 } 394 400 if (($attrExt->{"V8CustomSetter"} || $attrExt->{"CustomSetter"} || 395 401 $attrExt->{"V8Custom"} || $attrExt->{"Custom"}) && 396 402 !$attrExt->{"ImplementedBy"}) { 403 push(@headerContent, "#if ${conditionalString}\n") if $conditionalString; 397 404 push(@headerContent, <<END); 398 405 static void ${name}AccessorSetter(v8::Local<v8::String> name, v8::Local<v8::Value>, const v8::AccessorInfo&); 399 406 END 407 push(@headerContent, "#endif // ${conditionalString}\n") if $conditionalString; 400 408 } 401 409 if ($attrExt->{"V8EnabledAtRuntime"}) { -
trunk/Source/WebCore/bindings/scripts/test/CPP/WebDOMTestInterface.h
r108757 r109515 65 65 #endif 66 66 67 #if ENABLE(Condition11) || ENABLE(Condition12) 67 68 void supplementalMethod1(); 69 #endif 70 #if ENABLE(Condition11) || ENABLE(Condition12) 68 71 void supplementalMethod4(); 72 #endif 69 73 70 74 WebCore::TestInterface* impl() const; -
trunk/Source/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.h
r109502 r109515 161 161 void methodWithOptionalStringIsUndefined(const WebDOMString& str); 162 162 void methodWithOptionalStringIsNullString(const WebDOMString& str); 163 #if ENABLE(Condition1) 163 164 WebDOMString conditionalMethod1(); 165 #endif 166 #if ENABLE(Condition1) && ENABLE(Condition2) 164 167 void conditionalMethod2(); 168 #endif 169 #if ENABLE(Condition1) || ENABLE(Condition2) 165 170 void conditionalMethod3(); 171 #endif 166 172 void classMethod(); 167 173 int classMethodWithOptional(int arg); 174 #if ENABLE(Condition1) 168 175 void overloadedMethod1(int arg); 176 #endif 177 #if ENABLE(Condition1) 169 178 void overloadedMethod1(const WebDOMString& type); 179 #endif 170 180 void convert1(const WebDOMa& ); 171 181 void convert2(const WebDOMb& ); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h
r108757 r109515 59 59 60 60 // Custom attributes 61 #if ENABLE(Condition11) || ENABLE(Condition12) 61 62 JSC::JSValue supplementalStr3(JSC::ExecState*) const; 63 #endif 64 #if ENABLE(Condition11) || ENABLE(Condition12) 62 65 void setSupplementalStr3(JSC::ExecState*, JSC::JSValue); 66 #endif 63 67 64 68 // Custom functions 69 #if ENABLE(Condition11) || ENABLE(Condition12) 65 70 JSC::JSValue supplementalMethod3(JSC::ExecState*); 71 #endif 66 72 TestInterface* impl() const { return m_impl; } 67 73 void releaseImpl() { m_impl->deref(); m_impl = 0; } … … 150 156 // Functions 151 157 158 #if ENABLE(Condition11) || ENABLE(Condition12) 152 159 JSC::EncodedJSValue JSC_HOST_CALL jsTestInterfacePrototypeFunctionSupplementalMethod1(JSC::ExecState*); 160 #endif 161 #if ENABLE(Condition11) || ENABLE(Condition12) 153 162 JSC::EncodedJSValue JSC_HOST_CALL jsTestInterfacePrototypeFunctionSupplementalMethod2(JSC::ExecState*); 163 #endif 164 #if ENABLE(Condition11) || ENABLE(Condition12) 154 165 JSC::EncodedJSValue JSC_HOST_CALL jsTestInterfacePrototypeFunctionSupplementalMethod3(JSC::ExecState*); 166 #endif 167 #if ENABLE(Condition11) || ENABLE(Condition12) 155 168 JSC::EncodedJSValue JSC_HOST_CALL jsTestInterfaceConstructorFunctionSupplementalMethod4(JSC::ExecState*); 169 #endif 156 170 // Attributes 157 171 172 #if ENABLE(Condition11) || ENABLE(Condition12) 158 173 JSC::JSValue jsTestInterfaceSupplementalStr1(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 174 #endif 175 #if ENABLE(Condition11) || ENABLE(Condition12) 159 176 JSC::JSValue jsTestInterfaceSupplementalStr2(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 160 177 void setJSTestInterfaceSupplementalStr2(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); 178 #endif 179 #if ENABLE(Condition11) || ENABLE(Condition12) 161 180 JSC::JSValue jsTestInterfaceSupplementalStr3(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 162 181 void setJSTestInterfaceSupplementalStr3(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); 182 #endif 183 #if ENABLE(Condition11) || ENABLE(Condition12) 163 184 JSC::JSValue jsTestInterfaceSupplementalNode(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 164 185 void setJSTestInterfaceSupplementalNode(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); 186 #endif 165 187 JSC::JSValue jsTestInterfaceConstructor(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 166 188 // Constants -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h
r107994 r109515 185 185 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg(JSC::ExecState*); 186 186 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg(JSC::ExecState*); 187 #if ENABLE(Condition1) 187 188 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionConditionalMethod1(JSC::ExecState*); 189 #endif 190 #if ENABLE(Condition1) && ENABLE(Condition2) 188 191 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionConditionalMethod2(JSC::ExecState*); 192 #endif 193 #if ENABLE(Condition1) || ENABLE(Condition2) 189 194 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionConditionalMethod3(JSC::ExecState*); 195 #endif 190 196 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod(JSC::ExecState*); 191 197 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionClassMethod(JSC::ExecState*); 192 198 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionClassMethodWithOptional(JSC::ExecState*); 199 #if ENABLE(Condition1) 193 200 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionOverloadedMethod1(JSC::ExecState*); 201 #endif 194 202 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithUnsignedLongArray(JSC::ExecState*); 195 203 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionGetSVGDocument(JSC::ExecState*); … … 270 278 JSC::JSValue jsTestObjWithScriptArgumentsAndCallStackAttribute(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 271 279 void setJSTestObjWithScriptArgumentsAndCallStackAttribute(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); 280 #if ENABLE(Condition1) 272 281 JSC::JSValue jsTestObjConditionalAttr1(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 273 282 void setJSTestObjConditionalAttr1(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); 283 #endif 284 #if ENABLE(Condition1) && ENABLE(Condition2) 274 285 JSC::JSValue jsTestObjConditionalAttr2(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 275 286 void setJSTestObjConditionalAttr2(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); 287 #endif 288 #if ENABLE(Condition1) || ENABLE(Condition2) 276 289 JSC::JSValue jsTestObjConditionalAttr3(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 277 290 void setJSTestObjConditionalAttr3(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); 291 #endif 292 #if ENABLE(Condition1) 278 293 JSC::JSValue jsTestObjConditionalAttr4Constructor(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 279 294 void setJSTestObjConditionalAttr4Constructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); 295 #endif 296 #if ENABLE(Condition1) && ENABLE(Condition2) 280 297 JSC::JSValue jsTestObjConditionalAttr5Constructor(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 281 298 void setJSTestObjConditionalAttr5Constructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); 299 #endif 300 #if ENABLE(Condition1) || ENABLE(Condition2) 282 301 JSC::JSValue jsTestObjConditionalAttr6Constructor(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 283 302 void setJSTestObjConditionalAttr6Constructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); 303 #endif 284 304 JSC::JSValue jsTestObjCachedAttribute1(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); 285 305 JSC::JSValue jsTestObjCachedAttribute2(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&); -
trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestInterface.h
r108757 r109515 59 59 - (void)setSupplementalNode:(DOMNode *)newSupplementalNode; 60 60 #endif 61 #if ENABLE(Condition11) || ENABLE(Condition12) 61 62 - (void)supplementalMethod1; 63 #endif 64 #if ENABLE(Condition11) || ENABLE(Condition12) 62 65 - (DOMTestObj *)supplementalMethod2:(NSString *)strArg objArg:(DOMTestObj *)objArg; 66 #endif 67 #if ENABLE(Condition11) || ENABLE(Condition12) 63 68 - (void)supplementalMethod3; 69 #endif 70 #if ENABLE(Condition11) || ENABLE(Condition12) 64 71 - (void)supplementalMethod4; 72 #endif 65 73 @end 66 74 -
trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.h
r107994 r109515 196 196 - (void)methodWithOptionalStringIsUndefined:(NSString *)str; 197 197 - (void)methodWithOptionalStringIsNullString:(NSString *)str; 198 #if ENABLE(Condition1) 198 199 - (NSString *)conditionalMethod1; 200 #endif 201 #if ENABLE(Condition1) && ENABLE(Condition2) 199 202 - (void)conditionalMethod2; 203 #endif 204 #if ENABLE(Condition1) || ENABLE(Condition2) 200 205 - (void)conditionalMethod3; 206 #endif 201 207 - (void)classMethod; 202 208 - (int)classMethodWithOptional:(int)arg; 209 #if ENABLE(Condition1) 203 210 - (void)overloadedMethod1:(int)arg; 211 #endif 212 #if ENABLE(Condition1) 204 213 - (void)overloadedMethod1:(NSString *)type; 214 #endif 205 215 - (DOMSVGDocument *)getSVGDocument; 206 216 - (void)convert1:(DOMa *);
Note: See TracChangeset
for help on using the changeset viewer.