OLD | NEW |
---|---|
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 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
115 includes.add('core/dom/MessagePort.h') | 115 includes.add('core/dom/MessagePort.h') |
116 includes.add('core/frame/ImageBitmap.h') | 116 includes.add('core/frame/ImageBitmap.h') |
117 | 117 |
118 conditional_string = v8_utilities.conditional_string(method) | 118 conditional_string = v8_utilities.conditional_string(method) |
119 if conditional_string: | 119 if conditional_string: |
120 includes.add('wtf/build_config.h') | 120 includes.add('wtf/build_config.h') |
121 | 121 |
122 if 'LenientThis' in extended_attributes: | 122 if 'LenientThis' in extended_attributes: |
123 raise Exception('[LenientThis] is not supported for operations.') | 123 raise Exception('[LenientThis] is not supported for operations.') |
124 | 124 |
125 if 'APIExperimentEnabled' in extended_attributes: | |
126 includes.add('core/experiments/ExperimentalFeatures.h') | |
127 includes.add('core/inspector/ConsoleMessage.h') | |
128 | |
125 argument_contexts = [ | 129 argument_contexts = [ |
126 argument_context(interface, method, argument, index, is_visible=is_visib le) | 130 argument_context(interface, method, argument, index, is_visible=is_visib le) |
127 for index, argument in enumerate(arguments)] | 131 for index, argument in enumerate(arguments)] |
128 | 132 |
129 return { | 133 return { |
130 'activity_logging_world_list': v8_utilities.activity_logging_world_list( method), # [ActivityLogging] | 134 'activity_logging_world_list': v8_utilities.activity_logging_world_list( method), # [ActivityLogging] |
135 'api_experiment_enabled': v8_utilities.api_experiment_enabled_function(m ethod), # [APIExperimentEnabled] | |
136 'api_experiment_enabled_per_interface': v8_utilities.api_experiment_enab led_function(interface), # [APIExperimentEnabled] | |
haraken
2015/12/31 12:47:22
BTW, is it valid that [APIExperimentEnabled] is sp
Daniel Nishi
2016/01/04 18:56:31
It's valid. It's possible that different API exper
| |
131 'arguments': argument_contexts, | 137 'arguments': argument_contexts, |
132 'argument_declarations_for_private_script': | 138 'argument_declarations_for_private_script': |
133 argument_declarations_for_private_script(interface, method), | 139 argument_declarations_for_private_script(interface, method), |
134 'conditional_string': conditional_string, | 140 'conditional_string': conditional_string, |
135 'cpp_type': (v8_types.cpp_template_type('Nullable', idl_type.cpp_type) | 141 'cpp_type': (v8_types.cpp_template_type('Nullable', idl_type.cpp_type) |
136 if idl_type.is_explicit_nullable else idl_type.cpp_type), | 142 if idl_type.is_explicit_nullable else idl_type.cpp_type), |
137 'cpp_value': this_cpp_value, | 143 'cpp_value': this_cpp_value, |
138 'cpp_type_initializer': idl_type.cpp_type_initializer, | 144 'cpp_type_initializer': idl_type.cpp_type_initializer, |
139 'custom_registration_extended_attributes': | 145 'custom_registration_extended_attributes': |
140 CUSTOM_REGISTRATION_EXTENDED_ATTRIBUTES.intersection( | 146 CUSTOM_REGISTRATION_EXTENDED_ATTRIBUTES.intersection( |
141 extended_attributes.iterkeys()), | 147 extended_attributes.iterkeys()), |
142 'deprecate_as': v8_utilities.deprecate_as(method), # [DeprecateAs] | 148 'deprecate_as': v8_utilities.deprecate_as(method), # [DeprecateAs] |
143 'exposed_test': v8_utilities.exposed(method, interface), # [Exposed] | 149 'exposed_test': v8_utilities.exposed(method, interface), # [Exposed] |
144 # TODO(yukishiino): Retire has_custom_registration flag. Should be | 150 # TODO(yukishiino): Retire has_custom_registration flag. Should be |
145 # replaced with V8DOMConfiguration::PropertyLocationConfiguration. | 151 # replaced with V8DOMConfiguration::PropertyLocationConfiguration. |
146 'has_custom_registration': | 152 'has_custom_registration': |
147 v8_utilities.has_extended_attribute( | 153 v8_utilities.has_extended_attribute( |
148 method, CUSTOM_REGISTRATION_EXTENDED_ATTRIBUTES), | 154 method, CUSTOM_REGISTRATION_EXTENDED_ATTRIBUTES), |
149 'has_exception_state': | 155 'has_exception_state': |
150 is_raises_exception or | 156 is_raises_exception or |
151 is_check_security_for_receiver or | 157 is_check_security_for_receiver or |
152 any(argument for argument in arguments | 158 any(argument for argument in arguments |
153 if (argument.idl_type.name == 'SerializedScriptValue' or | 159 if (argument.idl_type.name == 'SerializedScriptValue' or |
154 argument_conversion_needs_exception_state(method, argument)) ), | 160 argument_conversion_needs_exception_state(method, argument)) ), |
155 'has_optional_argument_without_default_value': | 161 'has_optional_argument_without_default_value': |
156 any(True for argument_context in argument_contexts | 162 any(True for argument_context in argument_contexts |
157 if argument_context['is_optional_without_default_value']), | 163 if argument_context['is_optional_without_default_value']), |
158 'idl_type': idl_type.base_type, | 164 'idl_type': idl_type.base_type, |
165 'is_api_experiment_enabled': v8_utilities.api_experiment_enabled_functio n(method) or v8_utilities.api_experiment_enabled_function(interface), # [APIExp erimentEnabled] | |
159 'is_call_with_execution_context': has_extended_attribute_value(method, ' CallWith', 'ExecutionContext'), | 166 'is_call_with_execution_context': has_extended_attribute_value(method, ' CallWith', 'ExecutionContext'), |
160 'is_call_with_script_arguments': is_call_with_script_arguments, | 167 'is_call_with_script_arguments': is_call_with_script_arguments, |
161 'is_call_with_script_state': is_call_with_script_state, | 168 'is_call_with_script_state': is_call_with_script_state, |
162 'is_call_with_this_value': is_call_with_this_value, | 169 'is_call_with_this_value': is_call_with_this_value, |
163 'is_check_security_for_receiver': is_check_security_for_receiver, | 170 'is_check_security_for_receiver': is_check_security_for_receiver, |
164 'is_check_security_for_return_value': is_check_security_for_return_value , | 171 'is_check_security_for_return_value': is_check_security_for_return_value , |
165 'is_custom': 'Custom' in extended_attributes and | 172 'is_custom': 'Custom' in extended_attributes and |
166 not (is_custom_call_prologue or is_custom_call_epilogue), | 173 not (is_custom_call_prologue or is_custom_call_epilogue), |
167 'is_custom_call_prologue': is_custom_call_prologue, | 174 'is_custom_call_prologue': is_custom_call_prologue, |
168 'is_custom_call_epilogue': is_custom_call_epilogue, | 175 'is_custom_call_epilogue': is_custom_call_epilogue, |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
477 return method.idl_type and method.idl_type.name == 'Promise' | 484 return method.idl_type and method.idl_type.name == 'Promise' |
478 | 485 |
479 IdlOperation.returns_promise = property(method_returns_promise) | 486 IdlOperation.returns_promise = property(method_returns_promise) |
480 | 487 |
481 | 488 |
482 def argument_conversion_needs_exception_state(method, argument): | 489 def argument_conversion_needs_exception_state(method, argument): |
483 idl_type = argument.idl_type | 490 idl_type = argument.idl_type |
484 return (idl_type.v8_conversion_needs_exception_state or | 491 return (idl_type.v8_conversion_needs_exception_state or |
485 argument.is_variadic or | 492 argument.is_variadic or |
486 (method.returns_promise and idl_type.is_string_type)) | 493 (method.returns_promise and idl_type.is_string_type)) |
OLD | NEW |