| OLD | NEW |
| 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 1050 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1061 } | 1061 } |
| 1062 } | 1062 } |
| 1063 | 1063 |
| 1064 sub GetInternalFields | 1064 sub GetInternalFields |
| 1065 { | 1065 { |
| 1066 my $interface = shift; | 1066 my $interface = shift; |
| 1067 | 1067 |
| 1068 my @customInternalFields = (); | 1068 my @customInternalFields = (); |
| 1069 # If we have persistentHandleIndex, it should be at the first index of the c
ustom | 1069 # If we have persistentHandleIndex, it should be at the first index of the c
ustom |
| 1070 # internal fileds. | 1070 # internal fileds. |
| 1071 if (IsGarbageCollectedType($interface->name)) { | 1071 if (IsWillBeGarbageCollectedType($interface->name)) { |
| 1072 push(@customInternalFields, "persistentHandleIndex"); | 1072 push(@customInternalFields, "persistentHandleIndex"); |
| 1073 } | 1073 } |
| 1074 # Event listeners on DOM nodes are explicitly supported in the GC controller
. | 1074 # Event listeners on DOM nodes are explicitly supported in the GC controller
. |
| 1075 if (!InheritsInterface($interface, "Node") && | 1075 if (!InheritsInterface($interface, "Node") && |
| 1076 InheritsInterface($interface, "EventTarget")) { | 1076 InheritsInterface($interface, "EventTarget")) { |
| 1077 push(@customInternalFields, "eventListenerCacheIndex"); | 1077 push(@customInternalFields, "eventListenerCacheIndex"); |
| 1078 } | 1078 } |
| 1079 return @customInternalFields; | 1079 return @customInternalFields; |
| 1080 } | 1080 } |
| 1081 | 1081 |
| (...skipping 1841 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2923 last if $index eq $paramIndex; | 2923 last if $index eq $paramIndex; |
| 2924 if ($replacements{$parameter->name}) { | 2924 if ($replacements{$parameter->name}) { |
| 2925 push(@argumentList, $replacements{$parameter->name}); | 2925 push(@argumentList, $replacements{$parameter->name}); |
| 2926 } else { | 2926 } else { |
| 2927 push(@argumentList, $parameter->name); | 2927 push(@argumentList, $parameter->name); |
| 2928 } | 2928 } |
| 2929 $index++; | 2929 $index++; |
| 2930 } | 2930 } |
| 2931 | 2931 |
| 2932 my $argumentString = join(", ", @beforeArgumentList, @argumentList, @afterAr
gumentList); | 2932 my $argumentString = join(", ", @beforeArgumentList, @argumentList, @afterAr
gumentList); |
| 2933 my $refPtrType = IsGarbageCollectedType($interfaceName) ? "RefPtrWillBeRawPt
r<$implClassName>" : "RefPtr<$implClassName>"; | 2933 my $refPtrType = IsWillBeGarbageCollectedType($interfaceName) ? "RefPtrWillB
eRawPtr<$implClassName>" : "RefPtr<$implClassName>"; |
| 2934 $code .= " $refPtrType impl = ${implClassName}::create(${argumentString})
;\n"; | 2934 $code .= " $refPtrType impl = ${implClassName}::create(${argumentString})
;\n"; |
| 2935 $code .= " v8::Handle<v8::Object> wrapper = info.Holder();\n"; | 2935 $code .= " v8::Handle<v8::Object> wrapper = info.Holder();\n"; |
| 2936 | 2936 |
| 2937 if ($constructorRaisesException) { | 2937 if ($constructorRaisesException) { |
| 2938 $code .= " if (exceptionState.throwIfNeeded())\n"; | 2938 $code .= " if (exceptionState.throwIfNeeded())\n"; |
| 2939 $code .= " return;\n"; | 2939 $code .= " return;\n"; |
| 2940 } | 2940 } |
| 2941 | 2941 |
| 2942 $code .= <<END; | 2942 $code .= <<END; |
| 2943 | 2943 |
| (...skipping 1418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4362 WebCore::initializeScriptWrappableForInterface(object); | 4362 WebCore::initializeScriptWrappableForInterface(object); |
| 4363 } | 4363 } |
| 4364 | 4364 |
| 4365 namespace WebCore { | 4365 namespace WebCore { |
| 4366 END | 4366 END |
| 4367 $implementation{nameSpaceWebCore}->addHeader($code); | 4367 $implementation{nameSpaceWebCore}->addHeader($code); |
| 4368 } | 4368 } |
| 4369 | 4369 |
| 4370 my $code = "const WrapperTypeInfo ${v8ClassName}::wrapperTypeInfo = { gin::k
EmbedderBlink, ${v8ClassName}::domTemplate, $derefObject, $toActiveDOMObject, $t
oEventTarget, "; | 4370 my $code = "const WrapperTypeInfo ${v8ClassName}::wrapperTypeInfo = { gin::k
EmbedderBlink, ${v8ClassName}::domTemplate, $derefObject, $toActiveDOMObject, $t
oEventTarget, "; |
| 4371 $code .= "$visitDOMWrapper, ${v8ClassName}::installPerContextEnabledMethods,
$parentClassInfo, $WrapperTypePrototype, "; | 4371 $code .= "$visitDOMWrapper, ${v8ClassName}::installPerContextEnabledMethods,
$parentClassInfo, $WrapperTypePrototype, "; |
| 4372 $code .= IsGarbageCollectedType($interfaceName) ? "true" : "false"; | 4372 $code .= IsWillBeGarbageCollectedType($interfaceName) ? "true" : "false"; |
| 4373 $code .= " };\n"; | 4373 $code .= " };\n"; |
| 4374 $implementation{nameSpaceWebCore}->addHeader($code); | 4374 $implementation{nameSpaceWebCore}->addHeader($code); |
| 4375 | 4375 |
| 4376 $implementation{nameSpaceInternal}->add("template <typename T> void V8_USE(T
) { }\n\n"); | 4376 $implementation{nameSpaceInternal}->add("template <typename T> void V8_USE(T
) { }\n\n"); |
| 4377 | 4377 |
| 4378 my $hasConstructors = 0; | 4378 my $hasConstructors = 0; |
| 4379 my $hasReplaceable = 0; | 4379 my $hasReplaceable = 0; |
| 4380 | 4380 |
| 4381 # Generate property accessors for attributes. | 4381 # Generate property accessors for attributes. |
| 4382 for (my $index = 0; $index < @{$interface->attributes}; $index++) { | 4382 for (my $index = 0; $index < @{$interface->attributes}; $index++) { |
| (...skipping 1090 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5473 return $isParameter ? "${type}*" : "RefPtr<${type}>"; | 5473 return $isParameter ? "${type}*" : "RefPtr<${type}>"; |
| 5474 } | 5474 } |
| 5475 | 5475 |
| 5476 # We need to check [ImplementedAs] extended attribute for wrapper types. | 5476 # We need to check [ImplementedAs] extended attribute for wrapper types. |
| 5477 return "RefPtr<$type>" if $type eq "XPathNSResolver"; # FIXME: can this be
put in nonWrapperTypes instead? | 5477 return "RefPtr<$type>" if $type eq "XPathNSResolver"; # FIXME: can this be
put in nonWrapperTypes instead? |
| 5478 if (IsWrapperType($type)) { | 5478 if (IsWrapperType($type)) { |
| 5479 my $interface = ParseInterface($type); | 5479 my $interface = ParseInterface($type); |
| 5480 my $implClassName = GetImplName($interface); | 5480 my $implClassName = GetImplName($interface); |
| 5481 if ($isParameter) { | 5481 if ($isParameter) { |
| 5482 return "$implClassName*"; | 5482 return "$implClassName*"; |
| 5483 } elsif (IsGarbageCollectedType($interface->name)) { | 5483 } elsif (IsWillBeGarbageCollectedType($interface->name)) { |
| 5484 return "RefPtrWillBeRawPtr<$implClassName>"; | 5484 return "RefPtrWillBeRawPtr<$implClassName>"; |
| 5485 } else { | 5485 } else { |
| 5486 return "RefPtr<$implClassName>"; | 5486 return "RefPtr<$implClassName>"; |
| 5487 } | 5487 } |
| 5488 } | 5488 } |
| 5489 return "RefPtr<$type>" if IsRefPtrType($type) and (not $isParameter or $nonW
rapperTypes{$type}); | 5489 return "RefPtr<$type>" if IsRefPtrType($type) and (not $isParameter or $nonW
rapperTypes{$type}); |
| 5490 | 5490 |
| 5491 my $arrayOrSequenceType = GetArrayOrSequenceType($type); | 5491 my $arrayOrSequenceType = GetArrayOrSequenceType($type); |
| 5492 | 5492 |
| 5493 if ($arrayOrSequenceType) { | 5493 if ($arrayOrSequenceType) { |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5916 # return ContextFeatures::{featureName}Enabled | 5916 # return ContextFeatures::{featureName}Enabled |
| 5917 my $featureName = ToMethodName($signature->extendedAttributes->{"PerContextE
nabled"}); | 5917 my $featureName = ToMethodName($signature->extendedAttributes->{"PerContextE
nabled"}); |
| 5918 return "ContextFeatures::${featureName}Enabled"; | 5918 return "ContextFeatures::${featureName}Enabled"; |
| 5919 } | 5919 } |
| 5920 | 5920 |
| 5921 sub GetPassRefPtrType | 5921 sub GetPassRefPtrType |
| 5922 { | 5922 { |
| 5923 my $interface = shift; | 5923 my $interface = shift; |
| 5924 my $nativeType = GetNativeTypeForConversions($interface); | 5924 my $nativeType = GetNativeTypeForConversions($interface); |
| 5925 | 5925 |
| 5926 my $willBe = IsGarbageCollectedType($interface->name) ? "WillBeRawPtr" : ""; | 5926 my $willBe = IsWillBeGarbageCollectedType($interface->name) ? "WillBeRawPtr"
: ""; |
| 5927 my $extraSpace = $nativeType =~ />$/ ? " " : ""; | 5927 my $extraSpace = $nativeType =~ />$/ ? " " : ""; |
| 5928 return "PassRefPtr${willBe}<${nativeType}${extraSpace}>"; | 5928 return "PassRefPtr${willBe}<${nativeType}${extraSpace}>"; |
| 5929 } | 5929 } |
| 5930 | 5930 |
| 5931 sub WriteFileIfChanged | 5931 sub WriteFileIfChanged |
| 5932 { | 5932 { |
| 5933 my $fileName = shift; | 5933 my $fileName = shift; |
| 5934 my $contents = shift; | 5934 my $contents = shift; |
| 5935 | 5935 |
| 5936 if (-f $fileName && $writeFileOnlyIfChanged) { | 5936 if (-f $fileName && $writeFileOnlyIfChanged) { |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6024 return 0; | 6024 return 0; |
| 6025 } | 6025 } |
| 6026 | 6026 |
| 6027 sub IsTypedArrayType | 6027 sub IsTypedArrayType |
| 6028 { | 6028 { |
| 6029 my $type = shift; | 6029 my $type = shift; |
| 6030 return 1 if $typedArrayHash{$type}; | 6030 return 1 if $typedArrayHash{$type}; |
| 6031 return 0; | 6031 return 0; |
| 6032 } | 6032 } |
| 6033 | 6033 |
| 6034 sub IsGarbageCollectedType | 6034 sub IsWillBeGarbageCollectedType |
| 6035 { | 6035 { |
| 6036 my $interfaceName = shift; | 6036 my $interfaceName = shift; |
| 6037 return 0 unless IsWrapperType($interfaceName); | 6037 return 0 unless IsWrapperType($interfaceName); |
| 6038 my $interface = ParseInterface($interfaceName); | 6038 my $interface = ParseInterface($interfaceName); |
| 6039 return $interface->extendedAttributes->{"GarbageCollected"}; | 6039 return $interface->extendedAttributes->{"WillBeGarbageCollected"}; |
| 6040 } | 6040 } |
| 6041 | 6041 |
| 6042 sub IsRefPtrType | 6042 sub IsRefPtrType |
| 6043 { | 6043 { |
| 6044 my $type = shift; | 6044 my $type = shift; |
| 6045 | 6045 |
| 6046 return 0 if $type eq "any"; | 6046 return 0 if $type eq "any"; |
| 6047 return 0 if IsPrimitiveType($type); | 6047 return 0 if IsPrimitiveType($type); |
| 6048 return 0 if GetArrayType($type); | 6048 return 0 if GetArrayType($type); |
| 6049 return 0 if GetSequenceType($type); | 6049 return 0 if GetSequenceType($type); |
| (...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6467 if ($parameter->type eq "SerializedScriptValue") { | 6467 if ($parameter->type eq "SerializedScriptValue") { |
| 6468 return 1; | 6468 return 1; |
| 6469 } elsif (IsIntegerType($parameter->type)) { | 6469 } elsif (IsIntegerType($parameter->type)) { |
| 6470 return 1; | 6470 return 1; |
| 6471 } | 6471 } |
| 6472 } | 6472 } |
| 6473 return 0; | 6473 return 0; |
| 6474 } | 6474 } |
| 6475 | 6475 |
| 6476 1; | 6476 1; |
| OLD | NEW |