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

Side by Side Diff: Source/bindings/scripts/v8_interface.py

Issue 265293004: Create fewer local v8::TryCatch objects in generated bindings code (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: avoid some unused v8::TryCatch objects Created 6 years, 7 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) 2013 Google Inc. All rights reserved. 1 # Copyright (C) 2013 Google Inc. All rights reserved.
2 # 2 #
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are 4 # modification, are permitted provided that the following conditions are
5 # met: 5 # met:
6 # 6 #
7 # * Redistributions of source code must retain the above copyright 7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer. 8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above 9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following disclaimer 10 # copyright notice, this list of conditions and the following disclaimer
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 counter[item] += 1 465 counter[item] += 1
466 return counter 466 return counter
467 467
468 468
469 ################################################################################ 469 ################################################################################
470 # Constructors 470 # Constructors
471 ################################################################################ 471 ################################################################################
472 472
473 # [Constructor] 473 # [Constructor]
474 def generate_constructor(interface, constructor): 474 def generate_constructor(interface, constructor):
475 generated_arguments = [v8_methods.generate_argument(interface, constructor, argument, index)
476 for index, argument in enumerate(constructor.argument s)]
477
475 return { 478 return {
476 'argument_list': constructor_argument_list(interface, constructor), 479 'argument_list': constructor_argument_list(interface, constructor),
477 'arguments': [v8_methods.generate_argument(interface, constructor, argum ent, index) 480 'arguments': generated_arguments,
478 for index, argument in enumerate(constructor.arguments)], 481 'arguments_need_try_catch': any(
482 v8_methods.argument_needs_try_catch(argument)
483 for argument in generated_arguments),
479 'cpp_type': cpp_template_type( 484 'cpp_type': cpp_template_type(
480 cpp_ptr_type('RefPtr', 'RawPtr', gc_type(interface)), 485 cpp_ptr_type('RefPtr', 'RawPtr', gc_type(interface)),
481 cpp_name(interface)), 486 cpp_name(interface)),
482 'has_exception_state': 487 'has_exception_state':
483 # [RaisesException=Constructor] 488 # [RaisesException=Constructor]
484 interface.extended_attributes.get('RaisesException') == 'Constructor ' or 489 interface.extended_attributes.get('RaisesException') == 'Constructor ' or
485 any(argument for argument in constructor.arguments 490 any(argument for argument in constructor.arguments
486 if argument.idl_type.name == 'SerializedScriptValue' or 491 if argument.idl_type.name == 'SerializedScriptValue' or
487 argument.idl_type.is_integer_type), 492 argument.idl_type.is_integer_type),
488 'is_constructor': True, 493 'is_constructor': True,
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
737 deleter = next( 742 deleter = next(
738 method 743 method
739 for method in interface.operations 744 for method in interface.operations
740 if ('deleter' in method.specials and 745 if ('deleter' in method.specials and
741 len(method.arguments) == 1 and 746 len(method.arguments) == 1 and
742 str(method.arguments[0].idl_type) == 'DOMString')) 747 str(method.arguments[0].idl_type) == 'DOMString'))
743 except StopIteration: 748 except StopIteration:
744 return None 749 return None
745 750
746 return property_deleter(deleter) 751 return property_deleter(deleter)
OLDNEW
« no previous file with comments | « no previous file | Source/bindings/scripts/v8_methods.py » ('j') | Source/bindings/scripts/v8_methods.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698