Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Side by Side Diff: Source/bindings/scripts/deprecated_code_generator_v8.pm

Issue 23068032: Add constants and primitive type readonly attributes to Python IDL compiler (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Re-reupload Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/bindings/scripts/code_generator_v8.py ('k') | Source/bindings/templates/attributes.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (C) 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> 1 # Copyright (C) 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
2 # Copyright (C) 2006 Anders Carlsson <andersca@mac.com> 2 # Copyright (C) 2006 Anders Carlsson <andersca@mac.com>
3 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> 3 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
4 # Copyright (C) 2006 Alexey Proskuryakov <ap@webkit.org> 4 # Copyright (C) 2006 Alexey Proskuryakov <ap@webkit.org>
5 # Copyright (C) 2006 Apple Computer, Inc. 5 # Copyright (C) 2006 Apple Computer, Inc.
6 # Copyright (C) 2007, 2008, 2009, 2012 Google Inc. 6 # Copyright (C) 2007, 2008, 2009, 2012 Google Inc.
7 # Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> 7 # Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
8 # Copyright (C) Research In Motion Limited 2010. All rights reserved. 8 # Copyright (C) Research In Motion Limited 2010. All rights reserved.
9 # Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 9 # Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
10 # Copyright (C) 2012 Ericsson AB. All rights reserved. 10 # Copyright (C) 2012 Ericsson AB. All rights reserved.
(...skipping 4135 matching lines...) Expand 10 before | Expand all | Expand 10 after
4146 AddToImplIncludes(HeaderFilesForInterface($implementedBy, $implement edByImplName)); 4146 AddToImplIncludes(HeaderFilesForInterface($implementedBy, $implement edByImplName));
4147 } 4147 }
4148 if ($attrExt->{"EnabledAtRuntime"}) { 4148 if ($attrExt->{"EnabledAtRuntime"}) {
4149 push(@constantsEnabledAtRuntime, $constant); 4149 push(@constantsEnabledAtRuntime, $constant);
4150 } else { 4150 } else {
4151 my $conditionalString = GenerateConditionalString($constant); 4151 my $conditionalString = GenerateConditionalString($constant);
4152 $code .= "#if ${conditionalString}\n" if $conditionalString; 4152 $code .= "#if ${conditionalString}\n" if $conditionalString;
4153 $code .= <<END; 4153 $code .= <<END;
4154 {"${name}", $value}, 4154 {"${name}", $value},
4155 END 4155 END
4156 $code .= "#endif\n" if $conditionalString; 4156 $code .= "#endif // $conditionalString\n" if $conditionalString;
4157 } 4157 }
4158 } 4158 }
4159 if ($has_constants) { 4159 if ($has_constants) {
4160 $code .= "};\n\n"; 4160 $code .= "};\n\n";
4161 $code .= join "", GenerateCompileTimeCheckForEnumsIfNeeded($interface); 4161 $code .= join "", GenerateCompileTimeCheckForEnumsIfNeeded($interface);
4162 $implementation{nameSpaceWebCore}->add($code); 4162 $implementation{nameSpaceWebCore}->add($code);
4163 } 4163 }
4164 4164
4165 if (!HasCustomConstructor($interface)) { 4165 if (!HasCustomConstructor($interface)) {
4166 if ($interface->extendedAttributes->{"NamedConstructor"}) { 4166 if ($interface->extendedAttributes->{"NamedConstructor"}) {
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
4234 ${v8ClassName}Methods, WTF_ARRAY_LENGTH(${v8ClassName}Methods), isolate, currentWorldType); 4234 ${v8ClassName}Methods, WTF_ARRAY_LENGTH(${v8ClassName}Methods), isolate, currentWorldType);
4235 END 4235 END
4236 } else { 4236 } else {
4237 $code .= <<END; 4237 $code .= <<END;
4238 0, 0, isolate, currentWorldType); 4238 0, 0, isolate, currentWorldType);
4239 END 4239 END
4240 } 4240 }
4241 4241
4242 AddToImplIncludes("wtf/UnusedParam.h"); 4242 AddToImplIncludes("wtf/UnusedParam.h");
4243 $code .= <<END; 4243 $code .= <<END;
4244 UNUSED_PARAM(defaultSignature); // In some cases, it will not be used. 4244 UNUSED_PARAM(defaultSignature);
4245 END 4245 END
4246 4246
4247 if (IsConstructable($interface)) { 4247 if (IsConstructable($interface)) {
4248 $code .= " desc->SetCallHandler(${v8ClassName}::constructorCallback); \n"; 4248 $code .= " desc->SetCallHandler(${v8ClassName}::constructorCallback); \n";
4249 my $interfaceLength = GetInterfaceLength($interface); 4249 my $interfaceLength = GetInterfaceLength($interface);
4250 $code .= " desc->SetLength(${interfaceLength});\n"; 4250 $code .= " desc->SetLength(${interfaceLength});\n";
4251 } 4251 }
4252 4252
4253 if ($access_check or @enabledAtRuntimeAttributes or @normalFunctions or $has _constants) { 4253 if ($access_check or @enabledAtRuntimeAttributes or @normalFunctions or $has _constants) {
4254 $code .= <<END; 4254 $code .= <<END;
4255 v8::Local<v8::ObjectTemplate> instance = desc->InstanceTemplate(); 4255 v8::Local<v8::ObjectTemplate> instance = desc->InstanceTemplate();
4256 v8::Local<v8::ObjectTemplate> proto = desc->PrototypeTemplate(); 4256 v8::Local<v8::ObjectTemplate> proto = desc->PrototypeTemplate();
4257 UNUSED_PARAM(instance); // In some cases, it will not be used. 4257 UNUSED_PARAM(instance);
4258 UNUSED_PARAM(proto); // In some cases, it will not be used. 4258 UNUSED_PARAM(proto);
4259 END 4259 END
4260 } 4260 }
4261 4261
4262 if ($access_check) { 4262 if ($access_check) {
4263 $code .= " $access_check\n"; 4263 $code .= " $access_check\n";
4264 } 4264 }
4265 4265
4266 # Setup the enable-at-runtime attributes if we have them 4266 # Setup the enable-at-runtime attributes if we have them
4267 foreach my $runtime_attr (@enabledAtRuntimeAttributes) { 4267 foreach my $runtime_attr (@enabledAtRuntimeAttributes) {
4268 next if grep { $_ eq $runtime_attr } @enabledPerContextAttributes; 4268 next if grep { $_ eq $runtime_attr } @enabledPerContextAttributes;
(...skipping 19 matching lines...) Expand all
4288 $code .= "\n#if ${conditionalString}\n" if $conditionalString; 4288 $code .= "\n#if ${conditionalString}\n" if $conditionalString;
4289 $code .= " if (${enable_function}()) {\n"; 4289 $code .= " if (${enable_function}()) {\n";
4290 $code .= <<END; 4290 $code .= <<END;
4291 static const V8DOMConfiguration::ConstantConfiguration constantConfigura tion = {"${name}", static_cast<signed int>(${value})}; 4291 static const V8DOMConfiguration::ConstantConfiguration constantConfigura tion = {"${name}", static_cast<signed int>(${value})};
4292 V8DOMConfiguration::installConstants(desc, proto, &constantConfiguration , 1, isolate); 4292 V8DOMConfiguration::installConstants(desc, proto, &constantConfiguration , 1, isolate);
4293 END 4293 END
4294 $code .= " }\n"; 4294 $code .= " }\n";
4295 $code .= "\n#endif // ${conditionalString}\n" if $conditionalString; 4295 $code .= "\n#endif // ${conditionalString}\n" if $conditionalString;
4296 } 4296 }
4297 4297
4298 if ($has_constants) {
4299 $code .= <<END;
4300 V8DOMConfiguration::installConstants(desc, proto, ${v8ClassName}Constants, W TF_ARRAY_LENGTH(${v8ClassName}Constants), isolate);
4301 END
4302 }
4303
4298 $code .= GenerateImplementationIndexedPropertyAccessors($interface); 4304 $code .= GenerateImplementationIndexedPropertyAccessors($interface);
4299 $code .= GenerateImplementationNamedPropertyAccessors($interface); 4305 $code .= GenerateImplementationNamedPropertyAccessors($interface);
4300 $code .= GenerateImplementationLegacyCall($interface); 4306 $code .= GenerateImplementationLegacyCall($interface);
4301 $code .= GenerateImplementationMasqueradesAsUndefined($interface); 4307 $code .= GenerateImplementationMasqueradesAsUndefined($interface);
4302 4308
4303 # Define our functions with Set() or SetAccessor() 4309 # Define our functions with Set() or SetAccessor()
4304 my $total_functions = 0; 4310 my $total_functions = 0;
4305 foreach my $function (@normalFunctions) { 4311 foreach my $function (@normalFunctions) {
4306 # Only one accessor is needed for overloaded methods: 4312 # Only one accessor is needed for overloaded methods:
4307 next if $function->{overloadIndex} > 1; 4313 next if $function->{overloadIndex} > 1;
4308 next if $function->name eq ""; 4314 next if $function->name eq "";
4309 4315
4310 $total_functions++; 4316 $total_functions++;
4311 next if IsStandardFunction($interface, $function); 4317 next if IsStandardFunction($interface, $function);
4312 $code .= GenerateNonStandardFunction($interface, $function); 4318 $code .= GenerateNonStandardFunction($interface, $function);
4313 $num_callbacks++; 4319 $num_callbacks++;
4314 } 4320 }
4315 4321
4316 die "Wrong number of callbacks generated for $interfaceName ($num_callbacks, should be $total_functions)" if $num_callbacks != $total_functions; 4322 die "Wrong number of callbacks generated for $interfaceName ($num_callbacks, should be $total_functions)" if $num_callbacks != $total_functions;
4317 4323
4318 if ($has_constants) {
4319 $code .= <<END;
4320 V8DOMConfiguration::installConstants(desc, proto, ${v8ClassName}Constants, W TF_ARRAY_LENGTH(${v8ClassName}Constants), isolate);
4321 END
4322 }
4323
4324 # Special cases 4324 # Special cases
4325 if ($interfaceName eq "Window") { 4325 if ($interfaceName eq "Window") {
4326 $code .= <<END; 4326 $code .= <<END;
4327 4327
4328 proto->SetInternalFieldCount(V8Window::internalFieldCount); 4328 proto->SetInternalFieldCount(V8Window::internalFieldCount);
4329 desc->SetHiddenPrototype(true); 4329 desc->SetHiddenPrototype(true);
4330 instance->SetInternalFieldCount(V8Window::internalFieldCount); 4330 instance->SetInternalFieldCount(V8Window::internalFieldCount);
4331 // Set access check callbacks, but turned off initially. 4331 // Set access check callbacks, but turned off initially.
4332 // When a context is detached from a frame, turn on the access check. 4332 // When a context is detached from a frame, turn on the access check.
4333 // Turning on checks also invalidates inline caches of the object. 4333 // Turning on checks also invalidates inline caches of the object.
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
4422 if (@enabledPerContextFunctions) { 4422 if (@enabledPerContextFunctions) {
4423 my $code = ""; 4423 my $code = "";
4424 $code .= <<END; 4424 $code .= <<END;
4425 void ${v8ClassName}::installPerContextPrototypeProperties(v8::Handle<v8::Object> proto, v8::Isolate* isolate) 4425 void ${v8ClassName}::installPerContextPrototypeProperties(v8::Handle<v8::Object> proto, v8::Isolate* isolate)
4426 { 4426 {
4427 UNUSED_PARAM(proto); 4427 UNUSED_PARAM(proto);
4428 END 4428 END
4429 # Setup the enable-by-settings functions if we have them 4429 # Setup the enable-by-settings functions if we have them
4430 $code .= <<END; 4430 $code .= <<END;
4431 v8::Local<v8::Signature> defaultSignature = v8::Signature::New(GetTemplate(i solate, worldType(isolate))); 4431 v8::Local<v8::Signature> defaultSignature = v8::Signature::New(GetTemplate(i solate, worldType(isolate)));
4432 UNUSED_PARAM(defaultSignature); // In some cases, it will not be used. 4432 UNUSED_PARAM(defaultSignature);
4433 4433
4434 ScriptExecutionContext* context = toScriptExecutionContext(proto->CreationCo ntext()); 4434 ScriptExecutionContext* context = toScriptExecutionContext(proto->CreationCo ntext());
4435 END 4435 END
4436 4436
4437 foreach my $runtimeFunc (@enabledPerContextFunctions) { 4437 foreach my $runtimeFunc (@enabledPerContextFunctions) {
4438 my $enableFunction = GetContextEnableFunction($runtimeFunc); 4438 my $enableFunction = GetContextEnableFunction($runtimeFunc);
4439 my $functionLength = GetFunctionLength($runtimeFunc); 4439 my $functionLength = GetFunctionLength($runtimeFunc);
4440 my $conditionalString = GenerateConditionalString($runtimeFunc); 4440 my $conditionalString = GenerateConditionalString($runtimeFunc);
4441 $code .= "\n#if ${conditionalString}\n" if $conditionalString; 4441 $code .= "\n#if ${conditionalString}\n" if $conditionalString;
4442 $code .= " if (context && context->isDocument() && ${enableFuncti on}(toDocument(context)))\n"; 4442 $code .= " if (context && context->isDocument() && ${enableFuncti on}(toDocument(context)))\n";
(...skipping 1531 matching lines...) Expand 10 before | Expand all | Expand 10 after
5974 my $conditionalString = GenerateConditionalString($constant); 5974 my $conditionalString = GenerateConditionalString($constant);
5975 push(@checks, "#if ${conditionalString}\n") if $conditionalString; 5975 push(@checks, "#if ${conditionalString}\n") if $conditionalString;
5976 5976
5977 if ($constant->extendedAttributes->{"ImplementedBy"}) { 5977 if ($constant->extendedAttributes->{"ImplementedBy"}) {
5978 my $implementedByImplName = GetImplNameFromImplementedBy($consta nt->extendedAttributes->{"ImplementedBy"}); 5978 my $implementedByImplName = GetImplNameFromImplementedBy($consta nt->extendedAttributes->{"ImplementedBy"});
5979 push(@checks, "COMPILE_ASSERT($value == " . $implementedByImplNa me . "::$name, ${implClassName}Enum${name}IsWrongUseDoNotCheckConstants);\n"); 5979 push(@checks, "COMPILE_ASSERT($value == " . $implementedByImplNa me . "::$name, ${implClassName}Enum${name}IsWrongUseDoNotCheckConstants);\n");
5980 } else { 5980 } else {
5981 push(@checks, "COMPILE_ASSERT($value == ${implClassName}::$name, ${implClassName}Enum${name}IsWrongUseDoNotCheckConstants);\n"); 5981 push(@checks, "COMPILE_ASSERT($value == ${implClassName}::$name, ${implClassName}Enum${name}IsWrongUseDoNotCheckConstants);\n");
5982 } 5982 }
5983 5983
5984 push(@checks, "#endif\n") if $conditionalString; 5984 push(@checks, "#endif // $conditionalString\n") if $conditionalStrin g;
5985 } 5985 }
5986 push(@checks, "\n"); 5986 push(@checks, "\n");
5987 } 5987 }
5988 return @checks; 5988 return @checks;
5989 } 5989 }
5990 5990
5991 sub ExtendedAttributeContains 5991 sub ExtendedAttributeContains
5992 { 5992 {
5993 my $callWith = shift; 5993 my $callWith = shift;
5994 return 0 unless $callWith; 5994 return 0 unless $callWith;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
6028 if ($currentInterface->extendedAttributes->{$extendedAttribute}) { 6028 if ($currentInterface->extendedAttributes->{$extendedAttribute}) {
6029 $found = 1; 6029 $found = 1;
6030 } 6030 }
6031 return 1 if $found; 6031 return 1 if $found;
6032 }, 0); 6032 }, 0);
6033 6033
6034 return $found; 6034 return $found;
6035 } 6035 }
6036 6036
6037 1; 6037 1;
OLDNEW
« no previous file with comments | « Source/bindings/scripts/code_generator_v8.py ('k') | Source/bindings/templates/attributes.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698