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

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

Issue 116153002: IDL compiler: [NamedConstructor] (basic) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years 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 | Annotate | Revision Log
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 3094 matching lines...) Expand 10 before | Expand all | Expand 10 after
3105 last if $index eq $paramIndex; 3105 last if $index eq $paramIndex;
3106 if ($replacements{$parameter->name}) { 3106 if ($replacements{$parameter->name}) {
3107 push(@argumentList, $replacements{$parameter->name}); 3107 push(@argumentList, $replacements{$parameter->name});
3108 } else { 3108 } else {
3109 push(@argumentList, $parameter->name); 3109 push(@argumentList, $parameter->name);
3110 } 3110 }
3111 $index++; 3111 $index++;
3112 } 3112 }
3113 3113
3114 my $argumentString = join(", ", @beforeArgumentList, @argumentList, @afterAr gumentList); 3114 my $argumentString = join(", ", @beforeArgumentList, @argumentList, @afterAr gumentList);
3115 $code .= "\n";
3116 $code .= " RefPtr<${implClassName}> impl = ${implClassName}::createForJSC onstructor(${argumentString});\n"; 3115 $code .= " RefPtr<${implClassName}> impl = ${implClassName}::createForJSC onstructor(${argumentString});\n";
3117 $code .= " v8::Handle<v8::Object> wrapper = info.Holder();\n"; 3116 $code .= " v8::Handle<v8::Object> wrapper = info.Holder();\n";
3118 3117
3119 if ($constructorRaisesException) { 3118 if ($constructorRaisesException) {
3120 $code .= " if (exceptionState.throwIfNeeded())\n"; 3119 $code .= " if (exceptionState.throwIfNeeded())\n";
3121 $code .= " return;\n"; 3120 $code .= " return;\n";
3122 } 3121 }
3123 3122
3124 $code .= <<END; 3123 $code .= <<END;
3125 3124
3126 V8DOMWrapper::associateObjectWithWrapper<${v8ClassName}>(impl.release(), &${ v8ClassName}Constructor::wrapperTypeInfo, wrapper, info.GetIsolate(), WrapperCon figuration::Dependent); 3125 V8DOMWrapper::associateObjectWithWrapper<${v8ClassName}>(impl.release(), &${ v8ClassName}Constructor::wrapperTypeInfo, wrapper, info.GetIsolate(), WrapperCon figuration::Dependent);
3127 v8SetReturnValue(info, wrapper); 3126 v8SetReturnValue(info, wrapper);
3128 } 3127 }
3129 3128
3130 END 3129 END
3131 $implementation{nameSpaceWebCore}->add($code); 3130 $implementation{nameSpaceWebCore}->add($code);
3132 3131
3133 $code = <<END; 3132 $code = <<END;
3134 v8::Handle<v8::FunctionTemplate> ${v8ClassName}Constructor::domTemplate(v8::Isol ate* isolate, WrapperWorldType currentWorldType) 3133 v8::Handle<v8::FunctionTemplate> ${v8ClassName}Constructor::domTemplate(v8::Isol ate* isolate, WrapperWorldType currentWorldType)
3135 { 3134 {
3136 // This is only for getting a unique pointer which we can pass to privateTem plate. 3135 // This is only for getting a unique pointer which we can pass to privateTem plate.
3137 static int privateTemplateUniqueKey; 3136 static int privateTemplateUniqueKey;
3138 V8PerIsolateData* data = V8PerIsolateData::from(isolate); 3137 V8PerIsolateData* data = V8PerIsolateData::from(isolate);
3139 v8::Local<v8::FunctionTemplate> result = data->privateTemplateIfExists(curre ntWorldType, &privateTemplateUniqueKey); 3138 v8::Local<v8::FunctionTemplate> result = data->privateTemplateIfExists(curre ntWorldType, &privateTemplateUniqueKey);
3140 if (!result.IsEmpty()) 3139 if (!result.IsEmpty())
3141 return result; 3140 return result;
3142 3141
3143 TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink\", \"BuildDOMTemplate"); 3142 TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate");
3144 v8::EscapableHandleScope scope(isolate); 3143 v8::EscapableHandleScope scope(isolate);
3145 result = v8::FunctionTemplate::New(isolate, ${v8ClassName}ConstructorCallbac k); 3144 result = v8::FunctionTemplate::New(isolate, ${v8ClassName}ConstructorCallbac k);
3146 3145
3147 v8::Local<v8::ObjectTemplate> instanceTemplate = result->InstanceTemplate(); 3146 v8::Local<v8::ObjectTemplate> instanceTemplate = result->InstanceTemplate();
3148 instanceTemplate->SetInternalFieldCount(${v8ClassName}::internalFieldCount); 3147 instanceTemplate->SetInternalFieldCount(${v8ClassName}::internalFieldCount);
3149 result->SetClassName(v8::String::NewFromUtf8(isolate, "${implClassName}", v8 ::String::kInternalizedString)); 3148 result->SetClassName(v8::String::NewFromUtf8(isolate, "${implClassName}", v8 ::String::kInternalizedString));
3150 result->Inherit(${v8ClassName}::domTemplate(isolate, currentWorldType)); 3149 result->Inherit(${v8ClassName}::domTemplate(isolate, currentWorldType));
3151 data->setPrivateTemplate(currentWorldType, &privateTemplateUniqueKey, result ); 3150 data->setPrivateTemplate(currentWorldType, &privateTemplateUniqueKey, result );
3152 3151
3153 return scope.Escape(result); 3152 return scope.Escape(result);
(...skipping 3185 matching lines...) Expand 10 before | Expand all | Expand 10 after
6339 6338
6340 return 1 if ExtendedAttributeContains($interface->extendedAttributes->{"Cust om"}, "ToV8"); 6339 return 1 if ExtendedAttributeContains($interface->extendedAttributes->{"Cust om"}, "ToV8");
6341 return 1 if ExtendedAttributeContains($interface->extendedAttributes->{"Cust om"}, "Wrap"); 6340 return 1 if ExtendedAttributeContains($interface->extendedAttributes->{"Cust om"}, "Wrap");
6342 return 1 if $interface->extendedAttributes->{"SpecialWrapFor"}; 6341 return 1 if $interface->extendedAttributes->{"SpecialWrapFor"};
6343 return 1 if InheritsInterface($interface, "Document"); 6342 return 1 if InheritsInterface($interface, "Document");
6344 6343
6345 return 0; 6344 return 0;
6346 } 6345 }
6347 6346
6348 1; 6347 1;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698