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

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

Issue 23479016: Introduce Promise mapping to the IDL generator (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 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
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 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 my %header; 141 my %header;
142 142
143 # Implementation code structure: 143 # Implementation code structure:
144 # Root ... Copyright 144 # Root ... Copyright
145 # Conditional ... #if FEATURE ... #endif (to be removed soon) 145 # Conditional ... #if FEATURE ... #endif (to be removed soon)
146 # Includes 146 # Includes
147 # NameSpaceWebCore 147 # NameSpaceWebCore
148 # NameSpaceInternal ... namespace ${implClassName}V8Internal in case of no n-callback 148 # NameSpaceInternal ... namespace ${implClassName}V8Internal in case of no n-callback
149 my %implementation; 149 my %implementation;
150 150
151 # Promise is not yet in the Web IDL spec but is going to be speced
152 # as primitive types in the future.
151 my %primitiveTypeHash = ("boolean" => 1, 153 my %primitiveTypeHash = ("boolean" => 1,
152 "void" => 1, 154 "void" => 1,
153 "Date" => 1, 155 "Date" => 1,
156 "Promise" => 1,
154 "byte" => 1, 157 "byte" => 1,
155 "octet" => 1, 158 "octet" => 1,
156 "short" => 1, 159 "short" => 1,
157 "long" => 1, 160 "long" => 1,
158 "long long" => 1, 161 "long long" => 1,
159 "unsigned short" => 1, 162 "unsigned short" => 1,
160 "unsigned long" => 1, 163 "unsigned long" => 1,
161 "unsigned long long" => 1, 164 "unsigned long long" => 1,
162 "float" => 1, 165 "float" => 1,
163 "double" => 1, 166 "double" => 1,
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 423
421 return if SkipIncludeHeader($type); 424 return if SkipIncludeHeader($type);
422 425
423 # Default includes 426 # Default includes
424 if ($type eq "EventListener" or $type eq "EventHandler") { 427 if ($type eq "EventListener" or $type eq "EventHandler") {
425 AddToImplIncludes("core/dom/EventListener.h"); 428 AddToImplIncludes("core/dom/EventListener.h");
426 } elsif ($type eq "SerializedScriptValue") { 429 } elsif ($type eq "SerializedScriptValue") {
427 AddToImplIncludes("bindings/v8/SerializedScriptValue.h"); 430 AddToImplIncludes("bindings/v8/SerializedScriptValue.h");
428 } elsif ($type eq "any" || IsCallbackFunctionType($type)) { 431 } elsif ($type eq "any" || IsCallbackFunctionType($type)) {
429 AddToImplIncludes("bindings/v8/ScriptValue.h"); 432 AddToImplIncludes("bindings/v8/ScriptValue.h");
433 } elsif ($type eq "Promise") {
434 AddToImplIncludes("bindings/v8/ScriptPromise.h");
430 } elsif (IsTypedArrayType($type)) { 435 } elsif (IsTypedArrayType($type)) {
431 AddToImplIncludes("bindings/v8/custom/V8${type}Custom.h"); 436 AddToImplIncludes("bindings/v8/custom/V8${type}Custom.h");
432 } else { 437 } else {
433 AddToImplIncludes("V8${type}.h"); 438 AddToImplIncludes("V8${type}.h");
434 } 439 }
435 } 440 }
436 441
437 sub HeaderFilesForInterface 442 sub HeaderFilesForInterface
438 { 443 {
439 my $interfaceName = shift; 444 my $interfaceName = shift;
(...skipping 2011 matching lines...) Expand 10 before | Expand all | Expand 10 after
2451 if (IsWrapperType($argType)) { 2456 if (IsWrapperType($argType)) {
2452 $parameterCheckString .= " if (args.Length() > $paramInde x && !isUndefinedOrNull($argValue) && !V8${argType}::HasInstance($argValue, args .GetIsolate(), worldType(args.GetIsolate()))) {\n"; 2457 $parameterCheckString .= " if (args.Length() > $paramInde x && !isUndefinedOrNull($argValue) && !V8${argType}::HasInstance($argValue, args .GetIsolate(), worldType(args.GetIsolate()))) {\n";
2453 $parameterCheckString .= " throwTypeError(args.GetIso late());\n"; 2458 $parameterCheckString .= " throwTypeError(args.GetIso late());\n";
2454 $parameterCheckString .= " return;\n"; 2459 $parameterCheckString .= " return;\n";
2455 $parameterCheckString .= " }\n"; 2460 $parameterCheckString .= " }\n";
2456 } 2461 }
2457 } 2462 }
2458 my $default = defined $parameter->extendedAttributes->{"Default"} ? $parameter->extendedAttributes->{"Default"} : ""; 2463 my $default = defined $parameter->extendedAttributes->{"Default"} ? $parameter->extendedAttributes->{"Default"} : "";
2459 my $jsValue = $parameter->isOptional && $default eq "NullString" ? " argumentOrNull(args, $paramIndex)" : "args[$paramIndex]"; 2464 my $jsValue = $parameter->isOptional && $default eq "NullString" ? " argumentOrNull(args, $paramIndex)" : "args[$paramIndex]";
2460 $parameterCheckString .= JSValueToNativeStatement($parameter->type, $parameter->extendedAttributes, $jsValue, $parameterName, " ", "args.GetIsola te()"); 2465 $parameterCheckString .= JSValueToNativeStatement($parameter->type, $parameter->extendedAttributes, $jsValue, $parameterName, " ", "args.GetIsola te()");
2461 if ($nativeType eq 'Dictionary') { 2466 if ($nativeType eq 'Dictionary' or $nativeType eq 'ScriptPromise') {
2462 $parameterCheckString .= " if (!$parameterName.isUndefinedOrN ull() && !$parameterName.isObject()) {\n"; 2467 $parameterCheckString .= " if (!$parameterName.isUndefinedOrN ull() && !$parameterName.isObject()) {\n";
2463 $parameterCheckString .= " throwTypeError(\"Not an object .\", args.GetIsolate());\n"; 2468 $parameterCheckString .= " throwTypeError(\"Not an object .\", args.GetIsolate());\n";
2464 $parameterCheckString .= " return;\n"; 2469 $parameterCheckString .= " return;\n";
2465 $parameterCheckString .= " }\n"; 2470 $parameterCheckString .= " }\n";
2466 } 2471 }
2467 } 2472 }
2468 2473
2469 $paramIndex++; 2474 $paramIndex++;
2470 } 2475 }
2471 return ($parameterCheckString, $paramIndex, %replacements); 2476 return ($parameterCheckString, $paramIndex, %replacements);
(...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after
3154 my $unionMemberVariable = $variableName . $i; 3159 my $unionMemberVariable = $variableName . $i;
3155 my $isNull = GenerateIsNullExpression($unionMemberType, $unionMember Variable); 3160 my $isNull = GenerateIsNullExpression($unionMemberType, $unionMember Variable);
3156 push @expression, $isNull; 3161 push @expression, $isNull;
3157 } 3162 }
3158 return join " && ", @expression; 3163 return join " && ", @expression;
3159 } 3164 }
3160 if (IsRefPtrType($type)) { 3165 if (IsRefPtrType($type)) {
3161 return "!${variableName}"; 3166 return "!${variableName}";
3162 } elsif ($type eq "DOMString") { 3167 } elsif ($type eq "DOMString") {
3163 return "${variableName}.isNull()"; 3168 return "${variableName}.isNull()";
3169 } elsif ($type eq "Promise") {
3170 return "${variableName}.isNull()";
3164 } else { 3171 } else {
3165 return ""; 3172 return "";
3166 } 3173 }
3167 } 3174 }
3168 3175
3169 sub GenerateIfElseStatement 3176 sub GenerateIfElseStatement
3170 { 3177 {
3171 my $type = shift; 3178 my $type = shift;
3172 my $outputVariableName = shift; 3179 my $outputVariableName = shift;
3173 my $conditions = shift; 3180 my $conditions = shift;
(...skipping 1829 matching lines...) Expand 10 before | Expand all | Expand 10 after
5003 $mode = "WithUndefinedOrNullCheck"; 5010 $mode = "WithUndefinedOrNullCheck";
5004 } elsif (($extendedAttributes->{"TreatNullAs"} and $extendedAttributes-> {"TreatNullAs"} eq "NullString") or $extendedAttributes->{"Reflect"}) { 5011 } elsif (($extendedAttributes->{"TreatNullAs"} and $extendedAttributes-> {"TreatNullAs"} eq "NullString") or $extendedAttributes->{"Reflect"}) {
5005 $mode = "WithNullCheck"; 5012 $mode = "WithNullCheck";
5006 } 5013 }
5007 # FIXME: Add the case for 'elsif ($attributeOrParameter->extendedAttribu tes->{"TreatUndefinedAs"} and $attributeOrParameter->extendedAttributes->{"Treat UndefinedAs"} eq "NullString"))'. 5014 # FIXME: Add the case for 'elsif ($attributeOrParameter->extendedAttribu tes->{"TreatUndefinedAs"} and $attributeOrParameter->extendedAttributes->{"Treat UndefinedAs"} eq "NullString"))'.
5008 return "V8StringResource<$mode>"; 5015 return "V8StringResource<$mode>";
5009 } 5016 }
5010 5017
5011 return "String" if $type eq "DOMString" or IsEnumType($type); 5018 return "String" if $type eq "DOMString" or IsEnumType($type);
5012 5019
5020 return "ScriptPromise" if $type eq "Promise";
5021
5013 return "Range::CompareHow" if $type eq "CompareHow"; 5022 return "Range::CompareHow" if $type eq "CompareHow";
5014 return "DOMTimeStamp" if $type eq "DOMTimeStamp"; 5023 return "DOMTimeStamp" if $type eq "DOMTimeStamp";
5015 return "double" if $type eq "Date"; 5024 return "double" if $type eq "Date";
5016 return "ScriptValue" if $type eq "any" or IsCallbackFunctionType($type); 5025 return "ScriptValue" if $type eq "any" or IsCallbackFunctionType($type);
5017 return "Dictionary" if $type eq "Dictionary"; 5026 return "Dictionary" if $type eq "Dictionary";
5018 5027
5019 return "RefPtr<DOMStringList>" if $type eq "DOMStringList"; 5028 return "RefPtr<DOMStringList>" if $type eq "DOMStringList";
5020 return "RefPtr<MediaQueryListListener>" if $type eq "MediaQueryListListener" ; 5029 return "RefPtr<MediaQueryListListener>" if $type eq "MediaQueryListListener" ;
5021 return "RefPtr<NodeFilter>" if $type eq "NodeFilter"; 5030 return "RefPtr<NodeFilter>" if $type eq "NodeFilter";
5022 return "RefPtr<SerializedScriptValue>" if $type eq "SerializedScriptValue"; 5031 return "RefPtr<SerializedScriptValue>" if $type eq "SerializedScriptValue";
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
5131 if ($type eq "Dictionary") { 5140 if ($type eq "Dictionary") {
5132 AddToImplIncludes("bindings/v8/Dictionary.h"); 5141 AddToImplIncludes("bindings/v8/Dictionary.h");
5133 return "Dictionary($value, $getIsolate)"; 5142 return "Dictionary($value, $getIsolate)";
5134 } 5143 }
5135 5144
5136 if ($type eq "any" || IsCallbackFunctionType($type)) { 5145 if ($type eq "any" || IsCallbackFunctionType($type)) {
5137 AddToImplIncludes("bindings/v8/ScriptValue.h"); 5146 AddToImplIncludes("bindings/v8/ScriptValue.h");
5138 return "ScriptValue($value)"; 5147 return "ScriptValue($value)";
5139 } 5148 }
5140 5149
5150 if ($type eq "Promise") {
5151 AddToImplIncludes("bindings/v8/ScriptPromise.h");
5152 return "ScriptPromise($value)";
5153 }
5154
5141 if ($type eq "NodeFilter") { 5155 if ($type eq "NodeFilter") {
5142 return "toNodeFilter($value, $getIsolate)"; 5156 return "toNodeFilter($value, $getIsolate)";
5143 } 5157 }
5144 5158
5145 if ($type eq "MediaQueryListListener") { 5159 if ($type eq "MediaQueryListListener") {
5146 AddToImplIncludes("core/css/MediaQueryListListener.h"); 5160 AddToImplIncludes("core/css/MediaQueryListListener.h");
5147 return "MediaQueryListListener::create(" . $value . ")"; 5161 return "MediaQueryListListener::create(" . $value . ")";
5148 } 5162 }
5149 5163
5150 if ($type eq "EventTarget") { 5164 if ($type eq "EventTarget") {
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
5411 return "${indent}v8SetReturnValue(${getCallbackInfo}, static_cast<double >($nativeValue));" if $isReturnValue; 5425 return "${indent}v8SetReturnValue(${getCallbackInfo}, static_cast<double >($nativeValue));" if $isReturnValue;
5412 return "$indent$receiver v8::Number::New(static_cast<double>($nativeValu e));"; 5426 return "$indent$receiver v8::Number::New(static_cast<double>($nativeValu e));";
5413 } 5427 }
5414 5428
5415 if (IsPrimitiveType($type)) { 5429 if (IsPrimitiveType($type)) {
5416 die "unexpected type $type" if not ($type eq "float" or $type eq "double "); 5430 die "unexpected type $type" if not ($type eq "float" or $type eq "double ");
5417 return "${indent}v8SetReturnValue(${getCallbackInfo}, ${nativeValue});" if $isReturnValue; 5431 return "${indent}v8SetReturnValue(${getCallbackInfo}, ${nativeValue});" if $isReturnValue;
5418 return "$indent$receiver v8::Number::New($nativeValue);"; 5432 return "$indent$receiver v8::Number::New($nativeValue);";
5419 } 5433 }
5420 5434
5421 if ($nativeType eq "ScriptValue") { 5435 if ($nativeType eq "ScriptValue" or $nativeType eq "ScriptPromise") {
5422 return "${indent}v8SetReturnValue(${getCallbackInfo}, ${nativeValue}.v8V alue());" if $isReturnValue; 5436 return "${indent}v8SetReturnValue(${getCallbackInfo}, ${nativeValue}.v8V alue());" if $isReturnValue;
5423 return "$indent$receiver $nativeValue.v8Value();"; 5437 return "$indent$receiver $nativeValue.v8Value();";
5424 } 5438 }
5425 5439
5426 my $conv = $extendedAttributes->{"TreatReturnedNullStringAs"}; 5440 my $conv = $extendedAttributes->{"TreatReturnedNullStringAs"};
5427 if (($type eq "DOMString" || IsEnumType($type)) && $isReturnValue) { 5441 if (($type eq "DOMString" || IsEnumType($type)) && $isReturnValue) {
5428 my $functionSuffix = ""; 5442 my $functionSuffix = "";
5429 if (defined $conv) { 5443 if (defined $conv) {
5430 if ($conv eq "Null") { 5444 if ($conv eq "Null") {
5431 $functionSuffix = "OrNull"; 5445 $functionSuffix = "OrNull";
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after
5997 if ($currentInterface->extendedAttributes->{$extendedAttribute}) { 6011 if ($currentInterface->extendedAttributes->{$extendedAttribute}) {
5998 $found = 1; 6012 $found = 1;
5999 } 6013 }
6000 return 1 if $found; 6014 return 1 if $found;
6001 }, 0); 6015 }, 0);
6002 6016
6003 return $found; 6017 return $found;
6004 } 6018 }
6005 6019
6006 1; 6020 1;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698