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

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

Issue 429853002: IDL: Add build target for IDL dictionary impl generation in core (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 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
« no previous file with comments | « Source/bindings/scripts/utilities.py ('k') | Source/bindings/tests/results/V8TestObject.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 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 this_cpp_value = cpp_value(interface, method, index) 216 this_cpp_value = cpp_value(interface, method, index)
217 is_variadic_wrapper_type = argument.is_variadic and idl_type.is_wrapper_type 217 is_variadic_wrapper_type = argument.is_variadic and idl_type.is_wrapper_type
218 return_promise = (method.idl_type.name == 'Promise' if method.idl_type 218 return_promise = (method.idl_type.name == 'Promise' if method.idl_type
219 else False) 219 else False)
220 220
221 if ('ImplementedInPrivateScript' in extended_attributes and 221 if ('ImplementedInPrivateScript' in extended_attributes and
222 not idl_type.is_wrapper_type and 222 not idl_type.is_wrapper_type and
223 not idl_type.is_basic_type): 223 not idl_type.is_basic_type):
224 raise Exception('Private scripts supports only primitive types and DOM w rappers.') 224 raise Exception('Private scripts supports only primitive types and DOM w rappers.')
225 225
226 default_cpp_value = argument.default_cpp_value
226 return { 227 return {
227 'cpp_type': idl_type.cpp_type_args(extended_attributes=extended_attribut es, 228 'cpp_type': idl_type.cpp_type_args(extended_attributes=extended_attribut es,
228 raw_type=True, 229 raw_type=True,
229 used_as_variadic_argument=argument.is _variadic), 230 used_as_variadic_argument=argument.is _variadic),
230 'cpp_value': this_cpp_value, 231 'cpp_value': this_cpp_value,
231 # FIXME: check that the default value's type is compatible with the argu ment's 232 # FIXME: check that the default value's type is compatible with the argu ment's
232 'default_value': argument.default_cpp_value, 233 'default_value': default_cpp_value,
233 'enum_validation_expression': idl_type.enum_validation_expression, 234 'enum_validation_expression': idl_type.enum_validation_expression,
234 'handle': '%sHandle' % argument.name, 235 'handle': '%sHandle' % argument.name,
235 # FIXME: remove once [Default] removed and just use argument.default_val ue 236 # FIXME: remove once [Default] removed and just use argument.default_val ue
236 'has_default': 'Default' in extended_attributes or argument.default_valu e, 237 'has_default': 'Default' in extended_attributes or default_cpp_value,
237 'has_type_checking_interface': 238 'has_type_checking_interface':
238 (has_extended_attribute_value(interface, 'TypeChecking', 'Interface' ) or 239 (has_extended_attribute_value(interface, 'TypeChecking', 'Interface' ) or
239 has_extended_attribute_value(method, 'TypeChecking', 'Interface')) and 240 has_extended_attribute_value(method, 'TypeChecking', 'Interface')) and
240 idl_type.is_wrapper_type, 241 idl_type.is_wrapper_type,
241 'has_type_checking_unrestricted': 242 'has_type_checking_unrestricted':
242 (has_extended_attribute_value(interface, 'TypeChecking', 'Unrestrict ed') or 243 (has_extended_attribute_value(interface, 'TypeChecking', 'Unrestrict ed') or
243 has_extended_attribute_value(method, 'TypeChecking', 'Unrestricted' )) and 244 has_extended_attribute_value(method, 'TypeChecking', 'Unrestricted' )) and
244 idl_type.name in ('Float', 'Double'), 245 idl_type.name in ('Float', 'Double'),
245 # Dictionary is special-cased, but arrays and sequences shouldn't be 246 # Dictionary is special-cased, but arrays and sequences shouldn't be
246 'idl_type': idl_type.base_type, 247 'idl_type': idl_type.base_type,
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 } 440 }
440 441
441 442
442 def union_arguments(idl_type): 443 def union_arguments(idl_type):
443 return [union_member_argument_context(member_idl_type, index) 444 return [union_member_argument_context(member_idl_type, index)
444 for index, member_idl_type 445 for index, member_idl_type
445 in enumerate(idl_type.member_types)] 446 in enumerate(idl_type.member_types)]
446 447
447 448
448 def argument_default_cpp_value(argument): 449 def argument_default_cpp_value(argument):
450 if argument.idl_type.is_dictionary:
451 # We always create impl objects for IDL dictionaries.
452 return '%s::create()' % argument.idl_type.base_type
449 if not argument.default_value: 453 if not argument.default_value:
450 return None 454 return None
451 return argument.idl_type.literal_cpp_value(argument.default_value) 455 return argument.idl_type.literal_cpp_value(argument.default_value)
452 456
453 IdlTypeBase.union_arguments = None 457 IdlTypeBase.union_arguments = None
454 IdlUnionType.union_arguments = property(union_arguments) 458 IdlUnionType.union_arguments = property(union_arguments)
455 IdlArgument.default_cpp_value = property(argument_default_cpp_value) 459 IdlArgument.default_cpp_value = property(argument_default_cpp_value)
OLDNEW
« no previous file with comments | « Source/bindings/scripts/utilities.py ('k') | Source/bindings/tests/results/V8TestObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698