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

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

Issue 1322533002: bindings: Supports to change the method location. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Addressed review comments. Created 5 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 | Annotate | Revision Log
« no previous file with comments | « Source/bindings/scripts/v8_methods.py ('k') | Source/bindings/templates/attributes.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 17 matching lines...) Expand all
28 28
29 """Functions shared by various parts of the code generator. 29 """Functions shared by various parts of the code generator.
30 30
31 Design doc: http://www.chromium.org/developers/design-documents/idl-compiler 31 Design doc: http://www.chromium.org/developers/design-documents/idl-compiler
32 """ 32 """
33 33
34 import re 34 import re
35 35
36 from idl_types import IdlTypeBase 36 from idl_types import IdlTypeBase
37 import idl_types 37 import idl_types
38 from idl_definitions import Exposure, IdlInterface 38 from idl_definitions import Exposure, IdlInterface, IdlAttribute, IdlOperation
39 from v8_globals import includes 39 from v8_globals import includes
40 40
41 ACRONYMS = [ 41 ACRONYMS = [
42 'CSSOM', # must come *before* CSS to match full acronym 42 'CSSOM', # must come *before* CSS to match full acronym
43 'CSS', 43 'CSS',
44 'HTML', 44 'HTML',
45 'IME', 45 'IME',
46 'JS', 46 'JS',
47 'SVG', 47 'SVG',
48 'URL', 48 'URL',
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 def conditional_string(definition_or_member): 221 def conditional_string(definition_or_member):
222 extended_attributes = definition_or_member.extended_attributes 222 extended_attributes = definition_or_member.extended_attributes
223 if 'Conditional' not in extended_attributes: 223 if 'Conditional' not in extended_attributes:
224 return None 224 return None
225 return 'ENABLE(%s)' % extended_attributes['Conditional'] 225 return 'ENABLE(%s)' % extended_attributes['Conditional']
226 226
227 227
228 # [Constructor], [NamedConstructor] 228 # [Constructor], [NamedConstructor]
229 def is_constructor_attribute(member): 229 def is_constructor_attribute(member):
230 # TODO(yukishiino): replace this with [Constructor] and [NamedConstructor] e xtended attribute 230 # TODO(yukishiino): replace this with [Constructor] and [NamedConstructor] e xtended attribute
231 return member.idl_type.name.endswith('Constructor') 231 return (type(member) == IdlAttribute and
232 member.idl_type.name.endswith('Constructor'))
232 233
233 234
234 # [DeprecateAs] 235 # [DeprecateAs]
235 def deprecate_as(member): 236 def deprecate_as(member):
236 extended_attributes = member.extended_attributes 237 extended_attributes = member.extended_attributes
237 if 'DeprecateAs' not in extended_attributes: 238 if 'DeprecateAs' not in extended_attributes:
238 return None 239 return None
239 includes.add('core/frame/UseCounter.h') 240 includes.add('core/frame/UseCounter.h')
240 return extended_attributes['DeprecateAs'] 241 return extended_attributes['DeprecateAs']
241 242
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 443
443 # These members must not be placed on prototype chains. 444 # These members must not be placed on prototype chains.
444 if (is_constructor_attribute(member) or 445 if (is_constructor_attribute(member) or
445 member.is_static or 446 member.is_static or
446 is_unforgeable(interface, member)): 447 is_unforgeable(interface, member)):
447 return False 448 return False
448 449
449 # TODO(yukishiino): We should handle [Global] and [PrimaryGlobal] instead of 450 # TODO(yukishiino): We should handle [Global] and [PrimaryGlobal] instead of
450 # Window. 451 # Window.
451 if (interface.name == 'Window'): 452 if (interface.name == 'Window'):
452 return member.idl_type.name == 'EventHandler' 453 return (member.idl_type.name == 'EventHandler' or
454 type(member) == IdlOperation)
453 455
454 return True 456 return True
455 457
456 458
457 # static, const 459 # static, const
458 def on_interface(interface, member): 460 def on_interface(interface, member):
459 """Returns True if the interface's member needs to be defined on the 461 """Returns True if the interface's member needs to be defined on the
460 interface object. 462 interface object.
461 463
462 The following members must be defiend on an interface object. 464 The following members must be defiend on an interface object.
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 except StopIteration: 566 except StopIteration:
565 return None 567 return None
566 568
567 569
568 IdlInterface.indexed_property_getter = property(indexed_property_getter) 570 IdlInterface.indexed_property_getter = property(indexed_property_getter)
569 IdlInterface.indexed_property_setter = property(indexed_property_setter) 571 IdlInterface.indexed_property_setter = property(indexed_property_setter)
570 IdlInterface.indexed_property_deleter = property(indexed_property_deleter) 572 IdlInterface.indexed_property_deleter = property(indexed_property_deleter)
571 IdlInterface.named_property_getter = property(named_property_getter) 573 IdlInterface.named_property_getter = property(named_property_getter)
572 IdlInterface.named_property_setter = property(named_property_setter) 574 IdlInterface.named_property_setter = property(named_property_setter)
573 IdlInterface.named_property_deleter = property(named_property_deleter) 575 IdlInterface.named_property_deleter = property(named_property_deleter)
OLDNEW
« no previous file with comments | « Source/bindings/scripts/v8_methods.py ('k') | Source/bindings/templates/attributes.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698