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

Unified Diff: Source/bindings/scripts/unstable/v8_types.py

Issue 27638002: IDL compiler: Basic setters (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix ; Created 7 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/bindings/scripts/unstable/v8_attributes.py ('k') | Source/bindings/scripts/unstable/v8_utilities.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/scripts/unstable/v8_types.py
diff --git a/Source/bindings/scripts/unstable/v8_types.py b/Source/bindings/scripts/unstable/v8_types.py
index 2b5891c217a3e2fe2837597b1cb10c12536d5e29..de55194e93d1aa0f3680567c2af3a207ae56e8ff 100644
--- a/Source/bindings/scripts/unstable/v8_types.py
+++ b/Source/bindings/scripts/unstable/v8_types.py
@@ -327,10 +327,10 @@ V8_VALUE_TO_CPP_VALUE_AND_INCLUDES = {
}
-def v8_value_to_cpp_value(idl_type, extended_attributes, v8_value, isolate):
+def v8_value_to_cpp_value(idl_type, extended_attributes, v8_value, includes, isolate):
this_array_or_sequence_type = array_or_sequence_type(idl_type)
if this_array_or_sequence_type:
- return v8_value_to_cpp_value_array_or_sequence(this_array_or_sequence_type, v8_value, isolate)
+ return v8_value_to_cpp_value_array_or_sequence(this_array_or_sequence_type, v8_value, includes, isolate)
if callback_function_type(idl_type):
idl_type = 'any'
@@ -344,46 +344,44 @@ def v8_value_to_cpp_value(idl_type, extended_attributes, v8_value, isolate):
if idl_type in V8_VALUE_TO_CPP_VALUE_PRIMITIVE:
cpp_expression_format = V8_VALUE_TO_CPP_VALUE_PRIMITIVE[idl_type]
- includes = set()
elif idl_type in V8_VALUE_TO_CPP_VALUE_AND_INCLUDES:
- cpp_expression_format, includes = V8_VALUE_TO_CPP_VALUE_AND_INCLUDES[idl_type]
+ cpp_expression_format, new_includes = V8_VALUE_TO_CPP_VALUE_AND_INCLUDES[idl_type]
+ includes.update(new_includes)
else:
cpp_expression_format = (
'V8{idl_type}::HasInstance({v8_value}, {isolate}, worldType({isolate})) ? '
'V8{idl_type}::toNative(v8::Handle<v8::Object>::Cast({v8_value})) : 0')
- includes = includes_for_type(idl_type)
+ includes.update(includes_for_type(idl_type))
includes.add('V8%s.h' % idl_type)
- cpp_expression = cpp_expression_format.format(arguments=arguments, idl_type=idl_type, isolate=isolate, v8_value=v8_value)
- return cpp_expression, includes
+ return cpp_expression_format.format(arguments=arguments, idl_type=idl_type, isolate=isolate, v8_value=v8_value)
-def v8_value_to_cpp_value_array_or_sequence(this_array_or_sequence_type, v8_value, isolate):
+def v8_value_to_cpp_value_array_or_sequence(this_array_or_sequence_type, v8_value, includes, isolate):
if interface_type(this_array_or_sequence_type):
this_cpp_type = None
expression_format = '(toRefPtrNativeArray<{array_or_sequence_type}, V8{array_or_sequence_type}>({v8_value}, {isolate}))'
- includes = set(['V8%s.h' % this_array_or_sequence_type])
+ includes.add('V8%s.h' % this_array_or_sequence_type)
else:
this_cpp_type = cpp_type(this_array_or_sequence_type)
expression_format = 'toNativeArray<{cpp_type}>({v8_value}, {isolate})'
- includes = set()
expression = expression_format.format(array_or_sequence_type=this_array_or_sequence_type, cpp_type=this_cpp_type, isolate=isolate, v8_value=v8_value)
- return expression, includes
+ return expression
-def v8_value_to_cpp_value_statement(idl_type, extended_attributes, v8_value, variable_name, isolate):
+def v8_value_to_local_cpp_value(idl_type, extended_attributes, v8_value, variable_name, includes, isolate):
+ """Returns an expression that converts a V8 value to a C++ value and stores it as a local value."""
this_cpp_type = cpp_type(idl_type, extended_attributes=extended_attributes, used_as_argument=True)
if idl_type == 'DOMString':
- format_string = 'V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID({cpp_type}, {variable_name}, {cpp_value});'
+ format_string = 'V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID({cpp_type}, {variable_name}, {cpp_value})'
elif 'EnforceRange' in extended_attributes:
- format_string = 'V8TRYCATCH_WITH_TYPECHECK_VOID({cpp_type}, {variable_name}, {cpp_value}, {isolate});'
+ format_string = 'V8TRYCATCH_WITH_TYPECHECK_VOID({cpp_type}, {variable_name}, {cpp_value}, {isolate})'
else:
- format_string = 'V8TRYCATCH_VOID({cpp_type}, {variable_name}, {cpp_value});'
+ format_string = 'V8TRYCATCH_VOID({cpp_type}, {variable_name}, {cpp_value})'
- cpp_value, includes = v8_value_to_cpp_value(idl_type, extended_attributes, v8_value, isolate)
- statement = format_string.format(cpp_type=this_cpp_type, cpp_value=cpp_value, isolate=isolate, variable_name=variable_name)
- return statement, includes
+ cpp_value = v8_value_to_cpp_value(idl_type, extended_attributes, v8_value, includes, isolate)
+ return format_string.format(cpp_type=this_cpp_type, cpp_value=cpp_value, isolate=isolate, variable_name=variable_name)
################################################################################
@@ -461,27 +459,27 @@ def v8_conversion_type(idl_type, extended_attributes, includes):
V8_SET_RETURN_VALUE = {
- 'boolean': 'v8SetReturnValueBool({callback_info}, {cpp_value});',
- 'int': 'v8SetReturnValueInt({callback_info}, {cpp_value});',
- 'unsigned': 'v8SetReturnValueUnsigned({callback_info}, {cpp_value});',
- 'DOMString': 'v8SetReturnValueString({callback_info}, {cpp_value}, {isolate});',
+ 'boolean': 'v8SetReturnValueBool({callback_info}, {cpp_value})',
+ 'int': 'v8SetReturnValueInt({callback_info}, {cpp_value})',
+ 'unsigned': 'v8SetReturnValueUnsigned({callback_info}, {cpp_value})',
+ 'DOMString': 'v8SetReturnValueString({callback_info}, {cpp_value}, {isolate})',
# [TreatNullReturnValueAs]
- 'StringOrNull': 'v8SetReturnValueStringOrNull({callback_info}, {cpp_value}, {isolate});',
- 'StringOrUndefined': 'v8SetReturnValueStringOrUndefined({callback_info}, {cpp_value}, {isolate});',
+ 'StringOrNull': 'v8SetReturnValueStringOrNull({callback_info}, {cpp_value}, {isolate})',
+ 'StringOrUndefined': 'v8SetReturnValueStringOrUndefined({callback_info}, {cpp_value}, {isolate})',
'void': '',
# No special v8SetReturnValue* function (set value directly)
- 'float': 'v8SetReturnValue({callback_info}, {cpp_value});',
- 'double': 'v8SetReturnValue({callback_info}, {cpp_value});',
+ 'float': 'v8SetReturnValue({callback_info}, {cpp_value})',
+ 'double': 'v8SetReturnValue({callback_info}, {cpp_value})',
# No special v8SetReturnValue* function, but instead convert value to V8
# and then use general v8SetReturnValue.
- 'array': 'v8SetReturnValue({callback_info}, {cpp_value});',
- 'Date': 'v8SetReturnValue({callback_info}, {cpp_value});',
- 'EventHandler': 'v8SetReturnValue({callback_info}, {cpp_value});',
- 'ScriptValue': 'v8SetReturnValue({callback_info}, {cpp_value});',
- 'SerializedScriptValue': 'v8SetReturnValue({callback_info}, {cpp_value});',
+ 'array': 'v8SetReturnValue({callback_info}, {cpp_value})',
+ 'Date': 'v8SetReturnValue({callback_info}, {cpp_value})',
+ 'EventHandler': 'v8SetReturnValue({callback_info}, {cpp_value})',
+ 'ScriptValue': 'v8SetReturnValue({callback_info}, {cpp_value})',
+ 'SerializedScriptValue': 'v8SetReturnValue({callback_info}, {cpp_value})',
# DOMWrapper
- 'DOMWrapperFast': 'v8SetReturnValueFast({callback_info}, {cpp_value}, {script_wrappable});',
- 'DOMWrapperDefault': 'v8SetReturnValue({callback_info}, {cpp_value}, {creation_context});',
+ 'DOMWrapperFast': 'v8SetReturnValueFast({callback_info}, {cpp_value}, {script_wrappable})',
+ 'DOMWrapperDefault': 'v8SetReturnValue({callback_info}, {cpp_value}, {creation_context})',
}
« no previous file with comments | « Source/bindings/scripts/unstable/v8_attributes.py ('k') | Source/bindings/scripts/unstable/v8_utilities.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698