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

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

Issue 106853005: Implement platform deleters per spec. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
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
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 4055 matching lines...) Expand 10 before | Expand all | Expand 10 after
4066 my $implClassName = GetImplName($interface); 4066 my $implClassName = GetImplName($interface);
4067 my $v8ClassName = GetV8ClassName($interface); 4067 my $v8ClassName = GetV8ClassName($interface);
4068 my $methodName = GetImplName($namedDeleterFunction); 4068 my $methodName = GetImplName($namedDeleterFunction);
4069 4069
4070 my $raisesExceptions = $namedDeleterFunction->extendedAttributes->{"RaisesEx ception"}; 4070 my $raisesExceptions = $namedDeleterFunction->extendedAttributes->{"RaisesEx ception"};
4071 4071
4072 my $code = "static void namedPropertyDeleter(v8::Local<v8::String> name, con st v8::PropertyCallbackInfo<v8::Boolean>& info)\n"; 4072 my $code = "static void namedPropertyDeleter(v8::Local<v8::String> name, con st v8::PropertyCallbackInfo<v8::Boolean>& info)\n";
4073 $code .= "{\n"; 4073 $code .= "{\n";
4074 $code .= " ${implClassName}* collection = ${v8ClassName}::toNative(info.H older());\n"; 4074 $code .= " ${implClassName}* collection = ${v8ClassName}::toNative(info.H older());\n";
4075 $code .= " AtomicString propertyName = toCoreAtomicString(name);\n"; 4075 $code .= " AtomicString propertyName = toCoreAtomicString(name);\n";
4076 my $extraArguments = ""; 4076 my $extraArguments = ", result";
4077 if ($raisesExceptions) { 4077 if ($raisesExceptions) {
4078 $code .= " ExceptionState exceptionState(info.Holder(), info.GetIsola te());\n"; 4078 $code .= " ExceptionState exceptionState(info.Holder(), info.GetIsola te());\n";
4079 $extraArguments = ", exceptionState"; 4079 $extraArguments .= ", exceptionState";
4080 } 4080 }
4081 $code .= " bool result = collection->${methodName}(propertyName$extraArgu ments);\n"; 4081 $code .= " bool result = true;\n";
4082 $code .= " bool knownProperty = collection->${methodName}(propertyName$ex traArguments);\n";
4082 if ($raisesExceptions) { 4083 if ($raisesExceptions) {
4083 $code .= " if (exceptionState.throwIfNeeded())\n"; 4084 $code .= " if (exceptionState.throwIfNeeded())\n";
4084 $code .= " return;\n"; 4085 $code .= " return;\n";
4085 } 4086 }
4086 $code .= " return v8SetReturnValueBool(info, result);\n"; 4087 $code .= " if (knownProperty)\n";
4088 $code .= " return v8SetReturnValueBool(info, result);\n";
4087 $code .= "}\n\n"; 4089 $code .= "}\n\n";
4088 $implementation{nameSpaceInternal}->add($code); 4090 $implementation{nameSpaceInternal}->add($code);
4089 } 4091 }
4090 4092
4091 sub GenerateImplementationNamedPropertyEnumerator 4093 sub GenerateImplementationNamedPropertyEnumerator
4092 { 4094 {
4093 my $interface = shift; 4095 my $interface = shift;
4094 my $implClassName = GetImplName($interface); 4096 my $implClassName = GetImplName($interface);
4095 my $v8ClassName = GetV8ClassName($interface); 4097 my $v8ClassName = GetV8ClassName($interface);
4096 4098
(...skipping 2240 matching lines...) Expand 10 before | Expand all | Expand 10 after
6337 6339
6338 return 1 if ExtendedAttributeContains($interface->extendedAttributes->{"Cust om"}, "ToV8"); 6340 return 1 if ExtendedAttributeContains($interface->extendedAttributes->{"Cust om"}, "ToV8");
6339 return 1 if ExtendedAttributeContains($interface->extendedAttributes->{"Cust om"}, "Wrap"); 6341 return 1 if ExtendedAttributeContains($interface->extendedAttributes->{"Cust om"}, "Wrap");
6340 return 1 if $interface->extendedAttributes->{"SpecialWrapFor"}; 6342 return 1 if $interface->extendedAttributes->{"SpecialWrapFor"};
6341 return 1 if InheritsInterface($interface, "Document"); 6343 return 1 if InheritsInterface($interface, "Document");
6342 6344
6343 return 0; 6345 return 0;
6344 } 6346 }
6345 6347
6346 1; 6348 1;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698