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 801 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
812 | 812 |
813 $header{nameSpaceWebCore}->add(<<END); | 813 $header{nameSpaceWebCore}->add(<<END); |
814 | 814 |
815 template<> | 815 template<> |
816 class WrapperTypeTraits<${nativeType} > { | 816 class WrapperTypeTraits<${nativeType} > { |
817 public: | 817 public: |
818 static WrapperTypeInfo* info() { return &${v8ClassName}::info; } | 818 static WrapperTypeInfo* info() { return &${v8ClassName}::info; } |
819 }; | 819 }; |
820 END | 820 END |
821 | 821 |
822 my $customWrap = $interface->extendedAttributes->{"CustomToV8"} || SVGTypeNe
edsToHoldContextElement($interface->name); | 822 my $customWrap = $interface->extendedAttributes->{"CustomToV8"}; |
823 if ($noToV8) { | 823 if ($noToV8) { |
824 die "Can't suppress toV8 for subclass\n" if $interface->parent; | 824 die "Can't suppress toV8 for subclass\n" if $interface->parent; |
825 } elsif ($noWrap) { | 825 } elsif ($noWrap) { |
826 die "Must have custom toV8\n" if !$customWrap; | 826 die "Must have custom toV8\n" if !$customWrap; |
827 $header{nameSpaceWebCore}->add(<<END); | 827 $header{nameSpaceWebCore}->add(<<END); |
828 class ${nativeType}; | 828 class ${nativeType}; |
829 v8::Handle<v8::Value> toV8(${nativeType}*, v8::Handle<v8::Object> creationContex
t, v8::Isolate*); | 829 v8::Handle<v8::Value> toV8(${nativeType}*, v8::Handle<v8::Object> creationContex
t, v8::Isolate*); |
830 | 830 |
831 template<class CallbackInfo> | 831 template<class CallbackInfo> |
832 inline void v8SetReturnValue(const CallbackInfo& callbackInfo, ${nativeType}* im
pl, v8::Handle<v8::Object> creationContext) | 832 inline void v8SetReturnValue(const CallbackInfo& callbackInfo, ${nativeType}* im
pl, v8::Handle<v8::Object> creationContext) |
(...skipping 3185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4018 ASSERT(impl); | 4018 ASSERT(impl); |
4019 v8::Handle<v8::Object> wrapper = ${v8ClassName}::createWrapper(impl, creatio
nContext, isolate); | 4019 v8::Handle<v8::Object> wrapper = ${v8ClassName}::createWrapper(impl, creatio
nContext, isolate); |
4020 if (!wrapper.IsEmpty()) | 4020 if (!wrapper.IsEmpty()) |
4021 wrapper->SetIndexedPropertiesToExternalArrayData(impl->baseAddress(), $a
rrayType, impl->length()); | 4021 wrapper->SetIndexedPropertiesToExternalArrayData(impl->baseAddress(), $a
rrayType, impl->length()); |
4022 return wrapper; | 4022 return wrapper; |
4023 } | 4023 } |
4024 | 4024 |
4025 END | 4025 END |
4026 } | 4026 } |
4027 | 4027 |
4028 # Add strong reference from TearOff to SVGElement, so that SVGElement would
never get GC-ed while the TearOff is alive. We do this in V8-side to avoid circu
lar reference on Blink side. | |
4029 if (SVGTypeNeedsToHoldContextElement($interface->name)) { | |
4030 # below include needed for SVGPathSegListPropertyTearOff | |
4031 AddToImplIncludes("V8SVGPathElement.h"); | |
4032 $implementation{nameSpaceWebCore}->add(<<END); | |
4033 v8::Handle<v8::Object> wrap($nativeType* impl, v8::Handle<v8::Object> creationCo
ntext, v8::Isolate* isolate) | |
4034 { | |
4035 ASSERT(impl); | |
4036 ASSERT(!DOMDataStore::containsWrapper<${v8ClassName}>(impl, isolate)); | |
4037 v8::Handle<v8::Object> wrapper = ${v8ClassName}::createWrapper(impl, creatio
nContext, isolate); | |
4038 if (impl->contextElement()) | |
4039 V8HiddenPropertyName::setNamedHiddenReference(wrapper, "contextElement",
toV8(impl->contextElement(), creationContext, isolate)); | |
4040 return wrapper; | |
4041 } | |
4042 | |
4043 END | |
4044 } | |
4045 | |
4046 my @enabledPerContextFunctions; | 4028 my @enabledPerContextFunctions; |
4047 my @normalFunctions; | 4029 my @normalFunctions; |
4048 my $needsDomainSafeFunctionSetter = 0; | 4030 my $needsDomainSafeFunctionSetter = 0; |
4049 # Generate methods for functions. | 4031 # Generate methods for functions. |
4050 foreach my $function (@{$interface->functions}) { | 4032 foreach my $function (@{$interface->functions}) { |
4051 next if $function->name eq ""; | 4033 next if $function->name eq ""; |
4052 GenerateFunction($function, $interface, ""); | 4034 GenerateFunction($function, $interface, ""); |
4053 if ($function->extendedAttributes->{"PerWorldBindings"}) { | 4035 if ($function->extendedAttributes->{"PerWorldBindings"}) { |
4054 GenerateFunction($function, $interface, "ForMainWorld"); | 4036 GenerateFunction($function, $interface, "ForMainWorld"); |
4055 } | 4037 } |
(...skipping 1735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5791 return $svgTypeNeedingTearOff; | 5773 return $svgTypeNeedingTearOff; |
5792 } | 5774 } |
5793 | 5775 |
5794 sub IsSVGAnimatedType | 5776 sub IsSVGAnimatedType |
5795 { | 5777 { |
5796 my $type = shift; | 5778 my $type = shift; |
5797 | 5779 |
5798 return $type =~ /^SVGAnimated/; | 5780 return $type =~ /^SVGAnimated/; |
5799 } | 5781 } |
5800 | 5782 |
5801 sub SVGTypeNeedsToHoldContextElement | |
5802 { | |
5803 my $type = shift; | |
5804 | |
5805 return IsSVGTypeNeedingTearOff($type) || IsSVGAnimatedType($type); | |
5806 } | |
5807 | |
5808 sub GetSequenceType | 5783 sub GetSequenceType |
5809 { | 5784 { |
5810 my $type = shift; | 5785 my $type = shift; |
5811 | 5786 |
5812 return $1 if $type =~ /^sequence<([\w\d_\s]+)>.*/; | 5787 return $1 if $type =~ /^sequence<([\w\d_\s]+)>.*/; |
5813 return ""; | 5788 return ""; |
5814 } | 5789 } |
5815 | 5790 |
5816 sub GetArrayType | 5791 sub GetArrayType |
5817 { | 5792 { |
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6071 if ($currentInterface->extendedAttributes->{$extendedAttribute}) { | 6046 if ($currentInterface->extendedAttributes->{$extendedAttribute}) { |
6072 $found = 1; | 6047 $found = 1; |
6073 } | 6048 } |
6074 return 1 if $found; | 6049 return 1 if $found; |
6075 }, 0); | 6050 }, 0); |
6076 | 6051 |
6077 return $found; | 6052 return $found; |
6078 } | 6053 } |
6079 | 6054 |
6080 1; | 6055 1; |
OLD | NEW |