| 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 2489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2500 my $function = shift; | 2500 my $function = shift; |
| 2501 | 2501 |
| 2502 my $implClassName = GetImplName($interface); | 2502 my $implClassName = GetImplName($interface); |
| 2503 my $v8ClassName = GetV8ClassName($interface); | 2503 my $v8ClassName = GetV8ClassName($interface); |
| 2504 my $overloadedIndexString = ""; | 2504 my $overloadedIndexString = ""; |
| 2505 if ($function->{overloadedIndex} > 0) { | 2505 if ($function->{overloadedIndex} > 0) { |
| 2506 $overloadedIndexString .= $function->{overloadedIndex}; | 2506 $overloadedIndexString .= $function->{overloadedIndex}; |
| 2507 } | 2507 } |
| 2508 | 2508 |
| 2509 my $raisesExceptions = $function->signature->extendedAttributes->{"RaisesExc
eption"}; | 2509 my $raisesExceptions = $function->signature->extendedAttributes->{"RaisesExc
eption"}; |
| 2510 if ($interface->extendedAttributes->{"RaisesException"}) { | 2510 if ($interface->extendedAttributes->{"ConstructorRaisesException"}) { |
| 2511 $raisesExceptions = 1; | 2511 $raisesExceptions = 1; |
| 2512 } | 2512 } |
| 2513 if (!$raisesExceptions) { | 2513 if (!$raisesExceptions) { |
| 2514 foreach my $parameter (@{$function->parameters}) { | 2514 foreach my $parameter (@{$function->parameters}) { |
| 2515 if ($parameter->extendedAttributes->{"IsIndex"}) { | 2515 if ($parameter->extendedAttributes->{"IsIndex"}) { |
| 2516 $raisesExceptions = 1; | 2516 $raisesExceptions = 1; |
| 2517 } | 2517 } |
| 2518 } | 2518 } |
| 2519 } | 2519 } |
| 2520 | 2520 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 2532 | 2532 |
| 2533 if ($raisesExceptions) { | 2533 if ($raisesExceptions) { |
| 2534 AddToImplIncludes("core/dom/ExceptionCode.h"); | 2534 AddToImplIncludes("core/dom/ExceptionCode.h"); |
| 2535 $code .= " ExceptionCode ec = 0;\n"; | 2535 $code .= " ExceptionCode ec = 0;\n"; |
| 2536 } | 2536 } |
| 2537 | 2537 |
| 2538 # FIXME: Currently [Constructor(...)] does not yet support optional argument
s without [Default=...] | 2538 # FIXME: Currently [Constructor(...)] does not yet support optional argument
s without [Default=...] |
| 2539 my ($parameterCheckString, $paramIndex, %replacements) = GenerateParametersC
heck($function, $interface, ""); | 2539 my ($parameterCheckString, $paramIndex, %replacements) = GenerateParametersC
heck($function, $interface, ""); |
| 2540 $code .= $parameterCheckString; | 2540 $code .= $parameterCheckString; |
| 2541 | 2541 |
| 2542 if ($interface->extendedAttributes->{"CallWith"} && $interface->extendedAttr
ibutes->{"CallWith"} eq "ScriptExecutionContext") { | 2542 if ($interface->extendedAttributes->{"ConstructorCallWith"} && $interface->e
xtendedAttributes->{"ConstructorCallWith"} eq "ScriptExecutionContext") { |
| 2543 push(@beforeArgumentList, "context"); | 2543 push(@beforeArgumentList, "context"); |
| 2544 $code .= <<END; | 2544 $code .= <<END; |
| 2545 | 2545 |
| 2546 ScriptExecutionContext* context = getScriptExecutionContext(); | 2546 ScriptExecutionContext* context = getScriptExecutionContext(); |
| 2547 END | 2547 END |
| 2548 } | 2548 } |
| 2549 | 2549 |
| 2550 if ($interface->extendedAttributes->{"RaisesException"}) { | 2550 if ($interface->extendedAttributes->{"ConstructorRaisesException"}) { |
| 2551 push(@afterArgumentList, "ec"); | 2551 push(@afterArgumentList, "ec"); |
| 2552 } | 2552 } |
| 2553 | 2553 |
| 2554 my @argumentList; | 2554 my @argumentList; |
| 2555 my $index = 0; | 2555 my $index = 0; |
| 2556 foreach my $parameter (@{$function->parameters}) { | 2556 foreach my $parameter (@{$function->parameters}) { |
| 2557 last if $index eq $paramIndex; | 2557 last if $index eq $paramIndex; |
| 2558 if ($replacements{$parameter->name}) { | 2558 if ($replacements{$parameter->name}) { |
| 2559 push(@argumentList, $replacements{$parameter->name}); | 2559 push(@argumentList, $replacements{$parameter->name}); |
| 2560 } else { | 2560 } else { |
| 2561 push(@argumentList, $parameter->name); | 2561 push(@argumentList, $parameter->name); |
| 2562 } | 2562 } |
| 2563 $index++; | 2563 $index++; |
| 2564 } | 2564 } |
| 2565 | 2565 |
| 2566 my $argumentString = join(", ", @beforeArgumentList, @argumentList, @afterAr
gumentList); | 2566 my $argumentString = join(", ", @beforeArgumentList, @argumentList, @afterAr
gumentList); |
| 2567 $code .= "\n"; | 2567 $code .= "\n"; |
| 2568 $code .= " RefPtr<${implClassName}> impl = ${implClassName}::create(${arg
umentString});\n"; | 2568 $code .= " RefPtr<${implClassName}> impl = ${implClassName}::create(${arg
umentString});\n"; |
| 2569 $code .= " v8::Handle<v8::Object> wrapper = args.Holder();\n"; | 2569 $code .= " v8::Handle<v8::Object> wrapper = args.Holder();\n"; |
| 2570 | 2570 |
| 2571 if ($interface->extendedAttributes->{"RaisesException"}) { | 2571 if ($interface->extendedAttributes->{"ConstructorRaisesException"}) { |
| 2572 $code .= " if (ec) {\n"; | 2572 $code .= " if (ec) {\n"; |
| 2573 $code .= " setDOMException(ec, args.GetIsolate());\n"; | 2573 $code .= " setDOMException(ec, args.GetIsolate());\n"; |
| 2574 $code .= " return;\n"; | 2574 $code .= " return;\n"; |
| 2575 $code .= " }\n"; | 2575 $code .= " }\n"; |
| 2576 } | 2576 } |
| 2577 | 2577 |
| 2578 $code .= <<END; | 2578 $code .= <<END; |
| 2579 | 2579 |
| 2580 V8DOMWrapper::associateObjectWithWrapper(impl.release(), &${v8ClassName}::in
fo, wrapper, args.GetIsolate(), WrapperConfiguration::Dependent); | 2580 V8DOMWrapper::associateObjectWithWrapper(impl.release(), &${v8ClassName}::in
fo, wrapper, args.GetIsolate(), WrapperConfiguration::Dependent); |
| 2581 args.GetReturnValue().Set(wrapper); | 2581 args.GetReturnValue().Set(wrapper); |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2724 } | 2724 } |
| 2725 | 2725 |
| 2726 sub GenerateNamedConstructor | 2726 sub GenerateNamedConstructor |
| 2727 { | 2727 { |
| 2728 my $function = shift; | 2728 my $function = shift; |
| 2729 my $interface = shift; | 2729 my $interface = shift; |
| 2730 | 2730 |
| 2731 my $implClassName = GetImplName($interface); | 2731 my $implClassName = GetImplName($interface); |
| 2732 my $v8ClassName = GetV8ClassName($interface); | 2732 my $v8ClassName = GetV8ClassName($interface); |
| 2733 my $raisesExceptions = $function->signature->extendedAttributes->{"RaisesExc
eption"}; | 2733 my $raisesExceptions = $function->signature->extendedAttributes->{"RaisesExc
eption"}; |
| 2734 if ($interface->extendedAttributes->{"RaisesException"}) { | 2734 if ($interface->extendedAttributes->{"ConstructorRaisesException"}) { |
| 2735 $raisesExceptions = 1; | 2735 $raisesExceptions = 1; |
| 2736 } | 2736 } |
| 2737 if (!$raisesExceptions) { | 2737 if (!$raisesExceptions) { |
| 2738 foreach my $parameter (@{$function->parameters}) { | 2738 foreach my $parameter (@{$function->parameters}) { |
| 2739 if ($parameter->extendedAttributes->{"IsIndex"}) { | 2739 if ($parameter->extendedAttributes->{"IsIndex"}) { |
| 2740 $raisesExceptions = 1; | 2740 $raisesExceptions = 1; |
| 2741 } | 2741 } |
| 2742 } | 2742 } |
| 2743 } | 2743 } |
| 2744 | 2744 |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2787 if ($raisesExceptions) { | 2787 if ($raisesExceptions) { |
| 2788 AddToImplIncludes("core/dom/ExceptionCode.h"); | 2788 AddToImplIncludes("core/dom/ExceptionCode.h"); |
| 2789 $code .= " ExceptionCode ec = 0;\n"; | 2789 $code .= " ExceptionCode ec = 0;\n"; |
| 2790 } | 2790 } |
| 2791 | 2791 |
| 2792 my ($parameterCheckString, $paramIndex, %replacements) = GenerateParametersC
heck($function, $interface); | 2792 my ($parameterCheckString, $paramIndex, %replacements) = GenerateParametersC
heck($function, $interface); |
| 2793 $code .= $parameterCheckString; | 2793 $code .= $parameterCheckString; |
| 2794 | 2794 |
| 2795 push(@beforeArgumentList, "document"); | 2795 push(@beforeArgumentList, "document"); |
| 2796 | 2796 |
| 2797 if ($interface->extendedAttributes->{"RaisesException"}) { | 2797 if ($interface->extendedAttributes->{"ConstructorRaisesException"}) { |
| 2798 push(@afterArgumentList, "ec"); | 2798 push(@afterArgumentList, "ec"); |
| 2799 } | 2799 } |
| 2800 | 2800 |
| 2801 my @argumentList; | 2801 my @argumentList; |
| 2802 my $index = 0; | 2802 my $index = 0; |
| 2803 foreach my $parameter (@{$function->parameters}) { | 2803 foreach my $parameter (@{$function->parameters}) { |
| 2804 last if $index eq $paramIndex; | 2804 last if $index eq $paramIndex; |
| 2805 if ($replacements{$parameter->name}) { | 2805 if ($replacements{$parameter->name}) { |
| 2806 push(@argumentList, $replacements{$parameter->name}); | 2806 push(@argumentList, $replacements{$parameter->name}); |
| 2807 } else { | 2807 } else { |
| 2808 push(@argumentList, $parameter->name); | 2808 push(@argumentList, $parameter->name); |
| 2809 } | 2809 } |
| 2810 $index++; | 2810 $index++; |
| 2811 } | 2811 } |
| 2812 | 2812 |
| 2813 my $argumentString = join(", ", @beforeArgumentList, @argumentList, @afterAr
gumentList); | 2813 my $argumentString = join(", ", @beforeArgumentList, @argumentList, @afterAr
gumentList); |
| 2814 $code .= "\n"; | 2814 $code .= "\n"; |
| 2815 $code .= " RefPtr<${implClassName}> impl = ${implClassName}::createForJSC
onstructor(${argumentString});\n"; | 2815 $code .= " RefPtr<${implClassName}> impl = ${implClassName}::createForJSC
onstructor(${argumentString});\n"; |
| 2816 $code .= " v8::Handle<v8::Object> wrapper = args.Holder();\n"; | 2816 $code .= " v8::Handle<v8::Object> wrapper = args.Holder();\n"; |
| 2817 | 2817 |
| 2818 if ($interface->extendedAttributes->{"RaisesException"}) { | 2818 if ($interface->extendedAttributes->{"ConstructorRaisesException"}) { |
| 2819 $code .= " if (ec) {\n"; | 2819 $code .= " if (ec) {\n"; |
| 2820 $code .= " setDOMException(ec, args.GetIsolate());\n"; | 2820 $code .= " setDOMException(ec, args.GetIsolate());\n"; |
| 2821 $code .= " return;\n"; | 2821 $code .= " return;\n"; |
| 2822 $code .= " }\n"; | 2822 $code .= " }\n"; |
| 2823 } | 2823 } |
| 2824 | 2824 |
| 2825 $code .= <<END; | 2825 $code .= <<END; |
| 2826 | 2826 |
| 2827 V8DOMWrapper::associateObjectWithWrapper(impl.release(), &${v8ClassName}Cons
tructor::info, wrapper, args.GetIsolate(), WrapperConfiguration::Dependent); | 2827 V8DOMWrapper::associateObjectWithWrapper(impl.release(), &${v8ClassName}Cons
tructor::info, wrapper, args.GetIsolate(), WrapperConfiguration::Dependent); |
| 2828 args.GetReturnValue().Set(wrapper); | 2828 args.GetReturnValue().Set(wrapper); |
| (...skipping 3008 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5837 if ($currentInterface->extendedAttributes->{$extendedAttribute}) { | 5837 if ($currentInterface->extendedAttributes->{$extendedAttribute}) { |
| 5838 $found = 1; | 5838 $found = 1; |
| 5839 } | 5839 } |
| 5840 return 1 if $found; | 5840 return 1 if $found; |
| 5841 }, 0); | 5841 }, 0); |
| 5842 | 5842 |
| 5843 return $found; | 5843 return $found; |
| 5844 } | 5844 } |
| 5845 | 5845 |
| 5846 1; | 5846 1; |
| OLD | NEW |