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

Side by Side Diff: client/dom/scripts/systemnative.py

Issue 9703064: Rename 'raises_dart_exceptions' to 'raises_exceptions'. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
3 # for details. All rights reserved. Use of this source code is governed by a 3 # for details. All rights reserved. Use of this source code is governed by a
4 # BSD-style license that can be found in the LICENSE file. 4 # BSD-style license that can be found in the LICENSE file.
5 5
6 """This module provides shared functionality for the systems to generate 6 """This module provides shared functionality for the systems to generate
7 native binding from the IDL database.""" 7 native binding from the IDL database."""
8 8
9 import emitter 9 import emitter
10 import os 10 import os
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 241
242 constructor_info = AnalyzeConstructor(self._interface) 242 constructor_info = AnalyzeConstructor(self._interface)
243 if constructor_info is None: 243 if constructor_info is None:
244 # We have a custom implementation for it. 244 # We have a custom implementation for it.
245 self._cpp_declarations_emitter.Emit( 245 self._cpp_declarations_emitter.Emit(
246 '\n' 246 '\n'
247 'void constructorCallback(Dart_NativeArguments);\n') 247 'void constructorCallback(Dart_NativeArguments);\n')
248 return 248 return
249 249
250 raises_dom_exceptions = 'ConstructorRaisesException' in self._interface.ext_ attrs 250 raises_dom_exceptions = 'ConstructorRaisesException' in self._interface.ext_ attrs
251 raises_dart_exceptions = raises_dom_exceptions or len(constructor_info.idl_a rgs) > 0 251 raises_exceptions = raises_dom_exceptions or len(constructor_info.idl_args) > 0
252 arguments = [] 252 arguments = []
253 parameter_definitions_emitter = emitter.Emitter() 253 parameter_definitions_emitter = emitter.Emitter()
254 create_function = 'create' 254 create_function = 'create'
255 if 'NamedConstructor' in self._interface.ext_attrs: 255 if 'NamedConstructor' in self._interface.ext_attrs:
256 raises_dart_exceptions = True 256 raises_exceptions = True
257 parameter_definitions_emitter.Emit( 257 parameter_definitions_emitter.Emit(
258 ' DOMWindow* domWindow = DartUtilities::domWindowForCurrentIs olate();\n' 258 ' DOMWindow* domWindow = DartUtilities::domWindowForCurrentIs olate();\n'
259 ' if (!domWindow) {\n' 259 ' if (!domWindow) {\n'
260 ' exception = Dart_NewString("Failed to fetch domWindow") ;\n' 260 ' exception = Dart_NewString("Failed to fetch domWindow") ;\n'
261 ' goto fail;\n' 261 ' goto fail;\n'
262 ' }\n' 262 ' }\n'
263 ' Document* document = domWindow->document();\n') 263 ' Document* document = domWindow->document();\n')
264 self._cpp_impl_includes.add('DOMWindow') 264 self._cpp_impl_includes.add('DOMWindow')
265 arguments.append('document') 265 arguments.append('document')
266 create_function = 'createForJSConstructor' 266 create_function = 'createForJSConstructor'
267 if 'CallWith' in self._interface.ext_attrs: 267 if 'CallWith' in self._interface.ext_attrs:
268 call_with = self._interface.ext_attrs['CallWith'] 268 call_with = self._interface.ext_attrs['CallWith']
269 if call_with == 'ScriptExecutionContext': 269 if call_with == 'ScriptExecutionContext':
270 raises_dart_exceptions = True 270 raises_exceptions = True
271 parameter_definitions_emitter.Emit( 271 parameter_definitions_emitter.Emit(
272 ' ScriptExecutionContext* context = DartUtilities::scriptExec utionContext();\n' 272 ' ScriptExecutionContext* context = DartUtilities::scriptExec utionContext();\n'
273 ' if (!context) {\n' 273 ' if (!context) {\n'
274 ' exception = Dart_NewString("Failed to create an object" );\n' 274 ' exception = Dart_NewString("Failed to create an object" );\n'
275 ' goto fail;\n' 275 ' goto fail;\n'
276 ' }\n') 276 ' }\n')
277 arguments.append('context') 277 arguments.append('context')
278 else: 278 else:
279 raise Exception('Unsupported CallWith=%s attribute' % call_with) 279 raise Exception('Unsupported CallWith=%s attribute' % call_with)
280 280
281 # Process constructor arguments. 281 # Process constructor arguments.
282 for (i, arg) in enumerate(constructor_info.idl_args): 282 for (i, arg) in enumerate(constructor_info.idl_args):
283 self._GenerateParameterAdapter(parameter_definitions_emitter, arg, i - 1) 283 self._GenerateParameterAdapter(parameter_definitions_emitter, arg, i - 1)
284 arguments.append(arg.id) 284 arguments.append(arg.id)
285 285
286 function_expression = '%s::%s' % (self._interface_type_info.native_type(), c reate_function) 286 function_expression = '%s::%s' % (self._interface_type_info.native_type(), c reate_function)
287 invocation = self._GenerateWebCoreInvocation(function_expression, arguments, 287 invocation = self._GenerateWebCoreInvocation(function_expression, arguments,
288 self._interface.id, self._interface.ext_attrs, raises_dom_exceptions) 288 self._interface.id, self._interface.ext_attrs, raises_dom_exceptions)
289 self._GenerateNativeCallback(callback_name='constructorCallback', 289 self._GenerateNativeCallback(callback_name='constructorCallback',
290 parameter_definitions=parameter_definitions_emitter.Fragments(), 290 parameter_definitions=parameter_definitions_emitter.Fragments(),
291 needs_receiver=False, invocation=invocation, 291 needs_receiver=False, invocation=invocation,
292 raises_exceptions=raises_dart_exceptions) 292 raises_exceptions=raises_exceptions)
293 293
294 def _ImplClassName(self, interface_name): 294 def _ImplClassName(self, interface_name):
295 return interface_name + 'Implementation' 295 return interface_name + 'Implementation'
296 296
297 def _IsConstructable(self): 297 def _IsConstructable(self):
298 # FIXME: support ConstructorTemplate. 298 # FIXME: support ConstructorTemplate.
299 return set(['CustomConstructor', 'V8CustomConstructor', 'Constructor', 'Name dConstructor']) & set(self._interface.ext_attrs) 299 return set(['CustomConstructor', 'V8CustomConstructor', 'Constructor', 'Name dConstructor']) & set(self._interface.ext_attrs)
300 300
301 def FinishInterface(self): 301 def FinishInterface(self):
302 base = self._BaseClassName(self._interface) 302 base = self._BaseClassName(self._interface)
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 native_name, 1 + len(operation.arguments), dart_declaration, 'Callback', 577 native_name, 1 + len(operation.arguments), dart_declaration, 'Callback',
578 is_custom) 578 is_custom)
579 if is_custom: 579 if is_custom:
580 return 580 return
581 581
582 # Generate callback. 582 # Generate callback.
583 webcore_function_name = operation.ext_attrs.get('ImplementedAs', operation.i d) 583 webcore_function_name = operation.ext_attrs.get('ImplementedAs', operation.i d)
584 584
585 parameter_definitions_emitter = emitter.Emitter() 585 parameter_definitions_emitter = emitter.Emitter()
586 arguments = [] 586 arguments = []
587 raises_dart_exceptions = self._GenerateCallWithHandling( 587 raises_exceptions = self._GenerateCallWithHandling(
588 operation, parameter_definitions_emitter, arguments) 588 operation, parameter_definitions_emitter, arguments)
589 raises_dart_exceptions = raises_dart_exceptions or len(operation.arguments) > 0 or operation.raises 589 raises_exceptions = raises_exceptions or len(operation.arguments) > 0 or ope ration.raises
590 590
591 # Process Dart arguments. 591 # Process Dart arguments.
592 for (i, argument) in enumerate(operation.arguments): 592 for (i, argument) in enumerate(operation.arguments):
593 if (i == len(operation.arguments) - 1 and 593 if (i == len(operation.arguments) - 1 and
594 self._interface.id == 'Console' and 594 self._interface.id == 'Console' and
595 argument.id == 'arg'): 595 argument.id == 'arg'):
596 # FIXME: we are skipping last argument here because it was added in 596 # FIXME: we are skipping last argument here because it was added in
597 # supplemental dart.idl. Cleanup dart.idl and remove this check. 597 # supplemental dart.idl. Cleanup dart.idl and remove this check.
598 break 598 break
599 self._GenerateParameterAdapter(parameter_definitions_emitter, argument, i) 599 self._GenerateParameterAdapter(parameter_definitions_emitter, argument, i)
(...skipping 13 matching lines...) Expand all
613 613
614 if 'NeedsUserGestureCheck' in operation.ext_attrs: 614 if 'NeedsUserGestureCheck' in operation.ext_attrs:
615 arguments.append('DartUtilities::processingUserGesture') 615 arguments.append('DartUtilities::processingUserGesture')
616 616
617 function_expression = self._GenerateWebCoreFunctionExpression(webcore_functi on_name, operation) 617 function_expression = self._GenerateWebCoreFunctionExpression(webcore_functi on_name, operation)
618 invocation = self._GenerateWebCoreInvocation(function_expression, arguments, 618 invocation = self._GenerateWebCoreInvocation(function_expression, arguments,
619 operation.type.id, operation.ext_attrs, operation.raises) 619 operation.type.id, operation.ext_attrs, operation.raises)
620 self._GenerateNativeCallback(cpp_callback_name, 620 self._GenerateNativeCallback(cpp_callback_name,
621 parameter_definitions=parameter_definitions_emitter.Fragments(), 621 parameter_definitions=parameter_definitions_emitter.Fragments(),
622 needs_receiver=True, invocation=invocation, 622 needs_receiver=True, invocation=invocation,
623 raises_exceptions=raises_dart_exceptions) 623 raises_exceptions=raises_exceptions)
624 624
625 def _GenerateNativeCallback(self, callback_name, parameter_definitions, 625 def _GenerateNativeCallback(self, callback_name, parameter_definitions,
626 needs_receiver, invocation, raises_exceptions): 626 needs_receiver, invocation, raises_exceptions):
627 627
628 if needs_receiver: 628 if needs_receiver:
629 parameter_definitions = emitter.Format( 629 parameter_definitions = emitter.Format(
630 ' $WEBCORE_CLASS_NAME* receiver = DartDOMWrapper::receiver< $WE BCORE_CLASS_NAME >(args);\n' 630 ' $WEBCORE_CLASS_NAME* receiver = DartDOMWrapper::receiver< $WE BCORE_CLASS_NAME >(args);\n'
631 ' $PARAMETER_DEFINITIONS\n', 631 ' $PARAMETER_DEFINITIONS\n',
632 WEBCORE_CLASS_NAME=self._interface_type_info.native_type(), 632 WEBCORE_CLASS_NAME=self._interface_type_info.native_type(),
633 PARAMETER_DEFINITIONS=parameter_definitions) 633 PARAMETER_DEFINITIONS=parameter_definitions)
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
777 777
778 if 'ImplementedBy' in attributes: 778 if 'ImplementedBy' in attributes:
779 arguments.insert(0, 'receiver') 779 arguments.insert(0, 'receiver')
780 self._cpp_impl_includes.add(attributes['ImplementedBy']) 780 self._cpp_impl_includes.add(attributes['ImplementedBy'])
781 781
782 return emitter.Format(invocation_template, 782 return emitter.Format(invocation_template,
783 FUNCTION_CALL='%s(%s)' % (function_expression, ', '.join(arguments))) 783 FUNCTION_CALL='%s(%s)' % (function_expression, ', '.join(arguments)))
784 784
785 def _GenerateCPPIncludes(includes): 785 def _GenerateCPPIncludes(includes):
786 return ''.join(['#include "%s.h"\n' % include for include in includes]) 786 return ''.join(['#include "%s.h"\n' % include for include in includes])
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698