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. |
| 11 # Copyright (C) 2013 Samsung Electronics. All rights reserved. |
11 # | 12 # |
12 # This library is free software; you can redistribute it and/or | 13 # This library is free software; you can redistribute it and/or |
13 # modify it under the terms of the GNU Library General Public | 14 # modify it under the terms of the GNU Library General Public |
14 # License as published by the Free Software Foundation; either | 15 # License as published by the Free Software Foundation; either |
15 # version 2 of the License, or (at your option) any later version. | 16 # version 2 of the License, or (at your option) any later version. |
16 # | 17 # |
17 # This library is distributed in the hope that it will be useful, | 18 # This library is distributed in the hope that it will be useful, |
18 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 19 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
20 # Library General Public License for more details. | 21 # Library General Public License for more details. |
(...skipping 1795 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1816 | 1817 |
1817 # Only DOMString or wrapper types are checked. | 1818 # Only DOMString or wrapper types are checked. |
1818 # For DOMString with StrictTypeChecking only Null, Undefined and Object | 1819 # For DOMString with StrictTypeChecking only Null, Undefined and Object |
1819 # are accepted for compatibility. Otherwise, no restrictions are made to | 1820 # are accepted for compatibility. Otherwise, no restrictions are made to |
1820 # match the non-overloaded behavior. | 1821 # match the non-overloaded behavior. |
1821 # FIXME: Implement WebIDL overload resolution algorithm. | 1822 # FIXME: Implement WebIDL overload resolution algorithm. |
1822 if ($type eq "DOMString") { | 1823 if ($type eq "DOMString") { |
1823 if ($parameter->extendedAttributes->{"StrictTypeChecking"}) { | 1824 if ($parameter->extendedAttributes->{"StrictTypeChecking"}) { |
1824 push(@andExpression, "(${value}->IsNull() || ${value}->IsUndefin
ed() || ${value}->IsString() || ${value}->IsObject())"); | 1825 push(@andExpression, "(${value}->IsNull() || ${value}->IsUndefin
ed() || ${value}->IsString() || ${value}->IsObject())"); |
1825 } | 1826 } |
1826 } elsif ($parameter->extendedAttributes->{"Callback"}) { | 1827 } elsif (IsCallbackInterface($parameter->type)) { |
1827 # For Callbacks only checks if the value is null or object. | 1828 # For Callbacks only checks if the value is null or object. |
1828 push(@andExpression, "(${value}->IsNull() || ${value}->IsFunction())
"); | 1829 push(@andExpression, "(${value}->IsNull() || ${value}->IsFunction())
"); |
1829 } elsif (GetArrayType($type) || GetSequenceType($type)) { | 1830 } elsif (GetArrayType($type) || GetSequenceType($type)) { |
1830 if ($parameter->isNullable) { | 1831 if ($parameter->isNullable) { |
1831 push(@andExpression, "(${value}->IsNull() || ${value}->IsArray()
)"); | 1832 push(@andExpression, "(${value}->IsNull() || ${value}->IsArray()
)"); |
1832 } else { | 1833 } else { |
1833 push(@andExpression, "(${value}->IsArray())"); | 1834 push(@andExpression, "(${value}->IsArray())"); |
1834 } | 1835 } |
1835 } elsif (IsWrapperType($type)) { | 1836 } elsif (IsWrapperType($type)) { |
1836 if ($parameter->isNullable) { | 1837 if ($parameter->isNullable) { |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2061 AddToImplIncludes("core/page/Frame.h"); | 2062 AddToImplIncludes("core/page/Frame.h"); |
2062 $code .= <<END; | 2063 $code .= <<END; |
2063 if (!BindingSecurity::shouldAllowAccessToFrame(BindingState::instance(), imp
->frame())) | 2064 if (!BindingSecurity::shouldAllowAccessToFrame(BindingState::instance(), imp
->frame())) |
2064 return v8Undefined(); | 2065 return v8Undefined(); |
2065 END | 2066 END |
2066 } | 2067 } |
2067 | 2068 |
2068 my $raisesExceptions = $function->signature->extendedAttributes->{"RaisesExc
eption"}; | 2069 my $raisesExceptions = $function->signature->extendedAttributes->{"RaisesExc
eption"}; |
2069 if (!$raisesExceptions) { | 2070 if (!$raisesExceptions) { |
2070 foreach my $parameter (@{$function->parameters}) { | 2071 foreach my $parameter (@{$function->parameters}) { |
2071 if ((!$parameter->extendedAttributes->{"Callback"} and TypeCanFailCo
nversion($parameter)) or $parameter->extendedAttributes->{"IsIndex"}) { | 2072 if ((!IsCallbackInterface($parameter->type) and TypeCanFailConversio
n($parameter)) or $parameter->extendedAttributes->{"IsIndex"}) { |
2072 $raisesExceptions = 1; | 2073 $raisesExceptions = 1; |
2073 } | 2074 } |
2074 } | 2075 } |
2075 } | 2076 } |
2076 | 2077 |
2077 if ($raisesExceptions) { | 2078 if ($raisesExceptions) { |
2078 AddToImplIncludes("core/dom/ExceptionCode.h"); | 2079 AddToImplIncludes("core/dom/ExceptionCode.h"); |
2079 $code .= " ExceptionCode ec = 0;\n"; | 2080 $code .= " ExceptionCode ec = 0;\n"; |
2080 $code .= " {\n"; | 2081 $code .= " {\n"; |
2081 # The brace here is needed to prevent the ensuing 'goto fail's from jump
ing past constructors | 2082 # The brace here is needed to prevent the ensuing 'goto fail's from jump
ing past constructors |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2183 my $parameterCheckString = ""; | 2184 my $parameterCheckString = ""; |
2184 my $paramIndex = 0; | 2185 my $paramIndex = 0; |
2185 my %replacements = (); | 2186 my %replacements = (); |
2186 | 2187 |
2187 foreach my $parameter (@{$function->parameters}) { | 2188 foreach my $parameter (@{$function->parameters}) { |
2188 my $nativeType = GetNativeTypeFromSignature($parameter, $paramIndex); | 2189 my $nativeType = GetNativeTypeFromSignature($parameter, $paramIndex); |
2189 | 2190 |
2190 # Optional arguments without [Default=...] should generate an early call
with fewer arguments. | 2191 # Optional arguments without [Default=...] should generate an early call
with fewer arguments. |
2191 # Optional arguments with [Optional=...] should not generate the early c
all. | 2192 # Optional arguments with [Optional=...] should not generate the early c
all. |
2192 # Optional Dictionary arguments always considered to have default of emp
ty dictionary. | 2193 # Optional Dictionary arguments always considered to have default of emp
ty dictionary. |
2193 if ($parameter->isOptional && !$parameter->extendedAttributes->{"Default
"} && $nativeType ne "Dictionary" && !$parameter->extendedAttributes->{"Callback
"}) { | 2194 if ($parameter->isOptional && !$parameter->extendedAttributes->{"Default
"} && $nativeType ne "Dictionary" && !IsCallbackInterface($parameter->type)) { |
2194 $parameterCheckString .= " if (args.Length() <= $paramIndex) {\n"
; | 2195 $parameterCheckString .= " if (args.Length() <= $paramIndex) {\n"
; |
2195 my $functionCall = GenerateFunctionCallString($function, $paramIndex
, " " x 2, $interfaceName, $forMainWorldSuffix, %replacements); | 2196 my $functionCall = GenerateFunctionCallString($function, $paramIndex
, " " x 2, $interfaceName, $forMainWorldSuffix, %replacements); |
2196 $parameterCheckString .= $functionCall; | 2197 $parameterCheckString .= $functionCall; |
2197 $parameterCheckString .= " }\n"; | 2198 $parameterCheckString .= " }\n"; |
2198 } | 2199 } |
2199 | 2200 |
2200 my $parameterDefaultPolicy = "DefaultIsUndefined"; | 2201 my $parameterDefaultPolicy = "DefaultIsUndefined"; |
2201 my $default = defined $parameter->extendedAttributes->{"Default"} ? $par
ameter->extendedAttributes->{"Default"} : ""; | 2202 my $default = defined $parameter->extendedAttributes->{"Default"} ? $par
ameter->extendedAttributes->{"Default"} : ""; |
2202 if ($parameter->isOptional and $default eq "NullString") { | 2203 if ($parameter->isOptional and $default eq "NullString") { |
2203 $parameterDefaultPolicy = "DefaultIsNullString"; | 2204 $parameterDefaultPolicy = "DefaultIsNullString"; |
2204 } | 2205 } |
2205 | 2206 |
2206 my $parameterName = $parameter->name; | 2207 my $parameterName = $parameter->name; |
2207 AddToImplIncludes("core/dom/ExceptionCode.h"); | 2208 AddToImplIncludes("core/dom/ExceptionCode.h"); |
2208 if ($parameter->extendedAttributes->{"Callback"}) { | 2209 if (IsCallbackInterface($parameter->type)) { |
2209 my $v8InterfaceName = "V8" . $parameter->type; | 2210 my $v8InterfaceName = "V8" . $parameter->type; |
2210 AddToImplIncludes("$v8InterfaceName.h"); | 2211 AddToImplIncludes("$v8InterfaceName.h"); |
2211 if ($parameter->isOptional) { | 2212 if ($parameter->isOptional) { |
2212 $parameterCheckString .= " RefPtr<" . $parameter->type . "> $
parameterName;\n"; | 2213 $parameterCheckString .= " RefPtr<" . $parameter->type . "> $
parameterName;\n"; |
2213 $parameterCheckString .= " if (args.Length() > $paramIndex &&
!args[$paramIndex]->IsNull() && !args[$paramIndex]->IsUndefined()) {\n"; | 2214 $parameterCheckString .= " if (args.Length() > $paramIndex &&
!args[$paramIndex]->IsNull() && !args[$paramIndex]->IsUndefined()) {\n"; |
2214 $parameterCheckString .= " if (!args[$paramIndex]->IsFunc
tion())\n"; | 2215 $parameterCheckString .= " if (!args[$paramIndex]->IsFunc
tion())\n"; |
2215 $parameterCheckString .= " return throwTypeError(0, a
rgs.GetIsolate());\n"; | 2216 $parameterCheckString .= " return throwTypeError(0, a
rgs.GetIsolate());\n"; |
2216 $parameterCheckString .= " $parameterName = ${v8Interface
Name}::create(args[$paramIndex], getScriptExecutionContext());\n"; | 2217 $parameterCheckString .= " $parameterName = ${v8Interface
Name}::create(args[$paramIndex], getScriptExecutionContext());\n"; |
2217 $parameterCheckString .= " }\n"; | 2218 $parameterCheckString .= " }\n"; |
2218 } else { | 2219 } else { |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2351 if ($function->{overloadedIndex} > 0) { | 2352 if ($function->{overloadedIndex} > 0) { |
2352 $overloadedIndexString .= $function->{overloadedIndex}; | 2353 $overloadedIndexString .= $function->{overloadedIndex}; |
2353 } | 2354 } |
2354 | 2355 |
2355 my $raisesExceptions = $function->signature->extendedAttributes->{"RaisesExc
eption"}; | 2356 my $raisesExceptions = $function->signature->extendedAttributes->{"RaisesExc
eption"}; |
2356 if ($interface->extendedAttributes->{"RaisesException"}) { | 2357 if ($interface->extendedAttributes->{"RaisesException"}) { |
2357 $raisesExceptions = 1; | 2358 $raisesExceptions = 1; |
2358 } | 2359 } |
2359 if (!$raisesExceptions) { | 2360 if (!$raisesExceptions) { |
2360 foreach my $parameter (@{$function->parameters}) { | 2361 foreach my $parameter (@{$function->parameters}) { |
2361 if ((!$parameter->extendedAttributes->{"Callback"} and TypeCanFailCo
nversion($parameter)) or $parameter->extendedAttributes->{"IsIndex"}) { | 2362 if ((!IsCallbackInterface($parameter->type) and TypeCanFailConversio
n($parameter)) or $parameter->extendedAttributes->{"IsIndex"}) { |
2362 $raisesExceptions = 1; | 2363 $raisesExceptions = 1; |
2363 } | 2364 } |
2364 } | 2365 } |
2365 } | 2366 } |
2366 | 2367 |
2367 my @beforeArgumentList; | 2368 my @beforeArgumentList; |
2368 my @afterArgumentList; | 2369 my @afterArgumentList; |
2369 my $code = ""; | 2370 my $code = ""; |
2370 $code .= <<END; | 2371 $code .= <<END; |
2371 static v8::Handle<v8::Value> constructor${overloadedIndexString}(const v8::Argum
ents& args) | 2372 static v8::Handle<v8::Value> constructor${overloadedIndexString}(const v8::Argum
ents& args) |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2576 my $interface = shift; | 2577 my $interface = shift; |
2577 | 2578 |
2578 my $interfaceName = $interface->name; | 2579 my $interfaceName = $interface->name; |
2579 my $v8InterfaceName = "V8$interfaceName"; | 2580 my $v8InterfaceName = "V8$interfaceName"; |
2580 my $raisesExceptions = $function->signature->extendedAttributes->{"RaisesExc
eption"}; | 2581 my $raisesExceptions = $function->signature->extendedAttributes->{"RaisesExc
eption"}; |
2581 if ($interface->extendedAttributes->{"RaisesException"}) { | 2582 if ($interface->extendedAttributes->{"RaisesException"}) { |
2582 $raisesExceptions = 1; | 2583 $raisesExceptions = 1; |
2583 } | 2584 } |
2584 if (!$raisesExceptions) { | 2585 if (!$raisesExceptions) { |
2585 foreach my $parameter (@{$function->parameters}) { | 2586 foreach my $parameter (@{$function->parameters}) { |
2586 if ((!$parameter->extendedAttributes->{"Callback"} and TypeCanFailCo
nversion($parameter)) or $parameter->extendedAttributes->{"IsIndex"}) { | 2587 if ((!IsCallbackInterface($parameter->type) and TypeCanFailConversio
n($parameter)) or $parameter->extendedAttributes->{"IsIndex"}) { |
2587 $raisesExceptions = 1; | 2588 $raisesExceptions = 1; |
2588 } | 2589 } |
2589 } | 2590 } |
2590 } | 2591 } |
2591 | 2592 |
2592 my $maybeObserveFeature = GenerateFeatureObservation($function->signature->e
xtendedAttributes->{"MeasureAs"}); | 2593 my $maybeObserveFeature = GenerateFeatureObservation($function->signature->e
xtendedAttributes->{"MeasureAs"}); |
2593 my $maybeDeprecateFeature = GenerateDeprecationNotification($function->signa
ture->extendedAttributes->{"DeprecateAs"}); | 2594 my $maybeDeprecateFeature = GenerateDeprecationNotification($function->signa
ture->extendedAttributes->{"DeprecateAs"}); |
2594 | 2595 |
2595 my @beforeArgumentList; | 2596 my @beforeArgumentList; |
2596 my @afterArgumentList; | 2597 my @afterArgumentList; |
(...skipping 11 matching lines...) Expand all Loading... |
2608 AddToImplIncludes("core/page/Frame.h"); | 2609 AddToImplIncludes("core/page/Frame.h"); |
2609 AddToImplContent(<<END); | 2610 AddToImplContent(<<END); |
2610 WrapperTypeInfo ${v8InterfaceName}Constructor::info = { ${v8InterfaceName}Constr
uctor::GetTemplate, ${v8InterfaceName}::derefObject, $toActiveDOMObject, $toEven
tTarget, 0, ${v8InterfaceName}::installPerContextPrototypeProperties, 0, Wrapper
TypeObjectPrototype }; | 2611 WrapperTypeInfo ${v8InterfaceName}Constructor::info = { ${v8InterfaceName}Constr
uctor::GetTemplate, ${v8InterfaceName}::derefObject, $toActiveDOMObject, $toEven
tTarget, 0, ${v8InterfaceName}::installPerContextPrototypeProperties, 0, Wrapper
TypeObjectPrototype }; |
2611 | 2612 |
2612 END | 2613 END |
2613 | 2614 |
2614 my $code = ""; | 2615 my $code = ""; |
2615 $code .= <<END; | 2616 $code .= <<END; |
2616 static v8::Handle<v8::Value> ${v8InterfaceName}ConstructorCallback(const v8::Arg
uments& args) | 2617 static v8::Handle<v8::Value> ${v8InterfaceName}ConstructorCallback(const v8::Arg
uments& args) |
2617 { | 2618 { |
2618 ${maybeObserveFeature} | |
2619 ${maybeDeprecateFeature} | |
2620 END | 2619 END |
| 2620 $code .= $maybeObserveFeature if $maybeObserveFeature; |
| 2621 $code .= $maybeDeprecateFeature if $maybeDeprecateFeature; |
2621 $code .= GenerateConstructorHeader(); | 2622 $code .= GenerateConstructorHeader(); |
2622 AddToImplIncludes("V8Document.h"); | 2623 AddToImplIncludes("V8Document.h"); |
2623 $code .= <<END; | 2624 $code .= <<END; |
2624 Document* document = currentDocument(BindingState::instance()); | 2625 Document* document = currentDocument(BindingState::instance()); |
2625 | 2626 |
2626 // Make sure the document is added to the DOM Node map. Otherwise, the ${int
erfaceName} instance | 2627 // Make sure the document is added to the DOM Node map. Otherwise, the ${int
erfaceName} instance |
2627 // may end up being the only node in the map and get garbage-collected prema
turely. | 2628 // may end up being the only node in the map and get garbage-collected prema
turely. |
2628 toV8(document, args.Holder(), args.GetIsolate()); | 2629 toV8(document, args.Holder(), args.GetIsolate()); |
2629 | 2630 |
2630 END | 2631 END |
(...skipping 2067 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4698 return 0; | 4699 return 0; |
4699 } | 4700 } |
4700 if ($function->isStatic) { | 4701 if ($function->isStatic) { |
4701 return 0; | 4702 return 0; |
4702 } | 4703 } |
4703 # Type checking is performed in the generated code | 4704 # Type checking is performed in the generated code |
4704 if ($function->signature->extendedAttributes->{"StrictTypeChecking"}) { | 4705 if ($function->signature->extendedAttributes->{"StrictTypeChecking"}) { |
4705 return 0; | 4706 return 0; |
4706 } | 4707 } |
4707 foreach my $parameter (@{$function->parameters}) { | 4708 foreach my $parameter (@{$function->parameters}) { |
4708 if (($parameter->isOptional && !$parameter->extendedAttributes->{"Defaul
t"}) || $parameter->extendedAttributes->{"Callback"}) { | 4709 if (($parameter->isOptional && !$parameter->extendedAttributes->{"Defaul
t"}) || IsCallbackInterface($parameter->type)) { |
4709 return 0; | 4710 return 0; |
4710 } | 4711 } |
4711 } | 4712 } |
4712 | 4713 |
4713 foreach my $parameter (@{$function->parameters}) { | 4714 foreach my $parameter (@{$function->parameters}) { |
4714 if (IsWrapperType($parameter->type)) { | 4715 if (IsWrapperType($parameter->type)) { |
4715 return 1; | 4716 return 1; |
4716 } | 4717 } |
4717 } | 4718 } |
4718 return 0; | 4719 return 0; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4750 | 4751 |
4751 | 4752 |
4752 sub IsWrapperType | 4753 sub IsWrapperType |
4753 { | 4754 { |
4754 my $type = shift; | 4755 my $type = shift; |
4755 # FIXME: Should this return false for Sequence and Array types? | 4756 # FIXME: Should this return false for Sequence and Array types? |
4756 return 0 if IsEnumType($type); | 4757 return 0 if IsEnumType($type); |
4757 return !($non_wrapper_types{$type}); | 4758 return !($non_wrapper_types{$type}); |
4758 } | 4759 } |
4759 | 4760 |
| 4761 sub IsCallbackInterface |
| 4762 { |
| 4763 my $type = shift; |
| 4764 return 0 unless IsWrapperType($type); |
| 4765 # FIXME: Those checks for Sequence and Array types should probably |
| 4766 # be moved to IsWrapperType(). |
| 4767 return 0 if GetArrayType($type); |
| 4768 return 0 if GetSequenceType($type); |
| 4769 |
| 4770 my $idlFile = IDLFileForInterface($type) |
| 4771 or die("Could NOT find IDL file for interface \"$type\"!\n"); |
| 4772 |
| 4773 open FILE, "<", $idlFile; |
| 4774 my @lines = <FILE>; |
| 4775 close FILE; |
| 4776 |
| 4777 my $fileContents = join('', @lines); |
| 4778 return ($fileContents =~ /callback\s+interface\s+(\w+)/gs); |
| 4779 } |
| 4780 |
4760 sub GetTypeNameOfExternalTypedArray | 4781 sub GetTypeNameOfExternalTypedArray |
4761 { | 4782 { |
4762 my $interface = shift; | 4783 my $interface = shift; |
4763 my $interfaceName = $interface->name; | 4784 my $interfaceName = $interface->name; |
4764 my $viewType = $interface->extendedAttributes->{"TypedArray"}; | 4785 my $viewType = $interface->extendedAttributes->{"TypedArray"}; |
4765 return "v8::kExternalByteArray" if $viewType eq "signed char" and $interface
Name eq "Int8Array"; | 4786 return "v8::kExternalByteArray" if $viewType eq "signed char" and $interface
Name eq "Int8Array"; |
4766 return "v8::kExternalPixelArray" if $viewType eq "unsigned char" and $interf
aceName eq "Uint8ClampedArray"; | 4787 return "v8::kExternalPixelArray" if $viewType eq "unsigned char" and $interf
aceName eq "Uint8ClampedArray"; |
4767 return "v8::kExternalUnsignedByteArray" if $viewType eq "unsigned char" and
$interfaceName eq "Uint8Array"; | 4788 return "v8::kExternalUnsignedByteArray" if $viewType eq "unsigned char" and
$interfaceName eq "Uint8Array"; |
4768 return "v8::kExternalShortArray" if $viewType eq "short" and $interfaceName
eq "Int16Array"; | 4789 return "v8::kExternalShortArray" if $viewType eq "short" and $interfaceName
eq "Int16Array"; |
4769 return "v8::kExternalUnsignedShortArray" if $viewType eq "unsigned short" an
d $interfaceName eq "Uint16Array"; | 4790 return "v8::kExternalUnsignedShortArray" if $viewType eq "unsigned short" an
d $interfaceName eq "Uint16Array"; |
(...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5527 if ($currentInterface->extendedAttributes->{$extendedAttribute}) { | 5548 if ($currentInterface->extendedAttributes->{$extendedAttribute}) { |
5528 $found = 1; | 5549 $found = 1; |
5529 } | 5550 } |
5530 return 1 if $found; | 5551 return 1 if $found; |
5531 }, 0); | 5552 }, 0); |
5532 | 5553 |
5533 return $found; | 5554 return $found; |
5534 } | 5555 } |
5535 | 5556 |
5536 1; | 5557 1; |
OLD | NEW |